Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text in EDIT zentrieren (https://www.delphipraxis.net/29329-text-edit-zentrieren.html)

jaegerschnitzel 7. Sep 2004 17:48


Text in EDIT zentrieren
 
Ich will den Text in EDIT zentriert haben.
Aber ich habe keine Funktion dafür gefunden.
Kann mir bitte jemand helfen?

toms 7. Sep 2004 17:55

Re: Text in EDIT zentrieren
 
Hi,

Leite eine Komponente von TEdit ab und gibt ihr den Style Hier im Forum suchenES_CENTER.


Delphi-Quellcode:
procedure TAlignEdit.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or ES_CENTER;
end;

Siehe auch hier

jaegerschnitzel 7. Sep 2004 21:18

Re: Text in EDIT zentrieren
 
Danke für die schnelle Hilfe!
P.S. Ich habe erst gestern mit Delphi angefangen, also bitte nicht böse sein, wegen der dummen Frage...

fkerber 7. Sep 2004 21:21

Re: Text in EDIT zentrieren
 
Hi!

Herzlich Willkommen in der DP.

Zum einen war das ganz und gar keine dumme Frage und zum anderen sind natürlich auch Anfängerfragen immer gern beantwortet (wenn es nicht gerade ein Thema ist, dass schon 10.000 Mal besprochen wurde -> Suche :wink: )

Was ein Problem angeht:
Wenn du erst seit gestern mit Delphi arbeitest wird es dir mit Sicherheit wohl nicht allzu leicht fallen, eine Komponente abzuleiten. Vielleicht findet sich ja unter www.torry.net etwas für dich.

Ciao Frederic

toms 7. Sep 2004 22:24

Re: Text in EDIT zentrieren
 
Zitat:

Wenn du erst seit gestern mit Delphi arbeitest wird es dir mit Sicherheit wohl nicht allzu leicht fallen, eine Komponente abzuleiten. Vielleicht findet sich ja unter www.torry.net etwas für dich.
Hab ihm doch schon einen Link gepostet (hast du gesehem?) Aber mehrfach hält besser....

Zitat:

Siehe auch hier

jaegerschnitzel 7. Sep 2004 22:29

Re: Text in EDIT zentrieren
 
@fkerber
Habs nach ein wenig Rumprobieren hinbekommen. Ich habe ja immerhin 1,5 Jahre VB 6 Erfahrung, aber nun wurde es Zeit umzusteigen...


Aber jetzt habe ich ein anderes Problem.
Ich habe im normalen Tedit den Font auf Arial, Fett und 12 gestellt.
Das ergibt eine Höhe von 27 Pixel. Da habe ich sie immer manuell auf 23 runtergestellt und alles war bestens, denn ich will das Feld nicht so groß haben.

Bei der TAlignEdit geht das nicht, egal was ich mach. Es stellt sich immer auf 27 Pixel zurück.

Ist zwar nur ein kleines Problem, aber es stört mich. Ich hoffe ihr wisst, was ich meine und ihr könnt mir helfen!

fkerber 8. Sep 2004 05:17

Re: Text in EDIT zentrieren
 
Hi!

Zitat:

Zitat von toms
Hab ihm doch schon einen Link gepostet (hast du gesehem?) Aber mehrfach hält besser....

Zitat:

Siehe auch hier

:oops: Das muss ich übersehen haben, sorry.

Ciao Frederic

toms 8. Sep 2004 07:18

Re: Text in EDIT zentrieren
 
Zitat:

Bei der TAlignEdit geht das nicht, egal was ich mach. Es stellt sich immer auf 27 Pixel zurück.
Hi,

Habe die Komponente noch ein wenig abgeändert.
Sollte somit das Problem mit der Höhe behoben sein.

Delphi-Quellcode:
unit AlignEdit;

interface

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

  TAlignEdit = class(TEdit)
  private
    { Private-Deklarationen } 
    FAlignment: TAlignment;
    procedure SetAlign(const Value: TAlignment);
    procedure WMChar(var Msg:TWMKey); message WM_CHAR;
    procedure WMSetFocus(var Msg: TWMSetFocus); message WM_SETFOCUS;
  protected
    { Protected-Deklarationen } 
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public-Deklarationen } 
    constructor Create(AOwner: TComponent); override;
  published
    { Published-Deklarationen }
    property Alignment: TAlignment read FAlignment write SetAlign default taLeftJustify;
  end;

procedure Register;

implementation

constructor TAlignEdit.Create(Aowner: TComponent);
begin
  inherited Create(AOwner);
  FAlignment := taLeftJustify;
end;

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

procedure TAlignEdit.CreateParams(var Params: TCreateParams);
const
  Styles : Array [TAlignment] of DWORD = (ES_LEFT, ES_RIGHT, ES_CENTER );
begin
  inherited;
  Params.style := Params.style or Styles[FAlignment] or
     ES_MULTILINE * Ord(FAlignment <> taLeftJustify);
end;

procedure TAlignEdit.WMChar(var Msg: TWMKey);
var
 key: Char;
begin
  if Msg.CharCode = VK_RETURN then
  begin
    key := #13;
    if Assigned(OnKeyPress) then
      OnKeyPress(Self,key);
    Msg.CharCode := 0;
  end;
end;

procedure TAlignEdit.WMSetFocus(var Msg: TWMSetFocus);
begin
  inherited;
  SelectAll;
end;

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

end.

jaegerschnitzel 8. Sep 2004 10:15

Re: Text in EDIT zentrieren
 
THX toms für deine Mühe, jetzt geht alles!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz