Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Majuscule seulement pour initiale dans ComboBox [ Archives / J'AI BESOIN D'AIDE !!!! :O ] (LaNat88)

vendredi 1 juillet 2005 à 13:37:48 | Majuscule seulement pour initiale dans ComboBox

LaNat88

Bonjour,
J'ai un ComboBox, et quand j'écris dedans ça me met au fur et à mesure sur l'item correspondant, et donc quand j'ai le bon item inscrit, je fais tab pour passer à un autre ComboBox. Mais le problème est que quand j'écris, la majuscule qui était en majuscule dans mon item devient minuscule car j'ai écris dans mon ComboBox en minuscule. Est-ce qu'il y a une astuce pour mettre la 1ere lettre de saisie de mon ComboBox en majuscule ou alors il faut que je fasse le test dans le OnKeyDown?
Merci d'avance

vendredi 1 juillet 2005 à 14:14:27 | Re : Majuscule seulement pour initiale dans ComboBox

florenth

Membre Club
Tu peux mettre con TCombobox en Style = csDropDownList ou bien mettre ce code dans l'évenement OnKeyPress de ton ComboBox:


procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if ComboBox1.Text = '' then
    Key:=UpCase(Key);
end;


Voila

@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais

vendredi 1 juillet 2005 à 14:15:56 | Re : Majuscule seulement pour initiale dans ComboBox

jlen100

Membre Club
salut,
je pense que le plus simple est de forcer la majuscule au moment ou tu quites ton combobox en utiisant dans onexit
if ComboBox1.Items<>'' then ComboBox1.Items[1] := UpperCase(ComboBox1.Items[1])


vendredi 1 juillet 2005 à 15:01:30 | Re : Majuscule seulement pour initiale dans ComboBox

LaNat88

Merci tout d'abord à tous les 2 de vous soucier de mon problème mais j'ai l'impression que le code de florent va mettre en majuscules tout mon item alors que je ne veux que la 1ere lettre. Dans ce cas je verrai plus un truc du style comme jlen100, mais moi je bosserais plutot sur le Text et non sur l'item, dans ce cas comment récupérer la 1ere lettre du Text? par un copy? du genre :
tmp := combobox.text;
tmp2 := copy(tmp,1,1);
tmp3 := copy(tmp,2,le reste);
combobox.text:=upper(tmp2)+tmp3
Non? Dites moi si je me goure, je débute en delphi!!
Merci!


vendredi 1 juillet 2005 à 15:10:41 | Re : Majuscule seulement pour initiale dans ComboBox

LaNat88

Bon alors je viens de tenter le truc, ca a l'air de fonctionner :
procedure TFenetreSaisieInterlocuteur.ListeExit(Sender: TObject);
var
  tmp,tmp2,tmp3 : string;
begin
  tmp := Liste.Text;
  tmp2 := copy(tmp,1,1);
  tmp3 := copy(tmp,2,Length(Liste.Text)-1);
  Liste.Text := UpperCase(tmp2)+tmp3;
end;
Bon c'est un peu 'magouille' mais bon ca fonctionne...
Merci encore à vous 2!
Nathalie


vendredi 1 juillet 2005 à 17:46:02 | Re : Majuscule seulement pour initiale dans ComboBox

florenth

Membre Club
Euh, LaNat88, as-tu vraiment testé mon code ??
Car figure toi qu'il fonctionne parfaitement (il ne met que la 1ère lettre) : le code teste si la saisie est vide, donc si l'utilisateur est en train de taper le 1er carac, et si c'est le cas, il le met en majuscule.

L'avantage de ma technique par rapport à la tienne est que la mise en majuscule de la 1ere lettre se fait dès qu'elle est tapée et non pas à la fin.

JLen100 > As tu testé ton code ?? A priori non.
 - Delphi signale une erreur au niveau du IF. Normal, tu compare un objet à une chaîne et tu lui attribue une valeur chaine: j'imagine que tu voulais mettre Text à la place de Items-
 - UpperCase(ComboBox1.Items[1] comme tu l'as écrit, revoie tout le premier item en majuscule. Ce n'est pas du toun ce que LaNat88 recherchait.

Résultat: LaNat88, regarde les codes que l'on te propose. A quoi cela sert de poser une question si on n'écoute pas la réponse ? Ma premiere réponse correspond parfaitement à tes attentes.

@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais

vendredi 1 juillet 2005 à 17:48:53 | Re : Majuscule seulement pour initiale dans ComboBox

florenth

Membre Club
LaNat88, ton code magouillé fonctionnne c'est l'essentiel mais tu peux aussi mettre:

Liste.Text[1]:=UpCase(Liste.Text[1]);

Comment faire compliqué quand on peut faire simple ??
Mais je te le rapelle une dernière fois, mon premier message (celui juste en dessous de ta question) est préférable à ton code, et à celui que je te présente à la ligne du dessus.

@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais

vendredi 1 juillet 2005 à 19:11:23 | Re : Majuscule seulement pour initiale dans ComboBox

jlen100

Membre Club
salut, florent
c'est vrai je n'avais pas tester mon code.
mais je pense que que tu n'as non plus tester le tien
en effet:
 Liste.Text[1]:=UpCase(Liste.Text[1]);
n'est pas compilable (erreur de compliation la partie gauche n'est pas affectable) ensuite si tu sort avec un text vide tu auras une erreur d'execution.
il faut passer par une variable intermediaire et tester si elle est valide avant d'utiliser la fonction UpCase() (chaine non vide)

 procedure TForm1.listeExit(Sender: TObject);
var buffer:string;
begin
 buffer:=Liste.Text;
 if buffer<>'' then buffer[1]:=UpCase(buffer[1]);
 liste.Text:=buffer;
end;



samedi 2 juillet 2005 à 21:04:55 | Re : Majuscule seulement pour initiale dans ComboBox

florenth

Membre Club
Réponse acceptée !
Eh mais il y a du vrai dans ce que tu dis !!! ;-)
Ca fait "un partout".

Non, en effet, je n'avais pas testé ce bout là: ça me semblait tellement évident que cela allait marcher ...


En résumé, deux solutions sont envisageables à ce problème :

- La première, la tienne jlen100, (du post d'avant) qui effectue une mise en majuscule après que l'utilisateur ait TOUT saisi dans le combobox.
Inconvénient: une variable temporaire et le délai entre le moment où l'utilisateur entre sa première lettre et le moment où elle sera mise en majsucule.

- La deuxème, la mienne (celle de mon tout premier post) qui effectue une mise en majuscules DES QUE l'utilisateur entre sa PREMIERE lettre.
Inconvénient: ?? (mais comme c'est mon code, je suis mal place pour en dire du mal, faites-le moi savoir si qqch cloche)

LaNat88, tu fais ton choix et tu valide (de préférence) nos deux réponses puisqu'elles fonctionnent toutes deux.

@ +++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais

samedi 2 juillet 2005 à 22:57:00 | Re : Majuscule seulement pour initiale dans ComboBox

jlen100

Membre Club
Un partout c'est beaucoup dire. C'est toujours sur les trucs les plus évidents qu'on se plante.
 l'inconvénient de ta méthode bien que mineure c'est de mobililiser un peu plus de ressources processeurs (un appel de procedure et un test à chaque cartactére) . c'est un vieux reste de TurboPascal tournant  sur un 8086 à 8Mhz : il valait mieux faire attention à son code.

Ma méthode (mais c'est moi qui  le  dit  je ne suis donc pas impartial) c'est ce qu'on appelle la différenciation retardée : effectuer le traitement qu'en c'est  nécessaire

La variable temporaire est une variable locale qui est libéerée des la sortie de la procedure son influence est faible sur l'occupatiuon mémoire (sauf à rentrer un roman fleuve dans Text) cela ne dépasse pas 1 pointeur  en pile + la chaine .

quand au choix  entre les 2 methodes tout dépend de ce qu'on fait apès:
@+
jlen100

L'expérience est la somme des erreurs corrigées



1 2

Cette discussion est classé dans : combobox, item, majuscule, seulement, écris


Répondre à ce message

Sujets en rapport avec ce message

PB Combobox :/ [ par funemul ] Voila ce que je sohaite faire :J ai un combobox, je veux mettre dans une variable la valeur du 2eme item (au lieu de commencer au premier je commence Item ComboBox [ par DeAtHCrAsH ] Salut c'est encore moi,Peut on déscativé un item dans un combobox ?Si oui comment ?Et y ajouter un séparateur ???Merci par avance.Shell Interdire l'ajout d'un item vide dans une combobox ? [ par Val08000 ] Bonjour !Je suis débutant en delphi !Je voudrais savoir comment faire pour interdire l'ajout d'un item ne comportant pas de texte dans une combobox ! Ajouter et extraire du text d'un combobox [ par Francky23012301 ] Salut à tous, J'ai deux question par rapport aux combobox : *Je souhaite insérer dans un item de ma combobox, le texte que je viens d'entrer dans ma donner une action d'une item de combobox [ par hackeur13 ] Bonjour a tous et a toutes,je continue a travailler sur le fonctionnement du patch alors j'aimerais savoir si il est possible de recuperer 'l'item' qu Ajouter un item de ComboBox dans une listview [ par maxoudu328 ] Bonjour, N'arrivent pas a ajouté un item d'un combobox directement via cette commande : ListAjout.SubItems.Add(ComboBox1.items); A cause de l'imco Comment Supprimer Un Item Selectionné dans une Combobox ? [ par Val08000 ] Bonjour,Je voudrais savoir si il est possible de supprimer seulement l'item selectionné dans une combobox ? Je programme en Delphi depuis pas très lon Comment ne pas pouvoir rentrer deux memes items dans une ComboBox ? [ par Val08000 ] Bonjour,Je programme en Delphi depuis pas très longtemps !Voila mon problème : je dispose d'un Edit, d'un bouton nommé "ajouter" et d'une combobox.Lor Syntaxe pour aller chercher la valeur du combobox pour effecuer une opération [ par Val08000 ] Bonjour,Je voudrais faire faire une action en cliquant sur un speedbutton a la condition que l'item de ma combobox soit un item bien précis ! C'est à ComboBox, problème [ par K20 ] Bonjour tout le monde ! Voilà j'ai une comboBox dans Delphi 7 qui contient 3 éléments différents. Mon problème est simple : comment récupéré l'item s


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.