Pular para o conteúdo principal

Mudar Cursor de Edit Criado Dinamicamente

Temos o seguite caso, devemos criar Edits em tempo de execução, onde sempre que o ponteiro do mouse passar por um Edit, seja ele qual for, o ponteiro do Mouse deve mudar, apresentando dois tipos distintos, um para o caso do Edit estar vazio e outro quando ele estiver preenchido, além do fato de que quando um certo formulário for aberto o conteúdo do Edit selecionado deve ir para um Edit do novo formulário, segue abaixo o código, ou baixe aqui o exemplo:


var
Form1 : TForm1;
Edt : TEdit;
Cont : integer = 1;
vLeft : integer = 8;
vTop : integer = 40;
vWidth : integer = 81;
vHeight: integer = 21;
vSelect: string;


implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.criaEdt(p_left: integer; p_top: integer; p_width: integer; p_nome: string);
begin
Edt := TEdit.Create(Self);
WITH Edt DO
BEGIN
Parent := Self;
Left := p_left;
Top := p_top;
Width := p_width;
Height := 21;
Name := 'A'+p_nome;
OnMouseMove:= EdtMouseMove;
OnEnter := EdtEnter;
SetFocus;
END;
end;

procedure TForm1.EdtMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
IF (Sender as TEdit).Text = '' THEN
(Sender as TEdit).Cursor := crHandPoint
ELSE
(Sender as TEdit).Cursor := crMultiDrag;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IF Cont = 1 THEN
criaEdt(vLeft, vTop, vWidth, IntToStr(Cont))
ELSE IF Cont <= 4 THEN
BEGIN
vTop := vTop + 32;
criaEdt(vLeft, vTop, vWidth, IntToStr(Cont));
END
ELSE
ShowMessage('Não é possivel criar mais!');

Inc(Cont);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
Form2.Edit1.Text := TEdit( FindComponent( vSelect ) ).Text;
Form2.ShowModal;
Form2.Release;
end;

procedure TForm1.EdtEnter(Sender: TObject);
begin
vSelect := (Sender as TEdit).Name;
end;

end.

Comentários

Mais visitadas

Centralizar Texto em Edit

Como todos sabemos o Edit mantém todo texto digitado a esquerda, o que não fica bem quando o usamos para a entrada de números, pois bem, o exemplo abaixo apresenta uma alternativa para centralizar um determinado valor dentro de um Edit: procedure EditChange(Sender: TObject); var vl_label : TLabel; //variável do tipo Label begin vl_label := TLabel.Create(self); //criamos um label WITH vl_label DO BEGIN Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit Caption := TEdit(sender).Text; //pegamos o conteúdo do edit SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN, (TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit END ; vl_label.Free; end ;

Aplicação Flask usando Nginx e Gunicorn

Aplicação Flask usando Nginx e Gunicorn Se você já desenvolveu uma aplicação Flask básica, sabe que o servidor de desenvolvimento embutido não é ideal para produção. Ele não é projetado para lidar com altos volumes de tráfego ou conexões simultâneas. Para tornar sua aplicação Flask mais robusta e pronta para produção, podemos usar o Gunicorn como servidor de aplicação e o Nginx como proxy reverso. Neste artigo, vamos adaptar o exemplo anterior ( Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker ) para incluir o Nginx e o Gunicorn. O que são Nginx e Gunicorn? Gunicorn O Gunicorn (Green Unicorn) é um servidor de aplicação WSGI que roda aplicações Python como o Flask. Ele é eficiente e simples de configurar, lidando com múltiplas requisições ao mesmo tempo, algo que o servidor embutido do Flask não faz bem. Nginx O Nginx é um servidor web que atua como um proxy reverso. Ele recebe requisições HTTP e as encaminha ao Gunicorn. Além disso, o Nginx pode: Servir arquivos ...

Funções de Data e Hora (Delphi)

É muito comum nos depararmos no dia a dia com a necessidade de manipular datas e horas, seja para um calculo de permanência, dias de atraso enfim, é praticamente escapar de alguma situação que necessite desse tipo de controle. Assim como a necessidade e se utilizar algum recurso para manipular as datas e horas de alguma maneira e freqüente, as duvidas de como o faze-lo também é, basta um breve olhar em qualquer fórum especializado e lá está, alguma duvida relacionada, por isso decidi falar um pouco sobre uma unit muito poderosa chamada DateUtils para a manipulação de data e hora, com um grande numero de métodos e classes que facilitam a vida de qualquer um. Alguns exemplos: CompareDate(constA, B: TDateTime): TValueRelationship; Compara apenas a data de dois valores (do tipo TDateTime) retornando: LessThanValue O primeiro valor é menor que o segundo EqualsValue Os valores são iguais GreaterThanValue O primeiro valor é maior que o segundo CompareDateTime(const A, B: TD...