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

 Delphi Discussion :

Reproduire un évenement


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut Reproduire un évenement
    Bonjour à toutes et à tous,

    J'utilise cette evenement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TFInfosBase.ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_RETURN then
      Begin
        RetourPourRichEdit := ListBox1.Items[ListBox1.itemindex];
        Close;
      end;
    end;
    Pour des raisons obscur je dois reproduire cette evenement dans l'evenement doubleclique, mais cela compile pas
    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
    procedure TFInfosBase.ListBox1DblClick(Sender: TObject);
    begin
    
      ListBox1KeyDown(Sender,[VK_RETURN],[ssShift]); Marche pas
      ListBox1KeyDown(Sender,VK_RETURN,[ssShift]); Marche pas 
      ListBox1KeyDown(Sender,VK_RETURN,ssShift); Marche pas
      ListBox1KeyDown(Sender,#13,[ssShift]) ; Marche pas
      ListBox1KeyDown(Sender,#13,Nil); Marche pas
      ListBox1KeyDown(Sender,#13,emptyparam); Marche pas
    
    
    
    //  RetourPourRichEdit := ListBox1.Items[ListBox1.itemindex];
    //  Close;
    end;
    Je vois vraiment pas les paramètres qu'ils faut envoyés.

    MErci de vos lumières

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Moi j'aurais fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1KeyDown(nil,VK_RETURN,[]);
    Mais si tu dis que ca marche pas ...
    Qu'est ce qu'il se passe exactement ?

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Salut

    Moi j'aurais fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1KeyDown(nil,VK_RETURN,[]);
    Mais si tu dis que ca marche pas ...
    Qu'est ce qu'il se passe exactement ?
    Salut mick,

    Alors même ta proposition fonctionne pas, j'ai ce message :

    types of actual and formal var parameters must be identical

    pour info : L'exemple de la FAQ ce limite à FormKeyPress qui comporte que 2 parametres sender et key en type char

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    salut,

    Buzz essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.ListBox1DblClick(Sender: TObject);
    var
      Key :word;
    begin
    Key := VK_RETURN;
    ListBox1KeyDown(sender,Key,[]);
    end;
    A+

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Salut NABIL,

    Effectivement ta solution regle mon message d'erreur.
    Je te remercie.


    Mais...parcqu'il y a un mais !!! lol, en fait cela ne regle pas mon probleme.


    Alors je vais l'expliquer.

    Quand je fait entrer ou doubleclique (maintenant) la valeur de RetourPourRichedit est bien alimentée, mais le truc de malade c'est que cette valeur s'écrit bien dans le RICHEEDIT quand je fais ENTREE mais ne fonctionne pas au doubleclique !! en fait quand je double clique je reviens dans mon richeedit et je suis obliger d'appuyer sur une touche pour voir apparaitre la valeur de RetourPourRichedit !! j'arrive pas à comprendre.


    @+

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    Bonjour,

    Quand je fait entrer ou doubleclique (maintenant) la valeur de RetourPourRichedit est bien alimentée, mais le truc de malade c'est que cette valeur s'écrit bien dans le RICHEEDIT quand je fais ENTREE mais ne fonctionne pas au doubleclique !! en fait quand je double clique je reviens dans mon richeedit et je suis obliger d'appuyer sur une touche pour voir apparaitre la valeur de RetourPourRichedit !! j'arrive pas à comprendre.
    Buzz, il y a une erreur dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TFInfosBase.ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_RETURN then
      Begin
        RetourPourRichEdit := ListBox1.Items[ListBox1.itemindex];//ici se situe ton erreur.
        Close;
      end;
    end;
    si tu veux ajouter à chaque fois une ligne dans le RichEdit, il suffit de faire un "Add" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if Key = VK_RETURN then
      Begin
        RetourPourRichEdit.Lines.Add(ListBox1.Items[ListBox1.ItemIndex]) ;
        Close;
      end;
    end;
    sinon, si tu veux modifier la valeur de la première ligne de ton RichEdit, tu modifie la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {...}
    RetourPourRichEdit.Lines.Text:=ListBox1.Items[ListBox1.ItemIndex] ;
    A+

    NABIL74

  7. #7
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Salut NABIL,

    Merci de ton implication.

    Mais tu ne fais pas vraiment la bonne opération. Le double clique à lieu dans le listeBox et non dans la form principal.
    De plus l'affichage d'un showmessage('Salut buzz') de l'evenement KeyUp n'a pas la même finalité qu'un ajout de text dans le Richedit, en fait le showmessage fonctionne aussi chez moi !! mdr.

    A plus

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Regarde plutot cet exemple,

    Tu remarqueras que si tu doubleclique dans le listbox, le riche edit ne recupere pas desuite le text, il faut par exemple appuyer sur fleche droite et tu vera le text apparaitre. J'aimerais que cela soit instantané au retour du close de la form2.

    A plus

  9. #9
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    J'ai un peu modifié à ma façon. Je ne sais pas si ça te conviendras. Mais le texte s'affiche.

    Edit: Je trouve un poil bizarre d'appeler un évéènement de type Key dans un autre évènement de type Key. D'ailleurs lorsque l'on utilise ton code, on entends un Bip, je me demande si la cause du problème ne serait pas ça.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    salut,

    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 TFInfosBase.ListBox1DblClick(Sender: TObject);
    var Key :word;
        S:string;
        I:integer;
    begin
    Key := VK_RETURN;
    //xRetourPourRichEdit := 'Test';
     
    for I := 0 to ListBox1.Items.Count - 1 do
    if ListBox1.Selected[I] then
          S:= ListBox1.Items.Strings[i];
     
    FTravail.RetourPourRichEdit.Text:= S;
     
    FTravail.RetourPourRichEditKeyUp(sender,Key,[]);
    Close;
    end;
    Buzz, Tu remarqueras que si tu fais un double-clique dans le listbox, le RichEdit récupère tout de suite le texte sélectionné dans le ListBox.

    je ne sais pas encore si c'est ça que tu cherches à obtenir.

    A+

    NABIL74

  11. #11
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Salut,

    NABIL : ta proposition peu se réduit par un ListBox1.items[Listbox1.Itemindex] que j'utilise déjà.

    Linkin : Merci de ta proposition qui se rapproche de ma demande, mais je ne retourne pas un result := 'test'; mais un result := ListBox1.items[Listbox1.Itemindex] et dans ce cas ca bug.
    Pourquoi je voudrais faire marcher un keyup dans un keypress c'est du au probleme que je rencontre si l'utilisateur utilise la souris au lieu du entrée dans ce cas la procédure Keyup n'as pas lieu !!! et c'est la où est tout le probleme.

    Si je n'utilise pas de keyUp pour faire apparaitre mon choix du listbox lors de l'appuie sur le '.' et au retour du choix dans la liste box, mon caractère point apparait apres la selection et non avant (je sais pas si je suis claire)
    au lieu d'avoir : xxxxx.xxx j'ai xxxxx xxxx. (le point est après) mais grace à la procedure keyup sa fonctionne parfaitement (sauf au clique souris CAR KEYUP n'ai pas exectuté !!!) pour le caractère '?' c'est différent je doit faire disparaitre le ? du richedit et ecrire le choix du list box à la place, et tout cela ne fonctionne pas bien si je n'execute pas ma procédure KEYUP.

    Donc je tourne en rond !!! même ta proposition ne fonctionne pas.

    pour reprendre le dileme :
    1 l'utilisateur tape des mots dans le richeedit
    2a il appuie sur le '?' apparait alors une liste de mot (qui se rempli avant le show)
    3a il fait sont choix et soit il double clique soit il appuie sur entrée
    4a j'écris ce choix à l'endroit où se trouve le ? et j'éfface le ?

    2b il appuie sur le '.' apparait alors une autre liste de mots (qui se rempli également avant le show)
    3a il fait sont choix et soit il double clique soit il appuie sur entree
    4a au retour dans le richeedit je doit laissé le point et ecrire le mot choisie apres

    Voilà le truc qui me prends la tête depuis 2 jours.

    Merci à vous.

  12. #12
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    salut,
    2b il appuie sur le '.' apparait alors une autre liste de mots (qui se rempli également avant le show)
    3a il fait sont choix et soit il double clique soit il appuie sur entree
    4a au retour dans le richeedit je doit laissé le point et ecrire le mot choisie apres
    Buzz,je pense qu'il faut controler l'appui de la touche "entrée" et le double-clique du ListBox en ajoutant le code au 2 événements:"dblclique" et "KeyPress" .

    supprimer ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      if ToucheAcceptee then
      Begin
        Case Choix of
          1: TRichEdit(Sender).SelText := RetourPourRichEdit;
          2: Begin  // On retire le '?'
              TRichEdit(Sender).SelStart := TRichEdit(Sender).SelStart - 1;
              TRichEdit(Sender).SelLength := 1;
              TRichEdit(Sender).ClearSelection;
              TRichEdit(Sender).SelText := '['+RetourPourRichEdit+']';
             end;
        end;
    parceque si on tiens compte de ce code, il efface la valeur que nous avons attribuée au RichEdit.

    qu'en penses-tu?

  13. #13
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Je me plonges dans ton probleme pour la premiere fois ...

    Bon, des que l'utilisateur tape "." (ou "?"), une fenetre s'affiche. Des que l'utilisateur double clique sur le mot, ou le valide avec entrée, le mot doit s'afficher dans la form principale.
    Plusieurs questions :
    - Tu utilise un evenement OnKeyUp , pourquoi pas un OnKeyPress ?
    - Est ce que cet evenement est bien celui de la LISTBOX et non pas de ton richedit ?
    - Meme question pour le double clic (ca, vu ton exe, ca devrait etre bon) ?

    Voila, si j'ai mal saisi un truc, dis le

  14. #14
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Salut

    Je me plonges dans ton probleme pour la premiere fois ...

    Bon, des que l'utilisateur tape "." (ou "?"), une fenetre s'affiche. Des que l'utilisateur double clique sur le mot, ou le valide avec entrée, le mot doit s'afficher dans la form principale.
    Plusieurs questions :
    - Tu utilise un evenement OnKeyUp , pourquoi pas un OnKeyPress ?
    - Est ce que cet evenement est bien celui de la LISTBOX et non pas de ton richedit ?
    - Meme question pour le double clic (ca, vu ton exe, ca devrait etre bon) ?

    Voila, si j'ai mal saisi un truc, dis le
    Plus on est de fou...plus on rit...lol

    - Tu utilise un evenement OnKeyUp , pourquoi pas un OnKeyPress ? Comme je le dit plus haut sans l'évenement OnKeyUp la touche '.' Ou '?' n'ai...comment dire... pas encore fini d'arriver dans le richeedit...donc si je ne fais pas le traitement de mettre le text choisi du listbox dans le onkeyup il se place au mauvaise endroit pour le '.' et n'efface pas le ? pour le '?'

    C'est vachement plus facile a expliquer à l'orale qu'a l'écris !!! relis bien le text sur le topic avant.


    - Est ce que cet evenement est bien celui de la LISTBOX et non pas de ton richedit ?
    ??? euhhhhhh la je pige pas la question des evenements il y en à partout !! regarde le prog tu comprendras mieux je penses.


    Bye et merci à vous...

  15. #15
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    Buzz,
    voici le code "OnDblClick":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFInfosBase.ListBox1DblClick(Sender: TObject);
    var Key :word;
        S:string;
        I:integer;
    begin
    Key := VK_RETURN;
    for I := 0 to ListBox1.Items.Count - 1 do
    if ListBox1.Selected[I] then
    S:= ListBox1.Items.Strings[i];
    FTravail.RetourPourRichEdit.Text:= S;
    FTravail.RetourPourRichEditKeyUp(sender,Key,[]);
    Close;
    end;
    et voici le code de "OnKeyPress" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TFInfosBase.ListBox1KeyPress(Sender: TObject; var Key: Char);
    var Keyword :word;
        S:string;
        I:integer;
    begin
    Keyword := VK_RETURN;
    if Keyword = VK_RETURN then  begin
    for I := 0 to ListBox1.Items.Count - 1 do
    if ListBox1.Selected[I] then
    S:= ListBox1.Items.Strings[i];
    FTravail.RetourPourRichEdit.Text:= S;
    end;
    Close;
    end;
    si on exécute ce code, il garde le "." et ajoute le mot sélectionné après.

    a+

  16. #16
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    - Tu utilise un evenement OnKeyUp , pourquoi pas un OnKeyPress ? Comme je le dit plus haut sans l'évenement OnKeyUp la touche '.' Ou '?' n'ai...comment dire... pas encore fini d'arriver dans le richeedit...donc si je ne fais pas le traitement de mettre le text choisi du listbox dans le onkeyup il se place au mauvaise endroit pour le '.' et n'efface pas le ? pour le '?'
    Si c'est bon, j'ai compris. Mais je ne crois pas que ce que tu dises soit vrai. Voila le déroulement logique des étapes pour moi :

    On est sur le RichEdit :
    - L'utilisateur Appuye sur "."
    - Rien ne se passe (ca s'affiche simplement ...)
    - L'utilisateur relache "." . L'évenement OnKeyPress du richedit se lance (est ce bien la ou pas qu'il se lance, j'ai un doute ...). Cet évenement affiche la listbox voulue et en profite pour sauvegarder si c'est un "." ou un "?" qui a été tapé.
    - L'utilisateur choisis un élement de la listbox.
    - Soit il double clique : l'évenement OnDblClick de la listbox se lance. Cet évenement a pour but d'ecrire sur le richedit de départ la phrase voulue : en effet, a ce moment la, on a déja tout les éléments pour le faire, pourquoi attendre ??? Puis ferme la listbox.
    - Soit il appuie sur entrer : l'évenement OnKeyPress de la listbox se lance. Cet évenement a pour but d'ecrire (si la touche est entrer) sur le richedit de départ la phrase voulue : en effet, a ce moment la, on a déja tout les éléments pour le faire, pourquoi attendre ??? Puis ferme la listbox.

    J'ai l'impression qu'il y a un mélange dans tes deux programmes entre les deux key press, Je ne crois pas que ce soit exactement ce que ton programme fait.

    Pour la réponse de NABIL, j'ai l'impression qu'elle est plus proche de ce que j'ai expliqué !!

    Bonne chance !

  17. #17
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Sans le KeyUp et en faisant les changements dans mon code précédent, cela fonctionne chez moi. (Delphi 7)

    TFInfosBase
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function TFInfosBase.getSelection: String;
    begin
     if ShowModal <> mrOk then
        Result:= '';
     Result := ListBox1.items[Listbox1.Itemindex];
    end;

    TFTravail
    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
     
      if TRichEdit(sender).Focused then
      Begin
        if (Key = '.') or (Key = '?') then
        Begin
          Pt := TRichEdit(Sender).CaretPos; // Récupération des coordonnées caractères
          GetCaretPos(Pt); //  Tranformation en coordonnée écran.
          With TFInfosBase.Create(Self,TRichEdit(Sender).ClientToScreen(Pt)) do
          Begin
            try
    //          ListBox1.Clear;
              xRetourPourRichEdit := '';
              case Key of
                '.':
                begin
                // On doit récupérer le mot à gauche du point
                // ... Traitement
     
               // Maintenant on rempli la listbox
                 // ... Traitement
                 Choix := 1;
                 xRetourPourRichEdit := Key;
                end;
                '?':
                Begin
    //              ListBox1.Items.Text := '';// <== on rempli la liste box de l'autre form
                  Choix := 2;
                end
              end;
              xRetourPourRichEdit := xRetourPourRichEdit+getSelection;  // <==  ICI la fenetre du listebox s'ouvre
                  Key:=#0;// Pour enlever le '?' ou le '.'
              TRichEdit(Sender).SelText := xRetourPourRichEdit;
    //          RetourPourRichEditKeyUp(Sender,Key2,[]);
            finally
              free;
            end;
          end;
       //   ToucheAcceptee := True;
          // ...
        end;
      end;

  18. #18
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    bonjour à toutes et à tous,

    @ linkin: en effet ton code marche mais il y a un soucis: c'est
    que quand l'utilisateur double-clique sur l'item du ListBox:par exemple "Bonjour",
    il est ajouté au RichEdit mais s'il appuie sur "Entrée"(Dans le RichEdit)pour ajouter une phrase, l'item en question va être ajouter pour une 2e fois:

    .Bonjour
    .Bonjour
    .Bonjour
    .Bonjour
    etc
    et comme ça,l'utilisateur ne peux rien ajouter après ça.

    Autre remarque, si l'utilisateur décide de sélectionner l'item du ListBox avec la touche "Entrée",il ne se passe rien vu qu'il n'y a pas d'événement pour le "KeyPress".

    A+

    NABIL74

  19. #19
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Rah je n'ai pas mis le bon zip. Je le remets avec la gestion du Entrée.
    Fichiers attachés Fichiers attachés

  20. #20
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    Bonjour,

    je crois que c'est ça que cherche BuzzLeClaire, reste à lui maintenant de nous le confirmer.

    linkin

    NABIL74

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] Reproduire l'évenement MouseDown avec "Entrée" et "TAB"
    Par apt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/12/2011, 21h14
  2. Réponses: 8
    Dernier message: 12/05/2005, 08h16
  3. Réponses: 6
    Dernier message: 02/05/2005, 14h00
  4. [VB6]Initialiser une variable Static dans un évenement
    Par loverdose dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 20/01/2005, 14h57
  5. Réponses: 4
    Dernier message: 21/05/2004, 11h24

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