bonjour.
j'ai un bout de code qui doit etre utiliser dans plusieurs procedures
est-il possible de le plaçer quelque part de maniere à le faire appeler et executer par des procédures.
un peu comme une sub routine en vb
merci d'avance.
Version imprimable
bonjour.
j'ai un bout de code qui doit etre utiliser dans plusieurs procedures
est-il possible de le plaçer quelque part de maniere à le faire appeler et executer par des procédures.
un peu comme une sub routine en vb
merci d'avance.
Oui, tout à fait...
Isole la séquence commune :
Puis appeler cette procédure là où il y a besoinCode:
1
2
3
4 Procedure CodeCommun; begin le code commun end;
Code:
1
2
3
4instruction1; instruction2; CodeCommun; // <--- appel .....
n'oublie pas de déclarer codecommun
par exemple:
private
procedure codecommun;
et procedure Tform1.codecommun;
begin
le code commun
end;
un petit complément qui t'est peut-être nécessaire...
(et codecommun aux endroits voulus dans tes différentes procedures
comme indiqué dans le post précédent)[/quote]
Ce n'est pas forcément nécéessaire: si sa fonction n'utilise pas de membres de Form1, il n'y a pas d'intérêt de la déclarer comme son membre ;)Citation:
Envoyé par Archimède
c'est vrai...
mais si c'est la première fois qu'il se fait une procedure perso, il vaut mieux présenter un cas élémentaire plutôt que de généraliser.
:roll:
j'ai fait comme vous l'avez dit et au lancement j'ai l'erreur:
identificateur non declaré :'image1'
je vous mets le code commun
les lignes sont tracées sur un controle imageCode:
1
2
3
4
5
6
7
8
9
10
11 image1.Canvas.Pen.Mode:=pmxor; image1.Canvas.Pen.Color:=rgb(255,0,0); oldcolor:=image1.Canvas.Pen.Color; image1.Canvas.Pen.Color:=colortorgb(image1.Canvas.Pen.Color) xor colortorgb(color); image1.Canvas.MoveTo(0,cury2); image1.Canvas.LineTo(700,cury2); image1.Canvas.MoveTo(curx2,0); image1.Canvas.LineTo(curx2,700); image1.Canvas.Pen.Mode:=pmcopy; eraseprevious:=false; image1.Canvas.Pen.Color:=rgb(0,0,0);
lui meme sur une form
curx2 est obtenu en faisant //curx2:=trunc(x/10)*10 //pareil pour cury2
je me suis mis au delphi depuis une semaine si vous pouviez me donner un peu plus d'explications...merci.
:(
C'est le complément dont parlais Pedro...
Ta procedure contenant du code commun, doit en fait être un méthode contenu dans la form, pour qu'elle puisse reconnaitre tous les objets de ta form (Image1 en particulier)
Effectivement :D
Donc dans ces cas-là, tu fais :
et dans l'implémentation:Code:
1
2
3
4
5
6 TForm1=class(TForm) ... private procedure Dessine; ...
En n'oubliant pas de déclarer les variables qu'il faut ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure TForm1.Dessine; var [?] begin image1.Canvas.Pen.Mode:=pmxor; image1.Canvas.Pen.Color:=rgb(255,0,0); oldcolor:=image1.Canvas.Pen.Color; image1.Canvas.Pen.Color:=colortorgb(image1.Canvas.Pen.Color) xor colortorgb(color); image1.Canvas.MoveTo(0,cury2); image1.Canvas.LineTo(700,cury2); image1.Canvas.MoveTo(curx2,0); image1.Canvas.LineTo(curx2,700); image1.Canvas.Pen.Mode:=pmcopy; eraseprevious:=false; image1.Canvas.Pen.Color:=rgb(0,0,0); end;
les couleurs rgb(0,0,0) -->clblack
rgb(255,0,0)--->clred ou $0000ff
rgb c'est bien si tu mets des variables dedans. :wink:
merci à tous ca marche.
je modifierais les instruction pour la couleur aussi.
A+