cs_apophys
Messages postés1Date d'inscriptionmercredi 14 juillet 2004StatutMembreDernière intervention 1 avril 2006
-
1 avril 2006 à 14:21
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
1 avril 2006 à 19:32
Bonjour,
J'ai un texte dans une image ecris a l'aide de canvas.TexTOut , je souhaire lorsque que l'on pas la souris de faire comme un rectangle de selection. par exemple que le texte s'inverse lorsque que la souris est dessus.
Comment puis-je inverser le texte ?
ou
comment mettre un rectangle de selection avec une couleur sans que le texte soit effacer ?
procedure TForm1.Image1MouseMove(Sender : TObject; X,Y : integer ...);
var TCol, GCol : TColor;
begin
// on test si le curseur est dans la zone du texte
TxtR := Types.PtInRect(TxtRect,Point(X,Y));
// si oui on selectionne la couleur "over"
// sinon on selectionne la couleur normale
if TxtR then begin
TCol := iTxtColor;
end else begin
TCol := nTxtColor;
end;
// si l'etat a changé
if TxtR <> OldR then begin
with image1.picture.bitmap.canvas do begin
// on efface la zone de texte
FillRect(TxtRect);
// on applique la couleur
Pen.Color := TCol;
font.color := TCol;
// on dessine le texte dans sa zone
TextRect(TxtRect, 0, 0, TxtText);
end;
end;
// on sauvegarde l'ancien etat pour le prochain passage
OldR := TxtR;