IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Delphi téléphone et lettre


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Delphi téléphone et lettre
    Bonjour à tous,
    Je me remets doucement à Delphi, mais j'ai oublié comment réaliser deux choses :
    - comment formater un texte pour les numéros de téléphone : dans ma base j'aurais bien un tel du style 0333338944 mais en saisie je souhaiterais avoir ca sous la forme 03-33-33-89-44
    - je sais qu'on peut attribuer à un bouton une lettre du clavier : du genre je veux que lorsque l'utilisateur fera entrer cela validera un bouton 'OK' par exemple...
    Merci de votre aide à une débutante en détresse.

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut Re: Delphi téléphone et lettre - Débutante en détresse
    Citation Envoyé par audreyb
    - je sais qu'on peut attribuer à un bouton une lettre du clavier : du genre je veux que lorsque l'utilisateur fera entrer cela validera un bouton 'OK' par exemple...
    Button1.Caption := '&Faire qqch'
    Faire qqch
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    comment formater un texte pour les numéros de téléphone : dans ma base j'aurais bien un tel du style 0333338944 mais en saisie je souhaiterais avoir ca sous la forme 03-33-33-89-44
    Un TmaskEdit pourait faire l'affaire pour avoir en saisie 03-33-33-89-44 , ensuite pour l'enregistrement va falloir traiter le texte du TmaskEdit (supprimer les tirets quoi).

    - je sais qu'on peut attribuer à un bouton une lettre du clavier : du genre je veux que lorsque l'utilisateur fera entrer cela validera un bouton 'OK' par exemple...
    En effet , c'est dans l'evenement OnKeyDown (ou up)
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Key = VK_Return then begin
    Button1.click;
    end;
    Maintenant, il faut le mettre dans l'evenement d'un control adéquat.
    Je veux dire par là que si tu souhaite qu'a chaque fois qu'on appuie sur Enter , a partir de n'importe quel control, le bouton se presse, là, il faudra le mettre dans l'évenement OnKeyDown (ou Up) de la fiche. Mais si tu veux qu'a chaque fois qu'on presse sur Enter lorsque le focus est sur un control bien particulier, là, il faudra mettre le code dans l'efveneemnt OnKeyDown (ou up) de ce control.

    Voila, j'espere que j'ai bien expliqué le bazar

    Ps : Si tu geres les touches par les évenements de ta fiche (Form1 ) , tu devras mettre à TRUE la propriété KeyPreview.

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par audreyb
    - comment formater un texte pour les numéros de téléphone : dans ma base j'aurais bien un tel du style 0333338944 mais en saisie je souhaiterais avoir ca sous la forme 03-33-33-89-44
    Les fonctions suivantes permettent l'ajoût des séparateurs à mesure de l'édition (évènement "onKeyUp" du TEdit).
    La fonction "Fusion" supprime tous les séparateurs de la chaîne.
    La fonction "Separe" ajoute les tirets (x MOD 2).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    {----------------------------------------------------------------}
    FUNCTION Fusion(st:String):String;
    VAR x:Integer;
    BEGIN
     Result:=''; IF(st='')THEN EXIT;
     FOR x:=1 TO Length(st)DO
      IF(st[x]<>'-')THEN Result:=Result+st[x];
    END;
     
     
    {----------------------------------------------------------------}
    FUNCTION Separe(st:String):String;
    VAR x:Integer;
    BEGIN
     st:=Fusion(st);
     Result:=''; IF(st='')THEN EXIT;
     FOR x:=1 TO Length(st)DO
      IF(NOT Boolean(x MOD 2))AND(x<Length(st))THEN
        Result:=Result+st[x]+'-' ELSE Result:=Result+st[x];
    END;
     
     
    {----------------------------------------------------------------}
    PROCEDURE TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    VAR x:Integer;st:String;
    BEGIN
     st:=Edit1.Text;
     x:=Edit1.SelStart;
     Edit1.Text:=Separe(Edit1.Text);
     Edit1.SelStart:=x+(Length(Edit1.Text)-Length(st));
    END;
    à+
    De retour parmis vous après 10 ans!!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Citation Envoyé par portu
    Un TmaskEdit pourait faire l'affaire pour avoir en saisie 03-33-33-89-44 , ensuite pour l'enregistrement va falloir traiter le texte du TmaskEdit (supprimer les tirets quoi).
    Il suffit de décocher 'Enregister les caractères littéraux' pour les tirets ne soient pas dans le texte. Il y a même un masque prédéfini pour les numéros de téléphone.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Delphi]Mots de 2 et 3 lettres au scrabble
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 04/01/2011, 14h23
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. composant qui convertis des chiffres en lettre sous Delphi?
    Par ouldfella dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/03/2006, 14h28
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo