// Getestet mit D4 unter XP
// Text in einem
TEdit ausrichten:
// 1. Methode:
// Man nehme ein
TMemo, schiebt es auf Edit-Größe und setzt
//
WantReturns := False
und
Alignment := taRightJustify
// (bzw. Alignment := taCenter)
//
---------------------------------------------------
// 2. Methode:
// Klasse ableiten, CreateParams überschreiben.
// Wenn "verkehrt"
auf "true"
gesetzt wird, dann erfolgt die
// Eingabe sogar von rechts nach links.
//
//
Eingabe verkehrt Ergebnis
// 12345
False
12345
// 12345
True
54321
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
public
procedure REditKeyPress(Sender: TObject; var Key: Char);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses StdCtrls;
type
TREdit = class(TEdit)
private
verkehrt: boolean;
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TREdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_RIGHT; // rechtsbündig
end;
var
REdit: TREdit;
procedure TForm1.FormCreate(Sender: TObject);
begin
REdit := TREdit.create(self);
REdit.parent := self;
REdit.left := 100;
REdit.top := 50;
REdit.OnKeypress := REditKeypress;
REdit.verkehrt := true;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
REdit.free;
end;
procedure TForm1.REditKeyPress(Sender: TObject; var Key: Char);
begin
with TREdit(Sender) do
if verkehrt then begin
if Key <> #8 then
PostMessage(handle, WM_KEYDOWN, VK_LEFT, 0);
end;
end;
end.
|