Alinhamento do TEdit a Direita
Pessoal
Como faço para alinhar à direita com o objeto TEDIT ???
Rogério
Como faço para alinhar à direita com o objeto TEDIT ???
Rogério
Rogeranalista
Curtidas 0
Respostas
Cdaraujo
20/06/2004
Caro amigo,
Logo abaixo criei um pequeno exemplo da re-implementação do componente TEdit, não vi outra forma de fazer isso, tive que implementar essa funcionalidade no componente. Se vc quiser pode utilizar da mesma forma que o código abaixo usa. Vc ainda pode transformar esse código em um componente e instalar em sua paleta para que sempre que precisar vc possa utilizar.
Espero em ter ajudado, qualquer coisa estarei a sua disposição!
Daniel Araújo
--------------------------------------------------------------------------------------
unit UntTeste;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, Mask, DBCtrls, DBTables;
type
{Novo Componente}
TDBEditAlignment = class(TEdit)
private
{ Private declarations }
FAlignment: TAlignment;
procedure setAlignment(Value: TAlignment);
protected
{ Protected declarations }
public
{ Public declarations }
Constructor Create (AOwner: TComponent);override;
procedure CreateParams(var Params: TCreateParams);override;
property Alignment: TAlignment read FAlignment
write setAlignment default taRightJustify;
end;
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
DbEditTeste:TDBEditAlignment;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TDBEditAlignment }
constructor TDBEditAlignment.Create(AOwner: TComponent);
begin
inherited;
FAlignment := taRightJustify;
end;
procedure TDBEditAlignment.CreateParams(var Params: TCreateParams);
const
Alignment: array[TAlignment] of Word = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited;
Params.Style := Params.Style or Alignment[FAlignment];
end;
procedure TDBEditAlignment.setAlignment(Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd;
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{Cria o novo componente em tempo de execução
e recebe os parâmetros do controle visual}
DbEditTeste := TDBEditAlignment.Create (Self);
with DbEditTeste do
begin
Parent := Self;
Top := Edit1.Top ;
Left := Edit1.Left ;
Width := Edit1.Width ;
Height := Edit1.Height ;
end;//with
end;
end.
Logo abaixo criei um pequeno exemplo da re-implementação do componente TEdit, não vi outra forma de fazer isso, tive que implementar essa funcionalidade no componente. Se vc quiser pode utilizar da mesma forma que o código abaixo usa. Vc ainda pode transformar esse código em um componente e instalar em sua paleta para que sempre que precisar vc possa utilizar.
Espero em ter ajudado, qualquer coisa estarei a sua disposição!
Daniel Araújo
--------------------------------------------------------------------------------------
unit UntTeste;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, Mask, DBCtrls, DBTables;
type
{Novo Componente}
TDBEditAlignment = class(TEdit)
private
{ Private declarations }
FAlignment: TAlignment;
procedure setAlignment(Value: TAlignment);
protected
{ Protected declarations }
public
{ Public declarations }
Constructor Create (AOwner: TComponent);override;
procedure CreateParams(var Params: TCreateParams);override;
property Alignment: TAlignment read FAlignment
write setAlignment default taRightJustify;
end;
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
DbEditTeste:TDBEditAlignment;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TDBEditAlignment }
constructor TDBEditAlignment.Create(AOwner: TComponent);
begin
inherited;
FAlignment := taRightJustify;
end;
procedure TDBEditAlignment.CreateParams(var Params: TCreateParams);
const
Alignment: array[TAlignment] of Word = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited;
Params.Style := Params.Style or Alignment[FAlignment];
end;
procedure TDBEditAlignment.setAlignment(Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd;
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{Cria o novo componente em tempo de execução
e recebe os parâmetros do controle visual}
DbEditTeste := TDBEditAlignment.Create (Self);
with DbEditTeste do
begin
Parent := Self;
Top := Edit1.Top ;
Left := Edit1.Left ;
Width := Edit1.Width ;
Height := Edit1.Height ;
end;//with
end;
end.
Pessoal
Como faço para alinhar à direita com o objeto TEDIT ???
Rogério
GOSTEI 0
Khundalini
20/06/2004
Em breve será publicado no site da revista ClubeDelphi uma técnica que permite configurar novas funcionalidades a um componente já existente em um formulário sem a necessidade de se criar um novo componente.
[b]Aguardem![/b]
[]s
Rubem Rocha
Manaus, AM
[b]Aguardem![/b]
[]s
Rubem Rocha
Manaus, AM
GOSTEI 0
Aroldo Zanela
20/06/2004
Pessoal
Como faço para alinhar à direita com o objeto TEDIT ???
Rogério
Colega,
A forma de menor esforço é com RxLib ou Jedi VCL.
GOSTEI 0
Replicante
20/06/2004
Amigos...
O AlignEdit(Delphi7 - paleta Standard) não resolveria este problema?
Testei aqui e Ok.
Até mais.
O AlignEdit(Delphi7 - paleta Standard) não resolveria este problema?
Testei aqui e Ok.
Até mais.
GOSTEI 0
Khundalini
20/06/2004
Companheiro, preste atenção. Esse componente não existe na paleta Standard do Delphi 7, a não ser que você tenha registrado no seu IDE um componente com esse nome. Mas o Delphi não tem com um componente TAlignEdit.
[]
Rubem Rocha
Manaus, AM
[]
Rubem Rocha
Manaus, AM
GOSTEI 0
Replicante
20/06/2004
Perdão amigos, este componente realmente não faz parte da VCL do Delphi7. Mas é um ótimo componente, bem como nosso amigo necessita.
GOSTEI 0
Beppe
20/06/2004
Uma solução legal é colocar um memo, e tratar o keypress para naum deixar digitar o retorno de carro, ou ainda no OnChange:
while Memo1.Lines.Count > 1 do Memo1.Lines.Delete(Memo1.Lines.Count - 1);
GOSTEI 0
Tnaires
20/06/2004
Sei q não é a melhor solução, mas qdo precisei disso, usei um Panel com as seguintes propriedades:
Alignment: taRightJustify
BevelInner: bvLower
BevelOutter: bvLower
Color: clWindow
E ficava alterando a propriedade Capton, ao invés de Text.
Fica igualzin... :lol:
Alignment: taRightJustify
BevelInner: bvLower
BevelOutter: bvLower
Color: clWindow
E ficava alterando a propriedade Capton, ao invés de Text.
Fica igualzin... :lol:
GOSTEI 0
Tnaires
20/06/2004
Opa, detalhe: só precisava mostrar dados, e não editar.
GOSTEI 0
Marco Antônio
20/06/2004
Se eu entendi beim, vc esta querendo alinhar o conteudo do Edit a direita?!
Caso seja basta no OnCreat do form você habilitar a propriedade:
SysLocale.MiddleEast := true;
e nos Edit's que deseja alinhar definir a propriedade 'BidiMode' = bdRightLeft.
créditos: http://www.scriptbrasil.com.br/forum/topic/155485-resolvido%C2%A0como-alinhar-um-edit-a-direita/
Caso seja basta no OnCreat do form você habilitar a propriedade:
SysLocale.MiddleEast := true;
e nos Edit's que deseja alinhar definir a propriedade 'BidiMode' = bdRightLeft.
créditos: http://www.scriptbrasil.com.br/forum/topic/155485-resolvido%C2%A0como-alinhar-um-edit-a-direita/
GOSTEI 0
Ruy Salles
20/06/2004
Marco Antônio,
Não conhecia esta propriedade, testei aqui e funcionou perfeitamente.
Vlw a dica
Não conhecia esta propriedade, testei aqui e funcionou perfeitamente.
Vlw a dica
GOSTEI 0