PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : onmeasureitem -> exception ... why?


Schaf
14.08.2002, 00:14
procedure TYardForm.ShipPartsListMeasureItem(Control: TWinControl;
Index: Integer; var Height: Integer);
begin
Height := 32 + TStandardPart((Control as TListBox).Items.Objects[Index]).Size;
end;

ShipPartsList ist eine tlistbox, TStandardPart eine class von TObject. auf Items.Objects[n] konnt ich schon in ner anderen ereignisbehandlungsroute zugreifen, auch auf TStandardPart(Items.Objects[n]).Size ... wo liegt der fehler? jedesmal, wenn ich was hinzufüge, gibbet ne exception. wenn ich weitermache, wird mit ShipPartsList.ItemHeight gemalt.


Felix Kaiser
14.08.2002, 15:49
Genau kann ichs nicht sagen, aber: Ich würde stets auf Typenkonvertierung über as verzichten, wenn ich weiß, dass es sich um eine ganze bestimmte Liste handelt, bei dir ShipPartsList.

Schaf
15.08.2002, 08:29
also das wars net :( der fehler taucht aber wirklich nur dann auf, wenn ich die anweisungen hinter dem "height := 32" stehen habe.

Felix Kaiser
15.08.2002, 15:35
Dann gibts nur austricksen :) Höhe berechnen, in Variable speichern, letzte Anweisung der ganzen Routine ist dann Height den Wert der Variable zuzuweisen.