Hallo erstmal,
ich habe eine Frage zur Komponentenentwicklung.Und zwar weiß ich das man mit folgendem Source die Farbe des Markierungsrahmens einer ListBox ändert nur würde ich gerne mir ne eigene Komponente schreiben die eine weitere Eigenschaft DrawColor besitzt und nach dieser Farbe wird dann der Rahmen angepasst.Kann mir jemand sagen wie dies funktioniert.Wäre echt klasse,
Danke schonmal im voraus.Übrigens die Eigenschaft hinzugefügt habe ich schon nur eben das setzen des Rahmens klappt nicht.
MFG Alex
Die Eigenschaft „Style" auf „lbOwnerDraw*" setzen und folgende Zeilen ins OnDrawItem-Ereignis schreiben:
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListbox) do
begin
if odSelected in State then //Prüft, ob ein Item markiert ist
Canvas.Brush.Color := clRed; //Canvas-Hintergrundfarbe auf Rot setzen
Canvas.FillRect(Rect); //schön ausmalen
Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]); //Text drüberpinseln
end;
end;
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]