Einzelnen Beitrag anzeigen

EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#5

Re: TTabControl, XP-Style, OwnerDraw

  Alt 4. Okt 2006, 18:57
Vielen Dank!

Ich weiß wirklich nicht, was ich diesmal anders gemacht habe, als zuvor, aber jetzt zeichnet er auch, wenn es im OnPaint-Event passiert. Ich versteh die Welt nicht mehr.

Mein Code:
Delphi-Quellcode:
procedure TfrmMain.FormPaint(Sender: TObject);
var
  ARect: TRect;
begin
  with AdapterTabControl.Canvas do
  begin
    ARect.TopLeft := CurrentRateLabel.BoundsRect.TopLeft; //die beiden labels befinden
    ARect.BottomRight := CurrentUploadLabel.BoundsRect.BottomRight; //sich in einer "Zeile"

    Brush.Style := bsClear;
    Brush.Color := clSkyBlue;

    FillRect(ARect); //Sollte eigentlich hinter den Labels malen, nicht sie übermalen
  end;
end;
Leider gibt es noch ein Problem: Obiger Code übermalt die Labels anstatt ihnen einen Hintergrund zu verpassen. Dies geschieht auch, wenn ich OwnerDraw aktiviere und im dementsprechenden Event male.

Wisst ihr diesbezüglich Rat?

Zitat:
Wie der Name schon sagt OwnerDraw
Der Programmiere zeichnet selbst oder bestimmt was an x,y position geschieht.
Wenn du das Property einschaltest wird die interne Draw funktion des Control ausgeschaltet.
Dem stimme ich grundsätzlich zu, aber da ich nicht das gesamte Control selbst zeichnen muss, war es für mich nicht ersichtlich, dass auch der XP-Style abgeschaltet wird.

Hoffentlich wisst ihr eine Lösung,
Andreas
Andreas N.
  Mit Zitat antworten Zitat