Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Edit Text zentriert darstellen ?

  Alt 18. Apr 2005, 22:11
Dazu müssen die CreateParams von der Klasse TEdit überschrieben werden.
Folgende Unit kann als Komponente installiert werden.


Delphi-Quellcode:
unit AlignEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type

  TAlign = (eaLeft, eaCenter, eaRight);

  TAlignEdit = class(TEdit)
  private
    { Private-Deklarationen }
    FAlign: TAlign;
    procedure SetAlign(const Value: TAlign);
  protected
    { Protected-Deklarationen }
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
  published
    { Published-Deklarationen }
    property Alignment: TAlign read FAlign write SetAlign default eaLeft;
  end;

procedure Register;

implementation

constructor TAlignEdit.Create(Aowner: TComponent);
begin
  inherited Create(AOwner);
  FAlign := eaLeft;
end;

procedure TAlignEdit.SetAlign(const Value: TAlign);
begin
  if FAlign <> Value then
  begin
    FAlign := Value;
    RecreateWnd;
  end;
end;

procedure TAlignEdit.CreateParams(var Params: TCreateParams);
begin
  inherited;
  case FAlign of
    eaLeft: Params.Style := Params.Style or ES_LEFT;
    eaCenter: Params.Style := Params.Style or ES_CENTER;
    eaRight: Params.Style := Params.Style or ES_RIGHT;
  end;
end;

procedure Register;
begin
  RegisterComponents('SwissDelphiCenter', [TAlignEdit]);
end;

end.
Thomas
  Mit Zitat antworten Zitat