HiHo,
im Info GK 12 wird uns gerade der Gebrauch von Pointern in Verbindung mit grundlegenden Datentypen beigebracht, aber ich fürchte, ich habe irgendwas vermurkst. Ich habe eine Klasse erstellt, die beliebige Objekte nach dem
First in, First out-Prinzip verwalten soll.
Delphi-Quellcode:
TManagedSnake = class(TObject)
private
fAnfang, fLaeufer, fEnde :PListenElement;
public
Constructor Create;
Destructor Destroy; override;
Function PointerAtEnd :Boolean;
Function EmptyList :Boolean;
Procedure newElement(Quelle :TObject);
Function GetActiveElement :TObject;
Procedure movePointer(Distance :Integer = 1);
Function GetAndFreeElement :TObject;
Procedure EraseAll;
end;
Ein neues Element in der Liste soll per
newElement(Quelle :TObject) erstellt werden. Doch irgendwie kracht es hier bei mir.
Aufgerufen wird die Prozedur in folgendem Code-Abschnitt:
Delphi-Quellcode:
Type
TString = class(TObject)
public
Content :String;
end;
Var
Test :TManagedSnake;
procedure TForm1.bt_neuClick(Sender: TObject);
var
anObject :TString;
begin //<--Breakpoint
anObject := TString.Create;
anObject.Content := e_eingabe.Text;
Test.newElement(anObject as TObject);
anObject.Free;
Wenn ich in die aufrufende Prozedur nun einen Breakpoint setze, wird das Objekt "Test" korrekt erstellt; und ich sehe auch, dass es mit Daten gefüllt wird. Sobald der "blaue Balken" allerdings in die Prozedur
newElement springt, zeigt mir Delphi nur noch
Quelle = () an, wenn ich mit der Maus über der variablen verharre.
Ich fürchte, dass ich irgendwie nur eine Referenz o.ä. übergeben habe, aber ich weiß nun einfach nicht mehr weiter.
Es wäre super, wenn einer von euch die Zeit finden würde, einmal drüber zu gucken.
Danke wie immer schon im Voraus allein für's Lesen der Frage,
MfG,
hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.