Hallo,
ich mache das recht oft aber bin mir eigentlich nicht sicher, ob das Nachteile hat.
Als Beispiel für eine ListBox in
OnDrawItem:
Delphi-Quellcode:
Procedure ... DrawItem(Control: TWinControl; Index: Integer;...
Var L : TListBox;
Begin
L := TListBox(Control);
If L.Columns = 0 Then...
End;
Also ich mache sowas gerne, damit der weitere Verlauf im Code abgekürzt ist. Nicht nur bei einer ListBox. Sonst müsste ich in diesem Fall immer "TListBox(Control)." angeben. So ein DrawItem-Ereignis wird ja oft aufgerufen und die zuweisen erfolgt dann natürlich auch immer sehr oft. Aber denke das ist ok so. Man könnte z.B. noch die Zeile "Var L : TListBox;" Global setzen. Wenn ich darauf achte, dass diese Variable "L" nicht woanders genutzt wird, würde dies dann für "
OnDrawItem" ein Vorteil sein? Oder ist das ganz egal? Zuweisen muss ich ja sowieso aber das "Var L : TListBox;" wäre dann woanders. Jedenfalls bringt es mir viel im Code (für die Übersicht):
Delphi-Quellcode:
If Index = Ceil(TListBox(Control).ClientHeight / TListBox(Control).ItemHeight)-1+TListBox(Control).TopIndex Then // langer Code
If Index = Ceil(L.ClientHeight / L.ItemHeight)-1+L.TopIndex Then // kurzer Code