@himitsu: Wenn es hilft, das ganze sieht so aus:
Delphi-Quellcode:
TMacro = class;
TMacroCommand = record
CmdType: TMacroCommandType;
Parameters: TArrayofstring;
AtTime: Boolean;
Time: TTime;
Macro: TMacro;
end;
PMacroCommand = ^TMacroCommand;
TMacro = class
public
Name: string;
Loop: Boolean;
Commands: TList<TMacroCommand>;
constructor Create;
destructor Destroy; override;
end;
@jfheins, meinst du sowas (statt Data := @Cmd; in der Schleife):
Delphi-Quellcode:
New(p);
p^.CmdType := Cmd.CmdType;
p^.Parameters := Cmd.Parameters;
p^.Macro := Cmd.Macro;
Data := p;
Das funktioniert, allerdings geht p^.Macro.Commands.Remove(p^) dann nicht, weil p <> Cmd.
@Neutral General (1):
Sowas ähnliches dachte ich mir. Aber direkt das Element in der Liste adressieren geht ja auch nicht..
@Neutral General (2):
Oh gott. Aber eig eine gute Idee, werde ich mal probieren.
Edit:
Leute, ihr seid klasse!
Mit TList<PMacroCommand> läuft nun alles wie es soll