![]() |
AW: Alter Classe neue zuweisen
Das TSprite aus gS[FlagFound] soll sich also nachher in gS[Item] befinden und das aus gS[Item] in gS[FlagFound].
Meiner Meinung nach müsste das mit dem Vorschlag aus Post #5 funktionieren. |
AW: Alter Classe neue zuweisen
Zitat:
und gS[FlagFound] bekommt den Index von Item zugewiesen. Es geht nicht mit der Version im Beitrag 5 warum habe ich daraufhin geantwortet ;)
Delphi-Quellcode:
// SWAP Item
if Item <> FlagFound then begin //SWAP(gS[FlagFound], gS[Item]); gS[FlagFound] := gS[Item]; FlagFound := Item; end; gruss |
AW: Alter Classe neue zuweisen
Irgendwie verstehe ich das nicht und hab' momentan auch keine Idee, was da jetzt nicht funktioniert und warum :-(
Ärgerlich. |
AW: Alter Classe neue zuweisen
Zitat:
Zitat:
Delphi-Quellcode:
SWAP(gS[FlagFound], gS[Item]);
wirft den Fehler. Und den Var-Parameter brauche ich weil sonst nichts zurückgegeben wird. Vielleicht ist ja ein direkter Cast möglich kann es jetzt nur noch nicht testen.
Delphi-Quellcode:
gS[FlagFound] := gS[Item];
gruss |
AW: Alter Classe neue zuweisen
Das sind doch garkeine Var-Parameter drinne:
Delphi-Quellcode:
Hm, was verstehe ich denn hier jetzt nicht?
procedure SWAP(Value1, Value2: TSprite);
var lTemp: TSprite; begin lTemp := Value1; Value1 := Value2; Value2 := lTemp; end; Ist wohl doch zu spät oder noch zu früh? ;-) |
AW: Alter Classe neue zuweisen
Zitat:
Zitat:
Ach spät :) Ist meine normale Arbeitszeit. gruss |
AW: Alter Classe neue zuweisen
|
AW: Alter Classe neue zuweisen
Zitat:
Werde mich damit mal befassen vielleicht ist was brauchbares dabei. gruss |
AW: Alter Classe neue zuweisen
Hallo,
das ist hier ein Stochern im Nebel. Viel zu wenig Quellcode, mindestens die Definition von TSprite ist hier noch notwendig ... procedure SWAP(Value1, Value2: TSprite); Was ist TSprite, Klasse oder ein Record? Wenn es eine Record ist, muss das var davor, bei einer Klasse nicht, solange in der Methode selbst keine neue Klasse erzeugt wird (Tauschen ist nicht "neu erzeugen") procedure SWAP(var Value1, Value2: TSprite); Die Meldung des Compilers ist genau richtig procedure SWAP(Value1, Value2: TSprite); Value1 und Value2 werden auf dem Stack neu angelegt (Achtung, nicht mit dem Erzeugen von Klassen verwechseln), dann wird der Inhalt der übergebenen Werte in die beiden Stack-Variablen reinkopiert var lTemp: TSprite; begin lTemp := Value1; Value1 := Value2; Value2 := lTemp; end; [DCC Hinweis] uGlobal.pas(144): H2077 Auf 'Value2' zugewiesener Wert wird niemals benutzt [DCC Hinweis] uGlobal.pas(143): H2077 Auf 'Value1' zugewiesener Wert wird niemals benutzt lTemp: noch ein Variable Value1 := Value2; Value2 := lTemp; Wertezuweisung ohne Sinn end; Hier werden Value1,Value2,lTemp wider freigegeben, der Inhalt der Ursprungsvariablen, die an Swap übergeben worden sind, bliebt erhalten. Lösung bei Records procedure SWAP(var Value1, Value2: TSprite); |
AW: Alter Classe neue zuweisen
Zitat:
![]() Mehr geht beim besten willen nicht. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz