Testing, if form exists/fr

From Free Pascal wiki
Revision as of 10:11, 29 February 2020 by Trev (talk | contribs) (Fixed syntax highlighting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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

Parfois, une fiche peut être lancée depuis plusieurs endroits dans un programme. Si elle existe déjà, il suffit de la placer en avant-plan, sinon elle doit être créée.

La façon la plus simple est celle-ci :

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

Utiliser CloseAction := caFree; dans l'événement OnClose de la fiche.

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

Cette méthode provient des discussions dans le forum.

Warning-icon.png

Avertissement: Cette méthode a des limitations :

  • A tout moment, il ne doit pas y avoir plus d'une instance de la classe de cette fiche (la variable MyForm devient incohérente sinon).
  • La référence à toute forme de cette classe devrait être enregistrée dans cette unique variable globale.