je developpe une application qui contient une zone image que l'utilisateur dans laquelle l'utiisateur peut dessiner. Quand l'utilisateur clik sur l'image, les coordonnées du point ou il a cliké apparaissent dans un String grid.sous la forme suivante:
Point | Coord X | Coord Y |
Point 1 | 56 | 27 |
L'utilisateur peut enregistrer ainsi plusieurs points.
Je voudrais par la suite que quand l'utilsateur passe sa souris au dessus d'un point créé sur l'image, la couleur de fond de la ligne correspondant au point soit modifié (en bleu par exemple)
Voici a peu pres mon code:
For Col:=0 to 3 do
begin
Tab_Pt_CTRL.Canvas.Rectangle(Tab_Pt_CTRL.CellRect(Col,Prespoint(x,y)));
Tab_Pt_CTRL.cells[0,Prespoint(x,y)]:=Point;
Tab_Pt_CTRL.cells[1,Prespoint(x,y)]:=sX;
Tab_Pt_CTRL.cells[2,Prespoint(x,y)]:=sY;
end;
end;
Mais ca ne marche pas correctement, quand je passe sur un point, la ligne associé se met sur ufond bleu 1/4 de sec...
Qu'est ce qui ne va pas?
Ps: la fonction Prespoint(x,y) détermine si la souris est proche d'un point avec une certaine precision et renvoi le numéro du point.
A vue de nez, comme tu modifie ton StringGrid, il se redessine, et si
tu ne gères pas l'évènement OnDrawCell, il se redessine avec les
attributs par défaut, et tes modifs il s'en tape et les efface.
humm...ok mais le problème c'est que ma procédure onDrawcell il lui faudrait d'un paramètre en plus pour kelle sache kelle ligne il faut colorier....mais ca ca marche pas
..... :(
humm...ok mais le problème c'est que ma procédure onDrawcell il lui faudrait d'un paramètre en plus pour kelle sache kelle ligne il faut colorier....mais ca ca marche pas
..... :(
Si tu n'as qu'une ligne à marquer, tu peux utiliser une variable
globale du type integer, égale à -1 si aucune ligne n'est sélectionnée
ou égale au numéro de la ligne sélectionnée.
Dans l'évènement OnDrawCell tu compares cette variable à ARow.