Bonjour à toutes et tous.
Description : depuis une Form1, un bouton Go lance une Form2.
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 procedure TForm1.BoutonGoClick(Sender: TObject); begin Form2.ShowModal; 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 !
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;
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
Partager