bonjour,
Quelqu'un connait il un composant TEdit qui affiche un texte grisé tant que le TEdit.Text est vide (comme l'invite de saisie du nom d'utilisateur au démarrage de Vista). Merci.
bonjour,
Quelqu'un connait il un composant TEdit qui affiche un texte grisé tant que le TEdit.Text est vide (comme l'invite de saisie du nom d'utilisateur au démarrage de Vista). Merci.
Salut,vous n'avez pas besoin d'utiliser un autre composant.TEdit peut trés bien réaliser ce que vous voulez faire.Il suffit d'utiliser la propriété "color" :
Maintenant c'est à vous de voir ou placer cette instruction,vous pouvez par exemple la mettre au niveau de la procedure OnChange de Edit1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part IF edit1.text='' then edit1.font.color:=clInactiveBorder;//c'est un gris
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!»
SAlut
Ou aussi pour que ce soit plus simple au niveau de votre code mettre
Comme ca quand vous remettez la valeur par defaut de votre Edit il se met en gris sans avoir a faire d'autre manip
Code : Sélectionner tout - Visualiser dans une fenêtre à part IF edit1.text='Tapez ici votre nom' then edit1.font.color:=clInactiveBorder;//c'est un gris
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Moi je ferais ça comme ça : tu utilises TEdit et tu codes comme suit les événements OnEnter et OnExit :
Et dans le OnShow de ta fiche, sauf si le composant qui a le focus est l'edit en question :
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
17
18
19 procedure TForm1.Edit1Enter(Sender: TObject); begin if Edit1.Tag <> 0 then begin Edit1.Font.Color := clBlack; Edit1.Text := ''; Edit1.Tag := 0; end; end; procedure TForm1.Edit1Exit(Sender: TObject); begin if Edit1.Text = '' then begin Edit1.Font.Color := clGrey; Edit1.Text := 'Placez votre texte ici'; Edit1.Tag := 1; end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part Edit1Exit(nil);
sjrd, ancien rédacteur/modérateur Delphi.
Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
Découvrez Mes tutoriels.
J'ai toujours un composant ApplicationEvents et je fourre dans son évenement OnIdle toutes les manips de ce genre.
Voici un exemple que j'ai bricolé rapidement pour si tu veux en écrire un toi même
Yan.
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 type TMyEdit = class(TCustomEdit) // ou TEdit pour ne pas avoir à re-publier // toutes les propriétés de TEdit ;-) private procedure WMPaint(var Message: TWMPaint); message WM_PAINT; procedure CMEnter(var Message: TCMGotFocus); message CM_ENTER; procedure CMExit(var Message: TCMExit); message CM_EXIT; end; implementation procedure TMyEdit.CMEnter(var Message: TCMGotFocus); begin inherited; invalidate; // force le redessin de TMyEdit end; procedure TMyEdit.CMExit(var Message: TCMExit); begin inherited; invalidate; // force le redessin de TMyEdit end; procedure TMyEdit.WMPaint(var Message: TWMPaint); const cTexteVide = 'Tapez ici votre texte'; // ici une constante mais peut faire // l'objet d'un propriété publiée pour // le rendre paramétrable var _rect: TRect; cnv: TCanvas; begin inherited; // code exécuté seulement si Caption est vide et l'on n'est pas en saisie if (not Focused) and (Caption = '') then begin cnv := TCanvas.Create; cnv.Handle := GetDC(Handle); try _rect := Rect(0, 0, Width, Height); cnv.Font := Font; cnv.Font.Color := clInactiveCaption; cnv.TextRect(_rect, 2, 2, cTexteVide); finally ReleaseDC(Handle, cnv.Handle); cnv.Free; end; end; end;
devYan.
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