ComboBox.Text

Signaler
Messages postés
235
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
26 juillet 2010
-
Messages postés
7
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
2 novembre 2004
-
Bonjour,
J'ai un comboBox, avec une liste de choix et j'ai rajoutté un dernier item : "autre". Je voudrais que quand on clique sur autre, il y ai ecrit dans la comboBox : 'Vous avez fait un autre choix'. Je fais donc :

ComboBox.Text:='Vous......' et là rien ne se passe puisque lorque l'on choisit "autre" et bien il est écrit "autre". Comment faire donc pour forcer l'affichage du texte?
Merci
MagicVinni

6 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Dans l'évènement OnChange du composant TComboBox :
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with ComboBox1 do
if Items.IndexOf('Autre') = ItemIndex then
begin
Items[ItemIndex] := 'Vous avez fait un autre choix';
ItemIndex := Items.IndexOf('Vous avez fait un autre choix');
end;
end;

May Delphi be with you
Messages postés
235
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
26 juillet 2010

Merci,
Mais je voudrais pouvoir garder l'item "autre" et seulement changer le texte de la combobox, c'est possible tu penses?
Merci
MagicVinni
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Il y a une autre méthode, qui réalise ce que tu veux. Mais c'est un peu détourné. Met la propriété Style du ComboBox à csOwnerDrawFixed, puis ajoute le code suivant dans OnDrawItem :
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
With ComboBox1 Do With Canvas Do
Begin
FillRect(Rect);
if odSelected In State
Then Font.Color := clHighLightText
Else Font.Color := clBtnText;
If Index>=0
Then Begin
If (Items[Index]='Autre')And (odComboBoxEdit In State )
Then TextOut(Rect.Left, Rect.Top, 'Vous avez fait un autre choix')
Else TextOut(Rect.Left, Rect.Top, Items[Index]);
End;
End;
end;

--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
La propriété Text est une propriété publiée en lecture/écriture. Celà est donc possible.

May Delphi be with you
Messages postés
235
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
26 juillet 2010

Merci oh maitre :)
MagicVinni
Messages postés
7
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
2 novembre 2004

Salut c'est joé....
_ Ajoute un Timer sur Form1
_Règle l'interval a 1
_Et ajoute se code entre begin et end:
if combobox1.SelText ='autre' then
combobox1.Text:='Vous avez fait un autre choix';
_______________________
J'éspère que sa ta aider bay....:)