Auch von mir herzlich willkommen
so wie Marabu es schon gesagt hatte muß die Instanziierung deines Pointers in die Schleife.
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var i:integer;
begin
for i:=0 to 600 do begin
New(ListDataEntry);
ListDataEntry.Eintrag1=true;
Listview1.Items.Insert(0);
[..]
Listview1.Items[0].Data:=ListDataEntry;
end;
end;
Mit der Prüfung, wie sie marabu angeboten hat bin ich mir aber nicht ganz sicher. bricht der Compiler nach der Prüfung mit Assign auf nil in der Abarbeitung ab, so dass die Prüfung auf and ListDataEntry.Eintrag1 nicht mehr ausgeführt wird, so ist alles o.k.
Da ich mir an der Stelle immer nicht ganz sicher bin mache ich es so:
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
ListDataEntry: PListViewData;
begin
with Sender do
begin
ListDataEntry := Item.Data;
if Assigned(ListDataEntry) then
if ListDataEntry.Eintrag1 then
Canvas.Font.Style := [fsbold]
else { ... };
// ...
end;
end;
gruß oki
[editki] Formatierung korrigiert. [/edit]