Hallo,
die Pointer machen mir mal wieder zu schaffen:
Delphi-Quellcode:
procedure TformEinstellungen.UpdateMacroLV(Mac: TMacro);
var
Cmd: TMacroCommand;
begin
LVMacro.Items.BeginUpdate;
try
LVMacro.Clear;
// Alles wieder rein
for Cmd in Mac.Commands do
with LVMacro.Items.Add do
begin
Caption := frmMacro.cbCmdType.Items[Byte(Cmd.CmdType)];
SubItems.Add(ArrayToStr(Cmd.Parameters));
Data := @Cmd; // <--- ?
end;
finally
LVMacro.Items.EndUpdate;
end;
end;
So, schön und gut. Versuche ich später die Daten abzufragen
Cmd := TMacroCommand(LVMacro.Selected.Data^);
knallts.
Vorher wurde extra immer für ein PMacroCommand Speicher reserviert und die Werte dann eingetragen, allerdings ist jeder Command wie man sieht Teil einer TList<TMacroCommand> und .Remove funktioniert nicht, wenn es eben nicht genau das selbe Objekt ist (wer hätte das gedacht...).
Warum funktioniert denn das schon wieder nicht? Diese Pointer machen mich noch wahnsinnig...