Je cherche une solution pour controler si une form est ouverte, afin d'éviter un bug de création de form.
D'avance merci
Je cherche une solution pour controler si une form est ouverte, afin d'éviter un bug de création de form.
D'avance merci
ca veut dire quoi ouverte ?
S'il s'agit de lister les Form créées par l'application:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var compteur:integer; for compteur:=0 to screen.formcount-1 do begin if screen.forms[compteur].name=MonFOrm.name then il existe end;
Ou alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part If IsWindowVisible(Form.Handle) then ...
Mea est trop forte, elle flotte : mea coule pas !
Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.
olance.developpez.com
Servez-vous, profitez, abusez de la FAQ Delphi !!
Très légère erreur cher confrère (ou consoeur)Envoyé par Bestiol
![]()
Cette commande indique si la fiche est visible, pas si elle existe. Elle peut avoir été créée mais ne pas être visible 8)
(confrère)
ah voui j'avais zappé le "afin d'éviter un bug de création de form" !
Par ouverte j'entendais donc visible à l'écran...
Au temps pour moi...
Alors, un "If Assigned(Form) then" ça ne suffirait pas ?!
Mea est trop forte, elle flotte : mea coule pas !
Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.
olance.developpez.com
Servez-vous, profitez, abusez de la FAQ Delphi !!
Selon toute vraisemblance Oui, puisque les Forms sont traités comme des pointeurs mais je n'ai pas fait le testEnvoyé par Bestiol
2 Solution :
Si la creation de la form est faite dynamiquement et que l'erreur survient sur le Create (ou le Application.CreateForm c pareil), alors ce code suffit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If not Assigned(Form) Then <Creation> //ou If Assigned(Form) Then Exit;Si c'est sur une question d'affichage alors suffit de tester si elle est visible ou non.
Partager