![]() |
In Nachfahren von TListBox das OndrawItem Ereignis auslösen
Hallo Gemeinde.
Stecke mal wieder im Universum der Ahnungslosigkeit: Ich brauchte eine ListBox ohne vertikale Scrollbar, und habe dazu einen Nachfahren erzeugt:
Delphi-Quellcode:
Mit dem entsprechenden Coding (
TNoVScrolllistbox = CLASS(TListBox)
PRIVATE PROCEDURE WMNCCalcSize( var msg: TMessage ); MESSAGE WM_NCCALCSIZE; END; ... MyListBox := TNoVScrolllistbox.create(self); ... ![]() Nun müßte ich auch das Event OnDrawItem meiner neuen MyListBox herankommen (um ihr einen BMP-Background zu verpassen). Mit einer Standard ListBox auf der Form, ging ich dazu bisher in den Objektinspektor und durch einen Doppelklick auf das entsp. Event konnte ich meinen Code einsetzen. Meine Frage: Wie macht ich das mit meinem Nachfahren MyListBox, den ich ja erst zur Laufzeit erzeuge? (Also es geht nicht darum wie ich der ListBox einen enstp. Background einverleibe -- sondern wie ich an das Event OnDrawItem meiner MyListBox herankomme -- ganz so als ob ich im Objektinspektor einen Doppelklick ausführen würde.) Lieben Dank & Gruß Jazzman |
Re: In Nachfahren von TListBox das OndrawItem Ereignis auslö
Einfach Eventhandler im Code Setzen:
Delphi-Quellcode:
MyListBox.onDrawItem := ...
|
Re: In Nachfahren von TListBox das OndrawItem Ereignis auslö
Hallo.
Ähm, sorry aber das verstehe ich noch nicht ganz. :gruebel: Wenn ich auf einer Form eine ListBox habe und dann im Objektinspektor für diese ListBox im Event OnDrawItem doppelklicke, dann wir ein Prozedur-Rumpf erzeugt wie dieser:
Delphi-Quellcode:
Dort habe ich mein Coding eingefügt.
PROCEDURE TMain_frm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); BEGIN // mein Coding END; Du sagst jetzt: Zitat:
Doch nicht das Coding, was ich oben mit "// mein Coding" gekennzeichnet habe, oder? Wo ist denn die mit dem Objektinspektor erzeugte Prozedur? Vielen Dank Jazzman |
Re: In Nachfahren von TListBox das OndrawItem Ereignis auslö
Den Namen der Methode, welche beim Event aufgerufen werden soll
Die Methode musst du natürlich vorher anlegen
Delphi-Quellcode:
TMain_frm = class(TForm)
... procedure ListBoxDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); ... end; PROCEDURE TMain_frm.ListBoxDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); BEGIN ... procedure TMain_frm.FormCreate(Sender: TObject); begin MyListBox := TNoVScrolllistbox.create(self); MyListBox.onDrawItem := ListBoxDrawItem; ... end; |
Re: In Nachfahren von TListBox das OndrawItem Ereignis auslö
Das hat ein wenig gedauert :wall: aber jetzt habe sogar ich es begriffen :stupid: !
Super - vielen Dank! Schönen Gruß Jazzman |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz