Dessin d'un rectangle?

Messages postés
123
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
- - Dernière réponse : cs_yanb
Messages postés
260
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
4 mars 2016
- 17 oct. 2011 à 10:56
Je me sens un peu bête...
mais pourquoi cela ne donne pas un rectangle?

procedure TForm1.FormCreate(Sender: TObject);
begin
Canvas.Pen.Width:=1;
Canvas.Pen.Color:=clblack;
canvas.Brush.Color:=clred;
Canvas.Rectangle(10,10,20,20);
end;


je ne vois rien dans la form,.
J'ai essayé avec PaintBox, même résultat...

j'ai dû loupé quelque chose...
Afficher la suite 

2 réponses

Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
0
Merci
lol,

c' est normal, tu es dans le OnCreate: Dans le OnCreate, la form n' est pas encore visible. Après cela, la form va être dessinnée pour la 1ère fois mais sans le rectangle

Mets le même code dans le click d' un bouton. Voilà!
Par contre, si tu minimises la form et tu la restaure, le rectangle n' est plus visible: c' est pour cela que l' événement OnPaint existe.

A+



Composants Cindy pour Delphi
Faites une donation.
Commenter la réponse de cs_MAURICIO
Messages postés
260
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
4 mars 2016
5
0
Merci
Salut,

Quand une fiche est créée et que sa propriété Visible a la valeur true, les événements suivants se produisent dans l'ordre :
1. OnCreate
2. OnShow
3. OnActivate
4. OnPaint
donc
procedure TForm1.FormPaint(Sender: TObject); 
begin 
Canvas.Pen.Width:=1; 
Canvas.Pen.Color:=clblack; 
canvas.Brush.Color:=clred; 
Canvas.Rectangle(10,10,20,20); 
end; 

@+yanb
Commenter la réponse de cs_yanb