Autor Beitrag
Prodesse
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 27.05.08 12:19 
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:
ausblenden Delphi-Quelltext
1:
2:
3:
          Client[i]                           :=  TTestForm.Create(nil);
          Client[i].NUMMER.Caption            :=  IntToStr(i);
          Client[i].Visible                   :=  true;


Freigeben:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: 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
ausblenden 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...

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Prodesse Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 27.05.08 12:55 
Danke für Deine Antwort,

aber das hilft auch nicht.

Kommentiere ich die Zeilen
ausblenden 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