Difference between revisions of "Testing, if form exists/de"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{Testing, if form exists}} <br> Manchmal kann eine Form von mehreren Stellen in einem Programm gestartet werden. Wenn sie bereits vorhanden ist, muss sie nur n...")
 
Line 3: Line 3:
 
Manchmal kann eine [[TForm/de | Form]] von mehreren Stellen in einem Programm gestartet werden. Wenn sie bereits vorhanden ist, muss sie nur nach vorn gebracht werden. Wenn nicht, muss sie erstellt werden.
 
Manchmal kann eine [[TForm/de | Form]] von mehreren Stellen in einem Programm gestartet werden. Wenn sie bereits vorhanden ist, muss sie nur nach vorn gebracht werden. Wenn nicht, muss sie erstellt werden.
  
Diese Methode wird nur benötigt, wenn die Form nicht automatisch erstellt wird (es sollte aber unter Hauptmenü -> Projekt -> Formulare zu finden sein). Siehe
+
Diese Methode wird nur benötigt, wenn die Form [[Form_Tutorial/de#Von_Lazarus_designte_Form_dynamisch_erstellen | nicht automatisch erstellt]] wird (es sollte aber unter Hauptmenü -> Projekt -> Formulare zu finden sein).
  
 
Der einfachste Weg ist:
 
Der einfachste Weg ist:
Line 11: Line 11:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Use CloseAction := caFree in the form's OnClose event.
+
Verwenden Sie Closeaction: = caFree in OnClose-Ereignis des Formulars.
  
 
<syntaxhighlight>
 
<syntaxhighlight>
procedure TMyForm.Formclose(Sender: Tobject; var Closeaction: Tcloseaction);
+
procedure TMyForm.Formclose(Sender: Tobject; var Closeaction: Tcloseaction);
 
begin
 
begin
 
   CloseAction := caFree;
 
   CloseAction := caFree;
Line 20: Line 20:
 
End;
 
End;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
This method is taken from forum discussions.
 
  
 
[[Category:Code]]
 
[[Category:Code]]
 
[[Category:LCL]]
 
[[Category:LCL]]
 
[[Category:Forms]]
 
[[Category:Forms]]
 +
--[[User:Michl|Michl]] 23:26, 10 May 2014 (CEST)

Revision as of 23:26, 10 May 2014

Deutsch (de) English (en) français (fr)

Manchmal kann eine Form von mehreren Stellen in einem Programm gestartet werden. Wenn sie bereits vorhanden ist, muss sie nur nach vorn gebracht werden. Wenn nicht, muss sie erstellt werden.

Diese Methode wird nur benötigt, wenn die Form nicht automatisch erstellt wird (es sollte aber unter Hauptmenü -> Projekt -> Formulare zu finden sein).

Der einfachste Weg ist:

if (MyForm = nil) then Application.CreateForm(TMyForm, MyForm);
MyForm.Show;

Verwenden Sie Closeaction: = caFree in OnClose-Ereignis des Formulars.

procedure TMyForm.Formclose(Sender: Tobject; var Closeaction: Tcloseaction);
begin
  CloseAction := caFree;
  MyForm := nil;
End;

--Michl 23:26, 10 May 2014 (CEST)