Bonjour à toutes et tous.
Description : depuis une Form1, un bouton Go lance une Form2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
procedure TForm1.BoutonGoClick(Sender: TObject);
begin
  Form2.ShowModal;
end;
J'utilise Form2.Create et Form2.Application pour positionner mes composants et dessiner un rectangle noir de "decorum". Ce rectangle noir sera ensuite écrasé par le dessin d'un diagramme dessiné ligne par ligne via un clic sur un bouton. Form2 se ferme par un Close.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
procedure TForm2.FormCreate(Sender: TObject);
begin
  // Passer plein écran
  Form2.WindowState := wsMaximized;
  Form2.BorderStyle := bsNone;
  //
end;
 
procedure TForm2.FormActivate(Sender: TObject);
begin
  // Positionnement des composants...
  Button1.Top:=10;
  Edit1.Left:=20;
  // etc... Fin du Positionnement des composants
 
  // Decorum (donc simplement pour faire un effet
  // de présentation) : un rectangle noir
  Form2.Canvas.Pen.Color:=clBlack;
  Form2.Canvas.Brush.Color:=clBlack;
  Form2.Canvas.Rectangle(X1,Y1,X2,Y2);
end;
 
procedure TForm2.BoutonAfficheDiagrammeClick(Sender: TObject);
begin
  // ici Instructions pour dessiner le diagramme
  // en écrasant le rectangle noir de Decorum
end;
 
procedure TForm2.BoutonStopClick(Sender: TObject);
begin
  Close; // j'ai essayé Release (conseillé par Cl@udius).
         // Destroy ou Free = plantage
end;
Problème : lors de la première utilisation, le lance Form2.ShowModal : tout est Ok. Je ferme alors Form2 via Close pour revenir sur Form1. Mais si je relance Form2.ShowModal, mes composants sont bien positionnés, mais le rectangle noir ne s'affiche plus !

Je ne demande pas une solution pour afficher à tout prix mon rectangle noir (ce n'est que du Decorum ), mais un éclairage pour m'aider à mieux comprendre les Form.Create et Form.Activate.

D'avance merci, cordialement.

Alain