robię sobie listbox, w którym będę wyświetlał rożne obiekty.
obiekty maja właściwość text, która może zawierać wielolinijkowy tekst (niesamowite!)
robię tak:
procedure TfrmNewRozmowa.btnSendTekstClick(Sender: TObject);
begin
Listbox1.items.addobject(obiekt.nazwa,obiekt);
showmessage('jakis komunikat');
end;
procedure TfrmNewRozmowa.Listbox1MeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
var obiekt: TMojObiekt
begin
// dlaczego tu jeszcze nie ma obiektu??????
// tzn Listbox1.Items.Objects[index] = NIL.
if Listbox1.Items.Objects[index] is TMojObiekt then begin
obiekt := TMojObiekt(Listbox1.Items.Objects[index]);
height := (obiekt.text.Count+1) * WysokoscLinijkiTekstu;
end;
end;
Niestety Listbox1MeasureItem jest wywoływane w trakcie addobject jeszcze przed wstawieniem obiektu do Listbox1.Items.Objects....
Jak zatem mam wyznaczyć sobie wysokość itema jeśli jeszcze nie mam obiektu??? zakładam, że taki obiekt może mieć np rozmiar czcionki, co będzie miało istotny wpływ na wysokość...