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.