Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TForm in TabSheet laden (https://www.delphipraxis.net/171845-tform-tabsheet-laden.html)

rocksoft 1. Dez 2012 02:44

AW: TForm in TabSheet laden
 
Hats recht, hab die rar erneut hochgeladen :)

Bummi 1. Dez 2012 07:25

AW: TForm in TabSheet laden
 
Es wird beim schließen des Tabs nicht Close des Forms aufgerufen, sondern es wird direkt freigegeben/vernichtet.

Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Demo_Form.Panel2.caption:='Close Form 1';
end;
Es würde sich anbieten hier mit Templates zu arbeiten, als Form1 bis Formx von eine Basisklasse abzuleiten, in der die gemeinsamen Methoden einmal implementiert werden.

dataspider 2. Dez 2012 13:24

AW: TForm in TabSheet laden
 
Hi,

Eine Variante:

OnCanClose vom PageControl...

Delphi-Quellcode:
procedure TDemo_Form.PCCanClose(Sender: TObject; var ACanClose: Boolean);
Var
  APage: TcxTabSheet;
begin
  APage := (Sender as TcxPageControl).ActivePage;
  if APage.ControlCount > 0 then
    if (APage.Controls[0] is TForm) then
      (APage.Controls[0] as TForm).Close;
end;
Frank

rocksoft 3. Dez 2012 17:39

AW: TForm in TabSheet laden
 
Vielen Dank an alle, werde es nachher mal testen, mal sehen was dabei raus kommt :)

rocksoft 3. Dez 2012 22:15

AW: TForm in TabSheet laden
 
Hallo

@dataspider: Genau das wars :) Super

Eine frage steht mich aber noch offen, wenn das Formular geschlossen und sein Speicher freigegeben, Sollte an sich nicht der gleiche speicher belegt sein wie beim Starten der Anwendung?

Arbeitssatz(Speicher) 8,480K
10x Formulare Öffnen und wieder schliessen
Arbeitssatz(Speicher) 8,520K

ist das normal oder es wird doch etwas nicht freigegeben?

Bummi 3. Dez 2012 22:25

AW: TForm in TabSheet laden
 
Du kannst ja mal
Delphi-Quellcode:
ReportMemoryLeaksOnShutDown=true;
ins Create des Mainform mit aufnehmen, aber die Speichernutzung im Taskmanager ilft ohnehin nur bei der Erkennung grober Fehler, da der Memorymanager nicht immer alles direkt wieder freigibt, sondern auch recycelt.

rocksoft 12. Dez 2012 03:49

AW: TForm in TabSheet laden
 
Hallo Bummi,

Danke für die Antwort, werde es mal testen :)

rocksoft 12. Dez 2012 07:41

AW: TForm in TabSheet laden
 
@ himitsu

noch eine letzte frage :)

Code:
tabSheet.Name := PCForm.Name; // Name muß man nicht unbedingt setzen, außer man pfuscht mit FindControl rum
wie kann ich den festelleten ob die Form schon mal geladen würde um dies zu verhindern ohne FindControl zu benutzen?

mercy


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.
Seite 2 von 2     12   

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