Comment faire dans une application MDI, pour ne lancer qu'une seule fois une fenetre fille et la relancer si elle est déja lancé, avec un code qui serait simple et efficace.(s'il vous plait)
merçi.
Comment faire dans une application MDI, pour ne lancer qu'une seule fois une fenetre fille et la relancer si elle est déja lancé, avec un code qui serait simple et efficace.(s'il vous plait)
merçi.
tu essaie ce code :
Attention, si dans OnClose de la fenêtre fille tu utilise Release, il faut ajouter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if Form1=nil then begin Form1:=TForm1.Create(Application); Form1.Show; end else Form1.WindowState:=wsNormal
pour que l'application puisse la recréer à partir du test : if Form1=nil then.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Form1:=nil;
Voici le code de Onclose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Release; Form1:=nil end;
Merçi abdelghani_k,
Il n'y aurait pas un code ou une méthode plus orientée objet ?
Du genre utilisation de classes ?
Merçi de votre aide.
consultes ce lien, il peut vous être util :
http://www.swissdelphicenter.ch/torr...ode.php?id=221
et à la place de l'instruction :
tu peut faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Form1.WindowState:=wsNormal
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(Form1.Handle, WM_SYSCOMMAND, SC_RESTORE, 0);
Ok, je vais voir.
Si quelqu'un d'autre a une autre idée, elle sera la bienvenu !
Bonjour,
Tu crées une fonction OuvertureFiche en lui passant en paramètre la classe de ta fenetre puis tu parcours les fenetre de l'appli en utilisant "Screen.Forms". Si dans cette liste ta class est présente alors tu l'affiches sinon tu la crées.
a+
Partager