begin process at 2010 02 10 06:32:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Majuscule seulement pour initiale dans ComboBox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Majuscule seulement pour initiale dans ComboBox

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ée 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 à Première lettre en majuscule dans un combobox [ par youhibadelphi ] Salut Je cherche afficher la première lettre en majuscule de toutes les lignes dans un combobox. Merci pour votre aide yahia


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales