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 Textformatierung im Editfeld (https://www.delphipraxis.net/14137-textformatierung-im-editfeld.html)

GetCool 2. Jan 2004 22:04


Textformatierung im Editfeld
 
Hi!

Folgendes: Ich programmiere gerade an einem kleinen Progrämmchen und möchte dabei jeweils die Ein- und Ausgaben in den Editfeldern und in dem StringGrid formatieren. Standardmäßig läuft der Text ja von links nach rechts, aber ich möchte das er von rechts nach links läuft, wie es beispielsweise bei einem Taschenrechner der Fall ist. Über jede Hilfe würde ich mich freuen. Achja, ich benutze nicht die normalen Editfelder, sonder die FlatStyle-Componenten. Hoffe das das damit trotzdem irgendwie geht.

Danke. mfg,
GetCool

GetCool 3. Jan 2004 14:10

Re: Textformatierung im Editfeld
 
Hat keiner eine Idee?

SirThornberry 3. Jan 2004 15:02

Re: Textformatierung im Editfeld
 
folgenden Source in als maskeditL.pas speichern und in ein package einbinden. Anschließend hast du eine neue Komponente namens TAlignEdit (und TAlignDBEdit). Eventeull das TAlignDBEdit rausnehmen wenn du kein DB-zeugs bei deiner Delphiverision hast damits geht.

Delphi-Quellcode:
unit maskeditL;

interface

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

type
  TAlignEdit = class(TEdit)
  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;


  TAlignDBEdit = class(TDBEdit)
  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 TAlignEdit.SetAlignment(const Value: TAlignment);
begin
  if Value <> fAlignment then
     begin
       fAlignment := Value;
       RecreateWnd; // erzeuge Fenster neu -> CreateParams
     end;
end;

procedure TAlignEdit.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 TAlignDBEdit.SetAlignment(const Value: TAlignment);
begin
  if Value <> fAlignment then
     begin
       fAlignment := Value;
       RecreateWnd; // erzeuge Fenster neu -> CreateParams
     end;
end;

procedure TAlignDBEdit.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('ESFEB', [TAlignEdit,TAlignDBEdit]);
end;

end.

GetCool 3. Jan 2004 15:16

Re: Textformatierung im Editfeld
 
:shock:
Danke!

Werd ich mir bei zeiten mal zu gemüte führen. Für mein aktuelles Projekt verwende ich es wohl erstmal nicht :mrgreen:


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