begin process at 2012 02 11 16:33:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Remplacer un caractère par un autre


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

Remplacer un caractère par un autre

mardi 27 juillet 2010 à 11:12:00 | Remplacer un caractère par un autre

gpletinckx


Bonjour,

Je voudrais que lors de la frappe du caractère apostrophe ou du caractère point-virgule, ceux-ci soient remplacés par un espace.
J'ai réalisé un petit code qui remplace un retour-ligne par un tab:

Code Delphi :
Procedure TFPP.CMDialogKey(Var Msg : TWMKey) ;
Begin
  If Not (ActiveControl Is TButton) Then
    If Msg.Charcode = VK_RETURN Then
      Msg.Charcode := VK_TAB ;
  Inherited ;
End ;

J'utilise Delphi 7.
Comment faire?

Bien à vous,

G. PLETINCKX
mardi 27 juillet 2010 à 12:04:01 | Re : Remplacer un caractère par un autre

Bacterius

Membre Club
Salut,
tu peux obtenir les touches de code virtuelle ici ici. Ensuite, je pense que ord('''') et ord(';') marche bien aussi, mais je n'ai pas testé.

Cordialement, Bacterius !

mardi 27 juillet 2010 à 14:36:24 | Re : Remplacer un caractère par un autre

pseudo3

Bonjour,

Manque de bol "ord('''') et ord(';')" ne marchent pas.

Le code suivant testé marche :

Code Delphi :
// Mettre la proprité KeyPreview de Form1 à true (interception des événements-clavier) et créer la procedure suivante :

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin     case Key of
               VK_RETURN : Key := VK_TAB;
          end;

          if (Not (ssShift in sHIFT)) // Point-virgule = minuscule
          and (key=190) // Touche point et point-virgule
          then begin showmessage('point virgule'); Key:=VK_Space; end;

          if (GetAsyncKeyState(VK_RMENU)<>0) // Touche AltGr à droite
          and (Key=52) // Touche de l'apostrophe et du 4
          then begin showmessage('apostrophe'); Key:=VK_Space; end;

          showMessage(chr(key));  
end;


A+.
mardi 27 juillet 2010 à 16:04:51 | Re : Remplacer un caractère par un autre

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
ouai mais il est pas terrible ce code


celui-ci fait la même chose à ceci prêt, qu'il intercepte et modifie la touche avant que les autres composants ne reçoivent le message

Code Delphi :

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if 
(Key = ''''or (Key = ';')then
    
Key := #32
  
else
  if 
Key = #13 then
    
Key := #9;
end;




avec ton code par contre c'est l'inverse ...
Si tu places un TMemo sur ta fiche et tu essayes de taper ces caractères "'" & ";" tu verras qu'ils s'y affichent quand même !!


@+Cirec
mardi 27 juillet 2010 à 16:18:23 | Re : Remplacer un caractère par un autre

pseudo3

Re-Bonjour,

ouai mais il est pas terrible ce code


... effectivement le tien est bien meilleur pour ce cas.

A+.
lundi 2 août 2010 à 14:25:18 | Re : Remplacer un caractère par un autre

gpletinckx


Désolé mais ton code ne semble pas fonctionner. Je l'ai installé dans mon programme, je n'ai pas d'erreur mais lorsque j'écrits dans un champ TDbedit, les apostrophes ou point-virgules restent.

Voici un morceau de mon code:

Code Delphi :
    procedure FormKeyPress(Sender: TObject; var Key: Char);

  private
    { Déclarations privées }
    Procedure CMDialogKey(Var Msg : TWMKey) ; message CM_DIALOGKEY ;
    
  public
    { Déclarations publiques }
    cb3, erreur, ctl1, ctl2, cpt1, cpt2, cpt3 : Integer ;
    cb2, cbrest : Int64 ;
    PPT, Fen, cb1, Proven, Comp : String ; // Proven = provenance PP pr Décision
    PPAN, PPNU : Integer ;
    PPOR, PPPRO : String ;
    mand1, mand2, mand3, mand4, mand5, mand6, mand7, mand8, mand9 : String;
  End ;

Var
  FPP : TFPP ;

Implementation

Uses Calis, Bien, SelPP, VicPropPP, PersMor, Datas, Datas1, Decision, Admin,
  PaiePP, FSupprPP, Mandat ;

{$R *.dfm}

Procedure TFPP.CMDialogKey(Var Msg : TWMKey) ;
Begin
  If Not (ActiveControl Is TButton) Then
    Begin
      If Msg.Charcode = VK_RETURN Then
        Msg.Charcode := VK_TAB ;
    End;
  Inherited ;
End ;

procedure TFPP.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = '''') or (Key = ';')then
    Key := #32
  else
  if Key = #13 then
    Key := #9;
end;


Bien à toi,

G. PLETINCKX
lundi 2 août 2010 à 15:00:51 | Re : Remplacer un caractère par un autre

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

il faut mettre la propriété "KeyPreview" de la Form (TFPP) à True
et ça devrait aussi fonctionner



@+Cirec
lundi 2 août 2010 à 15:03:41 | Re : Remplacer un caractère par un autre

gpletinckx


Désolé mais ça ne fonctionne pas

G. PLETINCKX
lundi 2 août 2010 à 15:06:16 | Re : Remplacer un caractère par un autre

gpletinckx


Où faut-il définir la procédure? Dans les procédures générales ou Private?

G. PLETINCKX
lundi 2 août 2010 à 17:08:28 | Re : Remplacer un caractère par un autre

pseudo3

Bonjour,

A mon avis la Procedure TFPP.CMDialogKey(Var Msg : TWMKey) est devenue superflue du fait de l'existence de la procedure TFPP.FormKeyPress();

A+.

1 2

Cette discussion est classée dans : code, caractère, remplacer, tab, msg


Répondre à ce message

Sujets en rapport avec ce message

Code ASCII -> Son caractère correspondant [ par Fabiin ] Salut !Quel fonction permet de passer du code ASCII en sont caractère correspondnat ???l'inverse de Ord()Merci par avance@+Fabs convertir un code ascii en sont caractère équivalent [ par cricri_b34 ] salut, j'aimerais savoir si il existe un api qui permet de coonvertir un code ascii en sont caractere équivalentdependament de la langue de clavier remplacer un caractère par un autre [ par JackNUMBER ] boujour! boujour!alors voila je vous explique mon problème:j'ai 2 memo, un où l'on entre un texte et l'autre ou le texte aura certain caractère qui au Remplacer chaine de caractère [ par Also know as ] Bonjour à tous,Voilà je souhaiterais juste pouvoir supprimer plusieurs caractères à la suite.Je vais chercher dans la base de registre une certaine ad access violation [ par nEm3sis ] Bonjourje ne savai pas ou poster ça j'espère ne pas m'etre trompéj'ai fais une application client-serveur en utilisant le multithreadingj'utilise Ente PB caractère ascii [ par fbalien ] Bonjour j'ai un souci avec la gestion des caractères ascii dans mom mot de passe windows j'utilise des codes aschii tel que par exemple '?'généré par Comment mettre caractère Ohm dans une string? [ par Sat83 ] Hello...Je suis debutant en Delphi et je souhaiterais savoir comment faire pour ajouter le caractère '?' dans une string dans mon code....par exemple: Afficher le code ASCII d'un caractère [ par swadfish ] salut tt le monde.je veux créer une application sous delphi qui me donne le code ascii de chaque caracteres tapé dans un editbox.merci d'avance.  @+ WindowState [ par OcHre ] Salut, je poste ce message parceque j'ai quelques problemes concernant WindowState à savoir que ma Form principale renvoie toujours wsNormal meme lors recuperer une variable et generation code [ par newbieratus ] 8DBonjour a tous,voila j'ai ecrit un petit prog qui doit me recuperer le champs d'une variable et de generer un code en cliquant sur un bouton et en y


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 7,550 sec (3)

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