![]() |
[OOP] Eigenschaften werden gelöscht
Guten Morgen,
ich habe das Problem, dass Eigenschaften, die in einer Methode gesetzt werden, nach ihrem Aufruf fehlerhaft oder gar nicht gesetzt sind. Ich habe keine Ahnung woran es liegen könnte. Aufruf:
Delphi-Quellcode:
Methode:
WndClass := TWindowClass.Create('Main');
WndClass.RegisterClass; WndClass.NewWindow('Test',Wnd); //Um diese Methode handelt es sich
Delphi-Quellcode:
Objekt:
procedure TWindowClass.NewWindow(Name : PAnsiChar; var Wnd : TWindow);
begin { Fehler abfangen } try { Prüfen ob Klasse erstellt ist } if self.ClassRegistered then begin { Neues Fenster erstellen } Wnd := TWindow.Create(self.ClassName,Name); { Speichern der neuen Anzahl } //self.ClassWindows := self.WindowsNumber + 1; Inc(self.ClassWindows); //Dieser Wert ist Anfangs richtig ( 1 ) { Speichern des Handles } self.ClassWindowList[ClassWindows-1] := @Wnd; //Nach diesem Schritt ist er irgendwo im 150er Bereich ReadLn; //ClassWindowList enthält nur nils //ReadLn: Testzwecke... end else { Fehler ausgeben } raise EClassNotRegistered.Create; except { Erneut auswerfen } raise ; end; end;
Delphi-Quellcode:
TWindowList
TWindowClass = class(TObject)
private { ClassWindows : Zählt die Anzahl der Fenster } ClassWindows : Byte; { ClassWindowList : Enthält alle Fenster der Klasse } ClassWindowList : TWindowList;
Delphi-Quellcode:
Ich hoffe ihr wisst wo da der Fehler liegt...
{ TWindowList : Stellt eine Liste von Fenstern da }
TWindowList = array[1..256] of ^TWindow; |
Re: [OOP] Eigenschaften werden gelöscht
1.Array geht von 1..256, Du schreibst aber in Array[0] (so wird der counter überschrieben)
2.Objektinstanzen sind bereits Zeiger, Ergo schmeiss '^' und '@' raus. |
Re: [OOP] Eigenschaften werden gelöscht
Ahja, danke. :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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