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.
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 besoin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Procedure CodeCommun; begin le code commun end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 membreEnvoyé 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.
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 image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Donc dans ces cas-là, tu fais :
et dans l'implémentation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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 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.
merci à tous ca marche.
je modifierais les instruction pour la couleur aussi.
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager