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 :

[D7] Équivalent de l'attribut HTML PlaceHolder


Sujet :

Composants VCL Delphi

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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 expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    661
    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 : 661
    Points : 3 630
    Points
    3 630
    Billets dans le blog
    2
    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.
    Mon site - Mes tutoriels - GitHub - 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
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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 retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Quelle version de Delphi ? Quel type de programme VCL ou FMX ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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 expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    661
    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 : 661
    Points : 3 630
    Points
    3 630
    Billets dans le blog
    2
    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...
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    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 : 2 345
    Points : 3 123
    Points
    3 123
    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 éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    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 expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    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 : 2 345
    Points : 3 123
    Points
    3 123
    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 éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    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 expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    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 : 2 345
    Points : 3 123
    Points
    3 123
    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 éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    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
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 15
    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
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    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 ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    moi je dirais qu'il faudrait peu de chose, avec le code plus 'souple', pour en faire un composant
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    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
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

+ 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