nirG
Messages postés67Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention19 juillet 2009
-
20 févr. 2009 à 18:48
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 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.
nirG
Messages postés67Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention19 juillet 2009 20 févr. 2009 à 21:35
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;
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;
nirG
Messages postés67Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention19 juillet 2009 20 févr. 2009 à 18:54
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.