Timage et TStringGrid

Signaler
Messages postés
24
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
5 janvier 2005
-
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
Salut j'ai un pti prob de programmation:

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:

procedure TF_Interface.Image1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
Col:Integer;
Point,sX,sY,Ponderation:string;
Pt:Integer

Tab_Pt_CTRL.Canvas.Brush.Color:=clblue;
Point:=Tab_Pt_CTRL.cells[0,Prespoint(x,y)];
sX:=Tab_Pt_CTRL.cells[1,Prespoint(x,y)];
sY:=Tab_Pt_CTRL.cells[2,Prespoint(x,y)];

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.

6 réponses

Messages postés
24
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
5 janvier 2005

Repondez moi SvP c'est assez important !!! :(
Messages postés
24
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
5 janvier 2005

pourquoi personne ne me repond
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Attends, on s'réveille !

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.

Il faut gérer OnDrawCell !!


Ken@vo
____________________
Code, Code, Codec !
Messages postés
24
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
5 janvier 2005

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
..... :(
Messages postés
24
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
5 janvier 2005

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
..... :(
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
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.


Ken@vo
____________________
Code, Code, Codec !