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 :

[TMemo] Problème avec la propriété Text


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut [TMemo] Problème avec la propriété Text
    Bonjour

    Je fais ça... (DatRetCH est un TMemo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TFichEdit.DatRetCHKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if(shift=[ssCtrl])
      and(key=74)
      then(sender as TMemo).Text:=datetostr(date);
    end;
    Apparemment ça marche

    Sauf que plus loin
    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
    procedure TFichEdit.DatRetCHExit(Sender: TObject);
    var
      essaidate:TDate;
    begin
      try
        essaidate:=strtodate((sender as TMemo).Text);
      except
        on econverterror do
        begin
          if (sender as TMemo).Text='' then exit;
          showmessage((sender as TMemo).Text+' n''est pas une date valide');
          activecontrol:=(sender as TMemo);
          (sender as Tmemo).SelStart:=0;
          (sender as Tmemo).SelLength:=length((sender as Tmemo).Text);
        end;
      end;
    end;
    L'exception est déclenchée
    On dirait qu'il y a un caractère devant la date affichée dans le TMemo
    Si je place le curseur tout à gauche et si j'appuie sur le touche effacement à gauche, la date devient valide, alors que je ne supprime pas de caratère...

    Si qqn a une piste

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut OutOfRange,

    J'ai réussi à pallier à ton soucis ...

    En fait, il y a l'événement OnKeyDown qui s'effectue, puis, il y a le OnKeyPress! Donc pour neutraliser la touche lorsque tu mets une date, j'ai fait ceci :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    var
      Form1: TForm1;
      MettreDate:boolean;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.DatRetCHKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if(shift=[ssCtrl]) and(key=74) then
    begin
    MettreDate:=true;
    (sender as TMemo).Text:=trim(datetostr(now));
    end;
    end;
     
    procedure TForm1.DatRetCHExit(Sender: TObject);
    var
      essaidate:TDate;
    begin
      try
        essaidate:=strtodate((sender as TMemo).Text);
      except
        on econverterror do
        begin
          if (sender as TMemo).Lines.Strings[0]='' then exit;
          showmessage((sender as TMemo).Text+' n''est pas une date valide');
          activecontrol:=(sender as TMemo);
          (sender as Tmemo).SelStart:=0;
          (sender as Tmemo).SelLength:=length((sender as Tmemo).Text);
        end;
      end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    MettreDate:=false;
    end;
     
    procedure TForm1.DatRetCHKeyPress(Sender: TObject; var Key: Char);
    begin
    if MettreDate then
     begin
       Key:=#0;
       MettreDate:=false;
       DatRetCH.SelStart:=length(DatRetCH.Text);
     end;
    end;
    Aussi, tu remarqueras dans le code que j'ai modifié cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (sender as TMemo).Text='' then exit;
    par celle là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (sender as TMemo).Lines.Strings[0]='' then exit;
    car j'ai supposé que ton memo contiendrait surement une date en début de ligne, puis, du texte quelconque...

    Enfin, là, c'est autre chose, ne sachant pas trop ce qu'il contiendra vraiment, je n'en dirai pas plus

    En tout cas, j'espère que ma solution te correspondras.

    A++

  3. #3
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Salut ero-sennin

    OK ça marche comme ça
    Tu as raison, c'est certainement le OnKeyPress qui provoquait l'erreur
    J'avais pensé mettre mon code dedans, mais il ne gère pas le ShiftState...

    Merci

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

Discussions similaires

  1. problème avec la propriété .text
    Par pclaudel71 dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/06/2008, 22h59
  2. [VBA_E] problème avec la propriété SelectedItem
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/04/2007, 06h09
  3. [Conception] Problème avec input type="text"
    Par adrix26 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/03/2007, 10h52
  4. Problème avec affichage de text
    Par SkulD dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 25/10/2006, 15h03
  5. [Delphi 6] Problème avec la propriété Text d'un composant
    Par bionoir dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/12/2005, 11h23

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