Edit

03/12/2003

1

Alguem sabe se é possível, e como se faz se possível, para alinhar o valor digitado de um edit a direita do mesmo.

desde de já agradeço. e aos moderadores também, pq sempre ajudam.


Responder

Posts

Da uma olhada aqui: http://delphiforum.icft.com.br/forum/viewtopic.php?t=28749&highlight=


Responder

03/12/2003

Lucianolazzari

Mas não existe nenhuma forma de realizar este processo através de um Edit? Afinal não posso encher o meu form de memos, iria ficar muito pesado.


Responder

03/12/2003

Beppe

Mas não existe nenhuma forma de realizar este processo através de um Edit? Afinal não posso encher o meu form de memos, iria ficar muito pesado.


Pesado? Por que?


Responder

03/12/2003

Anorex

Na seção programação tem o que vc quer.

o site é meio besta.... é que eu sou péssimo web designer e naum tenho paciência com html....

http://geocities.yahoo.com.br/adoroprogramar/


Responder

03/12/2003

Beppe

Já que a demanda disto tá ficando grande, eu escrevi isto. Você não precisa mudar de controle.

Para usar, modifique a Tag dos edits.
Tag = 0, alinha à esquerda.
Tag = 1, centraliza.
Tag = 2, alinha à direita.
Chame PatchEdits com o controle que abriga os edits, ou abriga controle que abriga os edits, e assim recursivamente.
Ex: PatchEdits(Form1); { adicione AtHacks1 ao uses ]

Atenção crianças, não façam isso em casa!

unit AtHacks1;
// Copyright (c) 2003 Ataliba
// Todos os direitor reservados

interface

uses
  Controls;

procedure PatchEdits(Parent: TWinControl);

implementation

uses
  Windows, StdCtrls;

{ TRighteousEdit }

type
  TRighteousEdit = class(TEdit)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

  TWickedEdit = class(TRighteousEdit);

procedure TRighteousEdit.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or Cardinal(Tag);
end;

procedure PatchEdits(Parent: TWinControl);
var
  I: Integer;
  Edit: TControl;
begin
  with Parent do
    for I := 0 to ControlCount - 1 do
    begin
      Edit := Controls[I];
      if (Edit.ClassType = TEdit) then
      begin
        TClass(Pointer(Edit)^) := TRighteousEdit;
        if TWickedEdit(Edit).HandleAllocated then
          TWickedEdit(Edit).RecreateWnd;
      end;
      if Edit is TWinControl then PatchEdits(TWinControl(Edit));
    end;
end;

end.


Façam bom uso.


Responder

04/12/2003

Lucianolazzari

Desde já agradeço pelo que já foi fornecido. 2 coisas:
1) a primeira solução éra completamente absurda para mim, pois colocar memos de tamanhos de edits e implementar funções para verificação do que seria digitado, porque já estou evitando usar componentes e faço as funçoes manuais para edits receberem apenas numeros, ou valores tipos R$ 100,00 e com mais essa do memo iria tirar muito da performace da minha aplicação. Mas valeu pela dica.
2) a unit enviada foi de grande ajuda, e ajudou muito para o meu aprendizado em determinados pontos q ainda nao conhecia, porém ela alinha todos os edits da maneira que determinarmos e no caso de alguem querer alinhar somente os que contem valores numericos?

T+ Obrigado pela força


Responder