Entwickler-Ecke

Windows API - Dynamisches Formular - Handles freigeben


Prodesse - Di 27.05.08 12:19
Titel: Dynamisches Formular - Handles freigeben
Hallo Comminity,

bin neu hier brauche aber dringend unterstützung.

In meinem Programm erzeuge ich mehrmals dasselbe Formulare dynamisch und gebe es wieder frei.

Erzeugen:

Delphi-Quelltext
1:
2:
3:
          Client[i]                           :=  TTestForm.Create(nil);
          Client[i].NUMMER.Caption            :=  IntToStr(i);
          Client[i].Visible                   :=  true;


Freigeben:

Delphi-Quelltext
1:
2:
          Client[i].Release;
          FreeAndNil(Client[i]);


Trotzdem steigt die Anzahl der Handles im WindowsTaskmanager und das Programm wird immer
träger bis es ganz stoppt bei mehreren 1.000 Handles.

Kann mir jemand sagen was ich noch tun muß, damit die Handles alle wieder freigegeben werden?

Grüße und danke
Hendrik

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Martok - Di 27.05.08 12:37

Release und FreeAndNil ist irgendwie sinnlos... du forderst das Fenster auf sich bei nächster Gelegenheit freizugeben und knallst es dann schon vorher weg...

Versuch mal nur

Delphi-Quelltext
1:
2:
          Client[i].Release;
          Client[i]:= nil;


Ansonsten bestünde ja noch die Möglichkeit dass das Problem gar nicht da liegt...


Prodesse - Di 27.05.08 12:55

Danke für Deine Antwort,

aber das hilft auch nicht.

Kommentiere ich die Zeilen

Delphi-Quelltext
1:
2:
3:
          Client[i]                           :=  TTestForm.Create(nil);  
          Client[i].NUMMER.Caption            :=  IntToStr(i);  
          Client[i].Visible                   :=  true;


aus, bleibt die Anzahl der Handles konstant und der Rest des Programms arbeitet normal.

Könnte es an der TEmbeddedWB Kompnente liegen?

Grüße und danke
Hendrik

Moderiert von user profile iconAXMD: Delphi-Tags hinzugefügt