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 :

Centrer le texte d'un TEdit


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut Centrer le texte d'un TEdit
    Bonjour,

    Je suis en Delphi7. Je cherche à centrer le texte d'un TEdit. Je ne trouve pas cela dans les propriétés.

    Quand on cherche sur Internet, on trouve la propriété Alignment et on peut par exemple écrire Edit1.Alignment:=taCenter.

    Mais c'est certainement pour les VCL.

    Comment faire en Delphi 7?

    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    Un TEdit c'est de la VCL justement
    Delphi 7 c'est uniquement la VCL
    Sinon c'est Kylix avec QT

    Le problème est que Delphi 7 a 20 ans, difficile de trouver sur le net quand on sait que D11 (soit Delphi 28) une information fiable
    Seuls ceux qui ont Delphi 7 installé pour confirmer si Alignment est une propriété existante à cette époque, ayant changé d'un PC Fixe à PC Portable récemment, fini D7 ou DXE2, reste plus que D10 et D11.

    Sinon un TEdit c'est juste un contrôle Windows !
    Apps > Win32 > Desktop Technologies > Desktop App > User Interface > Windows Controls > Edit Control Styles

    ES_CENTER dans GWL_STYLE ou GWL_EXSTYLE à vérifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_CENTER (*and not ES_RIGHT and not ES_LEFT*) );
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    Une méthode un peu plus verbeuse, robuste au RecreateWnd



    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    unit Unit1
     
    interface
     
    uses 
      ... Forms, Controls, StdCtrls, ...
     
     
    type
      TEdit = class(StdCtrls.TEdit) // Même nom de classe locale à l'unité
      private
        FAlignment: TAlignment;
      protected
        procedure CreateParams(var Params: TCreateParams); override;
        procedure SetAlignment(Value: TAlignment);
      public
        constructor Create(AOwner: TComponent); override;
     
        property Alignment: TAlignment read FAlignment write SetAlignment; // publique mais non publiée !
      end;
     
    type
      TForm1 = ... // oui absolument après !
     
      end;
     
    implementation
     
    { TForm1 }
     
    // TForm1 entier
     
     
    // à la fin
     
    { TEdit }
     
    constructor TEdit.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      FAlignment := taCenter; // Autant mettre la valeur que l'on préfère ... attention cela impacte TOUS les TEdit présents de TForm1
    end;
     
    procedure TEdit.CreateParams(var Params: TCreateParams);
    const
      Alignments : array[TAlignment] of DWORD = (ES_LEFT, ES_RIGHT, ES_CENTER); // Inspiré du tableau dans TCustomEdit.CreateParams de D10, plein d'autres effets de bord possible
    begin
      inherited CreateParams(Params);
      // Ecrase le style VCL par une version agrementée.
      Params.Style := Params.Style or Alignments[FAlignment];
    end;
     
    procedure TEdit.SetAlignment(Value: TAlignment);
    begin
      if FAlignment <> Value then
      begin
        FAlignment := Value;
        RecreateWnd;
      end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Centrer un texte dans une page
    Par Samanta dans le forum Mise en forme
    Réponses: 5
    Dernier message: 20/09/2010, 22h30
  2. div centrer un texte
    Par C.M dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 02/12/2004, 14h09
  3. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h01
  4. Comment centrer un Texte dans un rectangle ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 21h56
  5. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33

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