yoghisan
Messages postés204Date d'inscriptionsamedi 10 mai 2003StatutMembreDernière intervention 2 juin 2005
-
16 sept. 2003 à 23:24
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008
-
17 sept. 2003 à 04:02
Bonjour,
Je veux dessiner des polygones fermés (facile avec des lineto). Là où ca se complique pour moi c'est que je veux remplir rapidement ce polygone d'une couleur.
Une fois ca fait, je dois en faire plusieurs de la meme couleur (facile aussi une fois ci dessus connu) mais la ou ca se recomplique c'est que je dois etre capacle de les reconnaitre distinctement qand je clique dessus (exemple changer la couleur (ca je sais faire voir une de mes sources) de ce polygone).
Merci, beaucoup pour les reponses des gens qui ont le savoir ...
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008 17 sept. 2003 à 04:02
vaudrais peut-être mieux nous montrez une partie de ton code ... pour ma part polygon
with image1.Canvas do
begin
pen.Color:=ClYellow;
Brush.Color:=ClYellow;
Polygon([Point(1, 1),
Point(1, 12),
Point(12, 12),
Point(12, 1)]);
end;
ensuite si tu va dans l'inspecteur d'objet et que tu écris dans
l'événement OnMouseMouve de chaque image que tu utilise GlobalEnter et que tu referme l'inspecteur une procédure se créera d'elle même.
ajoute ceci dans cette procédure
procedure TForm1.GlobalEnter(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if(sender is TImage)then
begin
if(Bouton=MbLeft)then
begin
//on arrive ici lorsque l'on clic sur une image
case ((Sender as Timage).ComponentIndex) of
0:begin// mettre un arrêt pour être sur ici
if(x>0)and(x<13)and(y>0)and(y<13)then
begin //si on click sur le polygon
with image1.Canvas do
begin
pen.Color:=ClBlue;// ou une var générale
Brush.Color:=ClBlue;
Polygon([Point(1, 1),
Point(1, 12),
Point(12, 12),
Point(12, 1)]);
end;
end;
end;
1:;// une autre image ?
end;
end;
end;
end;
j'ai une variable public au niveau de la fiche
var
Form1: TForm1;
Bouton: TMouseButton;
et
//sur chaque image que tu utilise
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Bouton:=Button; //envoi à GlobalEnter la valeur bouton
GlobalEnter(Sender, Shift, X, Y);
Bouton:=mbRight;// remise à zéro
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Bouton:=mbRight;//mise à zéro
end;
mais c'est pas évident si les polygon sont fixes y'aura pas trop de problème à faire correspondre les événements mais si ça bouge alors faudra créé des tableaux et nager dans les variables ....
bon c'est une idée , je rigole mais bon c'est une idée et c'est ce que tu voulais non !!!