Bonjour à tous, je souhaite ouvrir une nouvelle fenêtre en cliquant sur un bouton de ma fenêtre mère.
j'y arrive pas et obtiens à chaque fois des message d'erreurs.
Quelqu'un peut il m'aider SVP ?
Bonjour à tous, je souhaite ouvrir une nouvelle fenêtre en cliquant sur un bouton de ma fenêtre mère.
j'y arrive pas et obtiens à chaque fois des message d'erreurs.
Quelqu'un peut il m'aider SVP ?
Salut!
Pour t'aider nous aurons besoin de
- Un bout de code
- Le message d'erreur exact
Merci!
-Slimjoe
a voir le titre de ton post ,
pour créer une forme dynamiquement soit tu créer en mode conception un model exp nommé FORM1
et dans ton programme
attention quand vous créer dynamiquement desq form ne pas oublier de liberer la mémoire lorsque vous fermer ces dernieres sinon vous allez consommer toutes vos ressources.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.CreateForm(TForm1,Form1);
voici un bout de code :
--------------------------------------------------------------------------------
j'obtiens alors l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 unit Unit2; .... type TForm2 = class(TForm) ListBox1: TListBox; MainMenu1: TMainMenu; Panel1: TPanel; ...... procedure TForm2.Button1Click(Sender: TObject); var NewForm:TForm2; begin form2.Visible:=false; //Pour ne pas lancer 2 fois la même fenêtre if not assigned(NewForm) then begin Application.CreateForm(TForm2, NewForm); NewForm.caption:= 'Nouvelle form !'; end; end;
j'ai alors effacer le Unit2 mais l'erreur persiste
Code : Sélectionner tout - Visualiser dans une fenêtre à part Erreur fatale] Unit2.pas(66): F2092 Le programme ou l'unité 'Unit2' s'utilise récursivement lui-même
1. ta variable NewForm n'est pas déclarée au bon endroit : dans ton exemple elle est locale à ButtonClick et n'est donc pas conservée dès qu'on sort de cette méthode
2. voici un bout de code qui fonctionne chez moi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 implementation uses Unit2; {$R *.dfm} var NewForm : TForm2; procedure TForm1.Button1Click(Sender: TObject); begin Form2.Visible := False; if not Assigned(NewForm) then Application.CreateForm(TForm2, NewForm); NewForm.Caption := Edit1.Text; NewForm.ShowModal; end; end.
Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée
Hum...Erreur fatale] Unit2.pas(66): F2092 Le programme ou l'unité 'Unit2' s'utilise récursivement lui-même
T'aurais pas ajouté Unit2 dans tes uses de Unit2.pas par hasard ? Du genre :
Moi ce code me donne l'erreur citée à tous les coups.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 unit Unit2; interface uses Unit2; [...]
Tu n'as pas besoin de référencer Unit2 à l'intérieur de ton unit tout simplement parce que tu peux déjà accéder à tout le unit. Rien à voir avec la création de forms dynamiques par exemple .
Bon dev!
-Slimjoe
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager