Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tedit und Textausrichtung (https://www.delphipraxis.net/7384-tedit-und-textausrichtung.html)

ketraun 11. Aug 2003 08:54


Tedit und Textausrichtung
 
Hi,
ich habe ein ganz triviales Problem, ich muss den Text in einem Tedit Feld rechts ausrichten. Ich benutze Win2000 und gleich vorweg, euere Vorschläge mit der Winapi funktionieren bei mir nicht! Warum wissen die Götter.
Welche Prozedur zeichnet eigentlich den Text bei Tedit?

Vielleicht kann mir jemand helfen!

Danke im Vorraus ketraun

mr2 11. Aug 2003 09:02

Re: Tedit und Textausrichtung
 
nimm einfach ein TMemo und setze "WantReturns" auf False, da kannst Du ganz einfach die Ausrichtung einstellen.

Alexander 11. Aug 2003 09:07

Re: Tedit und Textausrichtung
 
Eigentlich sollte das mit WinAPI funktionieren, poste doch mal dein Versuch, es mit WinAPI zu machen.
Am OS liegt es bestimmt nicht ;-)

ketraun 11. Aug 2003 09:41

Re: Tedit und Textausrichtung
 
hi Alexander,

SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_CENTER);

Das Ganze in die Show Prozedur. Mach ich was falsch? Die Zeile ist von Luckie, normalerweise funktioniert das was der schreibt. Der Code wird kommentarlos abgearbeitet, aber keine Reaktion.

Ketraun

neolithos 11. Aug 2003 09:57

Re: Tedit und Textausrichtung
 
Meineserachtens kann man ES_CENTER, ES_LEFT, ES_RIGHT nur in CreateParams setzen

Delphi-Quellcode:
  T??? = class (TEdit)
  private
    fAlignment : TAlignment;
  published
    property Alignment : TAlignment read fAlignment write SetAlignment;
  end;

procedure TPWEdit.SetAlignment(const Value: TAlignment);
begin
  if Value <> fAlignment then
     begin
       fAlignment := Value;
       RecreateWnd; // erzeuge Fenster neu -> CreateParams
     end;
end;


procedure T???.CreateParams(var Params: TCreateParams);
const
  cAlignStyles: array [TAlignment] of Cardinal = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
  inherited;
  with Params do
    Style := Style or cAlignStyles[fAlignment];
end;
das sollte gehen

Alexander 11. Aug 2003 10:28

Re: Tedit und Textausrichtung
 
@ketraun Setze deinen Code einfach mal ins OnCreate rein. Das sollte gehen...bei mir wenigsten WinXP

ketraun 11. Aug 2003 10:28

Re: Tedit und Textausrichtung
 
Hi,
ich dank Dir, das geht! Etwas extrem umständlich. Ich werd mir halt eine neue Komponente erzeugen.
ketraun

ketraun 11. Aug 2003 10:47

Re: Tedit und Textausrichtung
 
Hi,
hier ist eine funktionierende Komponente mit der man den Text in Tmaskedit ausrichten kann. Wer tedit benutzen will muss nur tmaskedit durch Tedit ersetzen.
Das ganze Winapi Zeugs, mit dem man das angeblich auch machen kann ist Betriebssystemabhängig und funktioniert mal und mal nicht.

unit maskeditL;

interface

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

type
TmaskeditL = class(Tmaskedit)
private
{ Private-Deklarationen }
fAlignment : TAlignment;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
procedure SetAlignment(const Value: TAlignment);
procedure CreateParams(var Params: TCreateParams);override;
published
{ Published-Deklarationen }
property Alignment : TAlignment read fAlignment write SetAlignment;
end;

procedure Register;

implementation

procedure TmaskEditL.SetAlignment(const Value: TAlignment);
begin
if Value <> fAlignment then
begin
fAlignment := Value;
RecreateWnd; // erzeuge Fenster neu -> CreateParams
end;
end;

procedure TmaskEditL.CreateParams(var Params: TCreateParams);
const
cAlignStyles: array [TAlignment] of Cardinal = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited;
with Params do
Style := Style or cAlignStyles[fAlignment];//taRightJustify];
end;

procedure Register;
begin
RegisterComponents('Zusätzlich', [TmaskeditL]);
end;

Wer will kann dem Ding auch noch ein Icon verpassen.
ketraun

Alexander 11. Aug 2003 11:00

Re: Tedit und Textausrichtung
 
Du könntest ja daraus ein FAQ-Eintrag erstellen ...

ketraun 11. Aug 2003 11:30

Re: Tedit und Textausrichtung
 
hä?
was ist ein FAQ Eintrag?
ketraun


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.
Seite 1 von 2  1 2      

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