Fermer Forms Dynamiques [Résolu]

Messages postés
67
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
19 juillet 2009
- - Dernière réponse : Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
- 21 févr. 2009 à 03:22
Bonjour,

Je recherche une façon de fermer mes forms dynamiques. Je vous présente un bout de mon code afin que vous compreniez.

for I := 0 to Compteurchamps do begin
               begin
                  MyForm := TMyForm.CreateNew(Form1);
                      with MyForm do
                        begin
                          Myform.Close;
                          MyForm.OnClose := MyFormClose;
                          SetBounds(200, 200, 150, 90);
                          Caption := 'MyForm'+IntToStr(i);
                          name := 'F'+IntToStr(i);
                          BorderStyle := bsSizeToolWin;
                          FormStyle := fsStayOnTop;
                            if I > 0 then
                              begin
                                var1:= var1+90;
                              end;
                              Left := 1130;
                              Top := 905-var1;
                 Label1 := TLabel.Create(MyForm);
                    with Label1 do
                      begin
                        Parent := MyForm;
                        SetBounds(5, 5, 5, 5);
                        WordWrap := True;
                        Width := 130;
                        Height := 113;
                        Caption := 'Mon message';
                        WordWrap := True;
                      end;
                 Visible := TRUE;
              end;
            end;
        end;
    end;

J'ai recherché plusieurs façons, mais comme je suis encore un débutant, je n'arrive pas a appliquer les solution proposées sur différents forums. Je me permet de poster un message afin que des personnes puissent m'éclairer sur une solution.

Je vous remercie d'avance de vos réponses.

Cordialement.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
67
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
19 juillet 2009
3
Merci
J'ai enfin trouvé la solution. En créant des timers directement sur mes forms.

résultat :

           for I := 0 to Compteurchamps do begin
               begin
                  MyForm := TMyForm.CreateNew(Form1);
                      with MyForm do
                        begin
                          Myform.Close;
                          MyForm.OnClose := MyFormClose;
                          SetBounds(200, 200, 150, 90);
                          Caption := 'MyForm'+IntToStr(i);
                          BorderStyle := bsSizeToolWin;
                          FormStyle := fsStayOnTop;
                            if I > 0 then
                              begin
                                var1:= var1+90;
                              end;
                              Left := 1130;
                              Top := 905-var1;

                 Label1 := TLabel.Create(MyForm);
                    with Label1 do
                      begin
                        Parent := MyForm;
                        SetBounds(5, 5, 5, 5);
                        WordWrap := True;
                        Width := 130;
                        Height := 113;
                        Caption := 'Mon message';
                        WordWrap := True;
                      end;

                 Timer1 := TTimer.Create(MyForm);
                    with Timer1 do
                      begin
                      Parent := MyForm;
                      Interval := 1000;
                    end;
                 Visible := TRUE;
                 Timer1.OnTimer := lol;
              end;

            end;
        end;
    end;
    cpt:=i;
end;

procedure TMyForm.MyFormClose(Sender: TObject; var Action: TCloseAction);
  begin
    Sender.Free;
  end;
procedure TMyForm.lol(Sender: TObject);
  begin
    close;
  end;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nirG
Messages postés
67
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
19 juillet 2009
0
Merci
J'ai oublié de préciser que mon code se trouve dans un timer, donc elles doivent se fermer automatiquement avant la reconstruction des forms dynamiques.

Merci
Commenter la réponse de nirG
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
0
Merci
C'était une tranche de vie d'un programmeur Delphi.

Merci.
Commenter la réponse de Caribensila