1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut [D7] Équivalent de l'attribut HTML PlaceHolder

    Bonjour.

    Je voudrais mettre un texte dans un TEdit, comme dans le code HTML suivant :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text"  placeholder="entrer le prenom" name="prenom">

    Merci d'avance.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 316
    Points : 1 457
    Points
    1 457

    Par défaut

    Bonjour,

    Tu peux utiliser le composant TButtonedEdit (dans la rubrique standard). Il dispose de la propriété Text qui correspond au texte saisit par l'utilisateur, et de la propriété TextHint qui est le texte affiché dans le TButtonedEdit lorsque celui est vide.
    Mes tutoriels Delphi et Firemonkey - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par gbegreg Voir le message
    Bonjour,

    Tu peux utiliser le composant TButtonedEdit (dans la rubrique standard). Il dispose de la propriété Text qui correspond au texte saisit par l'utilisateur, et la propriété TextHint qui est le texte affiché dans le TEDit lorsque celui est vide.
    merci pour votre reponse mais ;
    le textEdit mettre un texte dans le Edit et apres que tu veux faire une connexion a la base de donnee et tu click sur button de recupperation du ce champs ,si tu ne cencentre bien tu laisse ce champs avec la valeur initiale qui se strouve dans textEdit;
    merci d'avance.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 910
    Points : 21 131
    Points
    21 131
    Billets dans le blog
    8

    Par défaut

    Bonjour,

    Quelle version de Delphi ? Quel type de programme VCL ou FMX ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Quelle version de Delphi ? Quel type de programme VCL ou FMX ?
    Merci de vous intéresser à mon problème. C'est Delphi 7.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 316
    Points : 1 457
    Points
    1 457

    Par défaut

    Désolé mais je ne comprends pas...
    Le TButtonedEdit permet justement d'avoir également des boutons (à droite ou à gauche du champ Edit) qui permettent d’enclencher des actions (exécution d'une requête SQL par exemple). Si la requête ne renvoie rien, la zone d'édition est vide et du coup la valeur de TextHint sera affichée dans le champ Edit.

    Citation Envoyé par elkader Voir le message
    Delphi 7.
    Je ne pense pas que le TButtonedEdit était présent dans cette version de Delphi...
    Mes tutoriels Delphi et Firemonkey - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Membre expérimenté Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 134
    Points : 1 646
    Points
    1 646

    Par défaut

    Bonjour,

    En D7, je pense qu'il faut le faire "à la main" :

    - au départ, mettre le texte "Entrer votre prénom" dans le Text du TEdit avec une font en gris
    - dans le onEnter du TEdit : Effacer le texte, mettre la Font en normal et attendre la frappe de l'utilisateur

    A+
    Charly

    PS : Je n'ai pas testé si cela fonctionne bien

  8. #8
    Membre confirmé
    Avatar de Cirec
    Profil pro
    Inscrit en
    octobre 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2010
    Messages : 257
    Points : 609
    Points
    609

    Par défaut

    Bonjour,

    pour D7 c'est simple:
    sur une Fiche déposez un TXPManifest (indispensable) un TButton
    et un TEdit et complétez comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const
      EM_SETCUEBANNER             = $1501;
      EM_GETCUEBANNER             = $1502;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Value: WideString;
    begin
      Value := 'Entrez votre Texte ici';
      SendMessage(Edit1.Handle, EM_SETCUEBANNER, 0, LPARAM(PWideChar(Value)));
    end;
    je précise que ce texte se voit que si le TEdit est vide (Text := '') et que le TEdit n'ait pas le Focus.

    pour que Cue Banner s'affiche aussi quand l'Edit à le focus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      SendMessage(Edit1.Handle, EM_SETCUEBANNER, 1, LPARAM(PWideChar(Value)));
    Cordialement,
    @+

  9. #9
    Membre expérimenté Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 134
    Points : 1 646
    Points
    1 646

    Par défaut

    Bonjour Cirec,

    je pense que ce n'est pas tout à fait ce qu'il veut ? Avec PlaceHolder, le texte "Entrer votre texte ici" est dans le TEdit en grisé. Quand l'utilisateur entre une valeur le texte grisé s'efface et la texte entré prend sa place.

    A+
    Charly

  10. #10
    Membre confirmé
    Avatar de Cirec
    Profil pro
    Inscrit en
    octobre 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2010
    Messages : 257
    Points : 609
    Points
    609

    Par défaut

    Citation Envoyé par Charly910 Voir le message
    Bonjour Cirec,

    je pense que ce n'est pas tout à fait ce qu'il veut ? Avec PlaceHolder, le texte "Entrer votre texte ici" est dans le TEdit en grisé. Quand l'utilisateur entre une valeur le texte grisé s'efface et la texte entré prend sa place.

    A+
    Charly
    je ne connais pas le fonctionnement du PlaceHolder mais ce que tu me décris c'est ce que ma méthode fait !
    au passage la méthode que j'emploie ne fait qu'utiliser une fonction prévue par Windows depuis XP
    ici c'est nommé Cue Banner et d'après une rapide recherche :
    PlaceHolder == Cue Banner

    Donc c'est exactement le comportement attendu
    Fait le teste (je suppose que tu ne l'as pas fait vu le commentaire )

    Cordialement,
    @+

  11. #11
    Membre expérimenté Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 134
    Points : 1 646
    Points
    1 646

    Par défaut

    Oui tu as raison c'est bien le fonctionnement de PlaceHolder.

    Ce qui m'a trompé c'est le Button1. J'ai fait tout mis dans OnShow :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const
      EM_SETCUEBANNER             = $1501;
      EM_GETCUEBANNER             = $1502;
     
    procedure TForm1.FormShow(Sender: TObject);
    var
      Value: WideString;
    begin
      Value := 'Entrez votre Texte ici';
      SendMessage(Edit1.Handle, EM_SETCUEBANNER, 1, LPARAM(PWideChar(Value)));
    end;
    et ça marche parfaitement

    A+
    Charly

  12. #12
    Membre confirmé
    Avatar de Cirec
    Profil pro
    Inscrit en
    octobre 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2010
    Messages : 257
    Points : 609
    Points
    609

    Par défaut

    Citation Envoyé par Charly910
    Oui tu as raison c'est bien le fonctionnement de PlaceHolder.
    c'est bien ce que je me disais

    voici une autre version plus "souple" & plus réutilisable

    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
    const
      EM_SETCUEBANNER             = $1501;
      EM_GETCUEBANNER             = $1502;
     
    function Edit_SetCueBannerText(hwnd: HWND; CueText: PWideChar; ShowOnFocus: Boolean = True): BOOL;
    begin
      Result := BOOL(SendMessage(hwnd, EM_SETCUEBANNER, wParam(ShowOnFocus), lParam(CueText)));
    end;
     
    function Edit_GetCueBannerText(hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL;
    begin
      Result := BOOL(SendMessage(hwnd, EM_GETCUEBANNER, wParam(CueText), lParam(BufLen)));
    end;
     
    // utilisation de Edit_SetCueBannerText
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit_SetCueBannerText(Edit1.Handle, 'Entrez votre Texte ici');
      Edit_SetCueBannerText(Edit2.Handle, 'Votre nom');
    end;
     
    // utilisation de Edit_GetCueBannerText
    procedure TForm1.Button1Click(Sender: TObject);
    var
      aCueTxt: array[0..255] of WideChar;
    begin
      if Edit_GetCueBannerText(Edit1.Handle, aCueTxt, 256) then
        Label1.Caption := aCueTxt;
    end;
    Cordialement,

    @+

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    Je voudrais savoir comment utiliser la solution proposée par Cirec.

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    Je n'y arrive pas.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    VOICI LE CODE :
    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
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
    const
      EM_SETCUEBANNER             = $1501;
      EM_GETCUEBANNER             = $1502;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Value: WideString;
    begin
    //form1.Color:=Clred    ;
     
      Value := 'Entrez votre Texte ici';
      SendMessage(Form1.Edit1.Handle, EM_SETCUEBANNER, 1, LPARAM(PWideChar(Value)));
    end;
     
     
    end.

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    Je suis fier de moi. Merci pour votre aide.

    Attention, il faut mettre XPManifest1: TXPManifest; à ton programme sinon il ne marche 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
    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
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, XPMan;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        XPManifest1: TXPManifest;
        procedure Button1Click(Sender: TObject);
     
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
    const
      EM_SETCUEBANNER             = $1501;
      EM_GETCUEBANNER             = $1502;
    implementation
     
    {$R *.dfm}
     
     function Edit_SetCueBannerText(hwnd: HWND; CueText: PWideChar; ShowOnFocus: Boolean = True): BOOL;
    begin
      Result := BOOL(SendMessage(hwnd, EM_SETCUEBANNER, wParam(ShowOnFocus), lParam(CueText)));
    end;
     
    function Edit_GetCueBannerText(hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL;
    begin
      Result := BOOL(SendMessage(hwnd, EM_GETCUEBANNER, wParam(CueText), lParam(BufLen)));
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
             Form1.Color:=Clred;
              Edit_SetCueBannerText(Edit1.Handle, 'Entrez votre Texte ici');
     
    end;
     
    end.
    Cordialement.

  17. #17
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 147
    Points : 11 648
    Points
    11 648
    Billets dans le blog
    5

    Par défaut

    Citation Envoyé par Cirec Voir le message
    voici une autre version plus "souple" & plus réutilisable
    Bonjour ! Que diriez-vous d'ajouter cette solution à la FAQ ?

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 910
    Points : 21 131
    Points
    21 131
    Billets dans le blog
    8

    Par défaut

    Bonjour,
    moi je dirais qu'il faudrait peu de chose, avec le code plus 'souple', pour en faire un composant
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  19. #19
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    novembre 2004
    Messages
    825
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : novembre 2004
    Messages : 825
    Points : 1 330
    Points
    1 330

    Par défaut

    Alors là ... l'année 2018 commence bien. Merci Cirec pour cette info très intéressante

  20. #20
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 147
    Points : 11 648
    Points
    11 648
    Billets dans le blog
    5

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

Discussions similaires

  1. [Express Edition (gratuit)] Cette version est elle suffisante ?
    Par dymezac dans le forum MS SQL-Server
    Réponses: 6
    Dernier message: 26/09/2006, 16h36
  2. Réponses: 14
    Dernier message: 27/08/2006, 19h47
  3. Réponses: 5
    Dernier message: 07/03/2006, 21h56
  4. Réponses: 3
    Dernier message: 24/01/2005, 08h02

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