Bouton au fonction de la touche retour arrière [Résolu]

Signaler
Messages postés
45
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
6 février 2007
-
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
-
Bonjour,

voila je developpe en c++ builder et je voudrais savoir comment je peux définir un clic bouton pour qu'il agisse comme la touche du clavier retour arriere (celle au dessus de la touche Enter).
C'est pour effacer un caractère après l'autre dans un Edit Box sans utiliser le clavier.

Merci  d'avance

YP

9 réponses

Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
Salut,
tu n'a qu'a utiliser le simulation de touches

keybd_event(8,0,0,0);//o, appuie sur ret arrière
keybd_event(8,0,KEYEVENTF_KEYUP,0);//on relache
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
sinon au final voilà la soulution qui marche mais je trouve que ça fait un peu beaucoup je me demande si il ya pas plus court.A voi...

int nb_carac=Edit1->Text.Length();
AnsiString temp=Edit1->Text;


temp.Delete(nb_carac,1);
Edit1->Text=temp;
Edit1->Update();
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Il y a certainement beaucoup mieux pour effacer les caractères d'un Edit Box...

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
ben j'etait parti sur un idée, mais sans résulta,j'ai encore un peu de mal des foi avec le vcl,il ya peut etre une protection sur le membre Text d'un Edit.
Voici le code:

int nb_carac=Edit1->Text.Length();
Edit1->Text.Delete(nb_carac,1);
Edit1->Update();

A noter que celui qui suit marche:

AnsiString a="Boujourb";
int c=a.Length();
a.Delete(c,1);
Button2->Caption=a;

J'obtient bien "bonjour"
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ca me plait plus que d'utiliser keybd_event
Par contre ma m'étonne que tu mette temp.Delete(nb_carac,1); et pas temp.Delete(nb_carac-1,1);

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
La fonction delete supprime le nombre de caractére a partir du carractére désigné incluant celui ci.
Messages postés
45
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
6 février 2007

Merci tibob51 pour ce piti code.
Il marche tres bien ,mais maintenant j'aimerais l'adapter pour un MaskEdit et la ca coince car la longueur de la chaine reste toiujours la même. Par contre en appuyant sur retour arriere ca efface bien carractere apres caractère
je vais essayé le simulateur de touche car dans le cas du MaskEdit, j'ai des espaces qui ne doivent pas etre pris en compte. Ce qui veut dire que le traitement devrait etre un peu plus compliqué.
Messages postés
45
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
6 février 2007

Avec le simulateur de touche et le MaskEdit, ca marche du tonnerre

Merci pour tout
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
SendMessage(hEdit, WM_CHAR, VK_BACK, 0);