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 im TEdit rechtsbündig (https://www.delphipraxis.net/100156-text-im-tedit-rechtsbuendig.html)

oki 23. Sep 2007 17:43


Text im TEdit rechtsbündig
 
Hi Leute,

kann mir jemand einen Tipp geben wie ich in einem TEdit den Text rechtsbündig bekomme?

Gruß oki

freak4fun 23. Sep 2007 17:48

Re: Text im TEdit rechtsbündig
 
BiDiMode auf bdRightToLeft stellen.

DeddyH 23. Sep 2007 17:54

Re: Text im TEdit rechtsbündig
 
Ich habe da mal eine Kompo für geschrieben.
Delphi-Quellcode:
unit AlignEdit;

interface

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

type
  TAlignEdit = class(TEdit)
  private
    { Private-Deklarationen }
    FAlignment: TAlignment;
  protected
    { Protected-Deklarationen }
    procedure SetAlignment(Value: TAlignment);
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
  end;

procedure Register;

implementation

procedure TAlignEdit.CreateParams(var Params: TCreateParams);
const
  Alignments: array[TAlignment] of Longint = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
  inherited CreateParams(Params);
  with Params do
    Style := Style or Alignments[FAlignment];
end;

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

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

end.

Hawkeye219 23. Sep 2007 18:00

Re: Text im TEdit rechtsbündig
 
Hallo Christian,

Zitat:

Zitat von freak4fun
BiDiMode auf bdRightToLeft stellen.

Das funktioniert nur mit neueren Delphi-Versionen, nicht aber mit Delphi 5: klick.

Gruß Hawkeye

oki 23. Sep 2007 18:34

Re: Text im TEdit rechtsbündig
 
Hi Leute,

dank für die vielen Antworten. Da ist ja für jeden Geschmack was dabei. Ich werd es so machen:
- Compilerschalter für D5 und neue Eigenschaft einfügen (Dank an DeddyH),
- höhere Versionen Nutzung von BiDiMode.

Mein Edit ist eh eine abgeleitete Compo und somit ist das kein Problem.

Dank und Gruß an alle

oki

der_kumpel 24. Sep 2007 13:42

Re: Text im TEdit rechtsbündig
 
Weitere Möglichkeit: TEnhancedEdit
http://www.picsoft.de/compon.htm

Chemiker 24. Sep 2007 14:05

Re: Text im TEdit rechtsbündig
 
Hallo oki,

2 Anmerkungen:

1. Mit BiDiMode auf bdRightToLeft stellen muss man aufpassen, dass man keine negative Zahlen eingibt, weil sonnst das Minus-Zeichen ganz recht angezeigt wird.
2. Bei TAlignment ist der Datentyp ein DWORD.

Bis bald Chemiker

DeddyH 24. Sep 2007 14:11

Re: Text im TEdit rechtsbündig
 
Zitat:

Zitat von Chemiker
2. Bei TAlignment ist der Datentyp ein DWORD.

Unter Delphi 3 war das anscheinend noch nicht so, da hab ich damals nämlich in den Borland-Sourcen nachgesehen ;)

oki 25. Sep 2007 06:31

Re: Text im TEdit rechtsbündig
 
Moin, Moin

@der_kumpel: Danke für den Link, aber ich möchte an dieser Stelle so lange wie möglich auf Fremd-Kompos verzichten.

@Chemiker: Jo, dass das Edit bei bdRighttoLeft etwas sonderbar wird ist mir auch schon aufgegangen. Da ich nur positive Zahlen zulasse macht sich das mit dem Minus nicht bemerkbar, aber der Cursor wandert zum Beispiel mit Pfeiltaste links nach rechts und umgekehrt. Den Sinn hab ich noch nicht verstanden, und ob ich mir die Mühe mache, dass zu ergründen oder zu ändern muß ich mir noch überlegen. Im Moment ignoriere ich das einfach :stupid:

@Chemiker, DeddyH: hinweis mit DWORD verstanden.

Dank an alle und Gruß

oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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