Delphi-PRAXiS
Seite 1 von 2  1 2      

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 vertikales Zentrieren in abgeleiteter Edit-Kompo (https://www.delphipraxis.net/88772-vertikales-zentrieren-abgeleiteter-edit-kompo.html)

messie 20. Mär 2007 19:38


vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Hallo,

ich würde gerne einem Editfeld (was ich schon anderweitig angepasst habe), auch eine Möglichkeit zum vertikalen Zentrieren geben.
Nach dem, was ich bisher verstanden habe, benutzt Tedit oder ähnliche Kompos die API-Funktion SetWindowText, die die DrawText-Option DT_VCENTER nicht kennt.
Kann man das irgendwie als zusätzlichen Parameter übergeben?

Grüße, Messie

messie 26. Mär 2007 12:10

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Hallo, ich habe leider noch keinen Ansatz gefunden.

Grüße, Messie

SirThornberry 26. Mär 2007 12:15

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Mit SetWindowText setzt man nur den Text selbst, nicht wie dieser angezeigt wird.

messie 26. Mär 2007 12:31

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Zitat:

Zitat von SirThornberry
Mit SetWindowText setzt man nur den Text selbst, nicht wie dieser angezeigt wird.

Wo wird denn die Art der Anzeige festgelegt?

Grüße, Messie

Luckie 26. Mär 2007 12:32

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Im Forum sollte es schon Code geben, wie man Text in einem Edit zentrieren kann.

uwewo 26. Mär 2007 12:44

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Delphi-Quellcode:
private
   FAlignment        : TAlignment;
   procedure SetAlignment(Value: TAlignment);
...
public
   procedure CreateParams(var Params: TCreateParams); Override;
...
published
   property Alignment: TAlignment read FAlignment write SetAlignment default taRightJustify;
...
end;

procedure TDeinEdit.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  if Parent <> nil then
   case FAlignment of
     taLeftJustify : Params.Style := Params.Style or ES_LEFT;
     taRightJustify : Params.Style := Params.Style or ES_RIGHT;
     taCenter      : Params.Style := Params.Style or ES_CENTER;
   end;
end;

procedure TDeinEdit.SetAlignment(Value: TAlignment);
begin
  if FAlignment <> Value then
  begin
    FAlignment := Value;
    ReCreateWnd;
  end;
end;
Eine Möglichkeit :wink:

messie 26. Mär 2007 12:46

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Ich wollte gerne vertikal zentrieren, horizontal läuft schon...

Grüße, Messie

uwewo 26. Mär 2007 13:00

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Uuups,

es gibt glaube ich kein "Edit Control Style" für vertikales zentrieren.

DT_VCENTER ist ein Format Flag von DrawText() von daher kann es nicht funktionieren.

Luckie 26. Mär 2007 13:01

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Du müsstest die Ausgabe selber zeichnen mit DrawText und dort das entsprechende Flag mit angeben.

messie 26. Mär 2007 13:25

Re: vertikales Zentrieren in abgeleiteter Edit-Kompo
 
Zitat:

Zitat von Luckie
Du müsstest die Ausgabe selber zeichnen mit DrawText und dort das entsprechende Flag mit angeben.

Ja, hatte ich auch schon überlegt. Ich habe aber nichts gefunden wie Canvas etc. wo ich mit DrawText drankomme.

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.
Seite 1 von 2  1 2      

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