Thema: Delphi Pointer Problem

Einzelnen Beitrag anzeigen

WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Pointer Problem

  Alt 30. Sep 2009, 15:09
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...
  Mit Zitat antworten Zitat