Hallo.
Ich hab hier eine Klasse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| type TVGUIGameMenuItem = class(TObject) private FID: Integer; FName: string; FCommand: string; FOnlyInGame: Boolean; public constructor Create(); overload; constructor Create(const ID: Integer; const Name, Command: string; const OnlyInGame: Boolean); overload;
function AsString(): string;
property ID: Integer read FID write FID; property Name: string read FName write FName; property Command: string read FCommand write FCommand; property OnlyInGame: Boolean read FOnlyInGame write FOnlyInGame; end; |
und das dazu gehörige Array:
Delphi-Quelltext
1: 2:
| type TVGUIGameMenuItems = array of TVGUIGameMenuItem; |
Wenn ich nun 2 Items in diesem Array habe, wie kann ich diese miteinander vertauschen?
Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Array[0] = ID: 0 Name: 'Index 0' Command: 'cmd' OnlyInGame: true
Array[1] = ID: 1 Name: 'Index 1' Command: 'cmd' OnlyInGame: false |
Diese 2 Items sollen nun miteinander vertauscht werden.
Ich hab mir hier schon mal eine Procedure zusammen "gewürfelt", bin mir aber nicht sicher ob diese 100% fehler frei funktioniert (Ich meine mit dem Speicher [Memory], und Access Violation).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure SwitchItems(var AArray: TVGUIGameMenuItems; const AIndex1, AIndex2: Integer); var Item1, Item2: Pointer; begin Item1 := Pointer(AArray[AIndex1]); Item2 := Pointer(AArray[AIndex2]);
AArray[AIndex1] := TVGUIGameMenuItem(Item2); AArray[AIndex2] := TVGUIGameMenuItem(Item1); end; |
Gruß