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:
WndClass := TWindowClass.Create('Main');
WndClass.RegisterClass;
WndClass.NewWindow('Test',Wnd); //Um diese Methode handelt es sich
Methode:
Delphi-Quellcode:
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;
Objekt:
Delphi-Quellcode:
TWindowClass = class(TObject)
private
{ ClassWindows : Zählt die Anzahl der Fenster }
ClassWindows : Byte;
{ ClassWindowList : Enthält alle Fenster der Klasse }
ClassWindowList : TWindowList;
TWindowList
Delphi-Quellcode:
{ TWindowList : Stellt eine Liste von Fenstern da }
TWindowList = array[1..256] of ^TWindow;
Ich hoffe ihr wisst wo da der Fehler liegt...