Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ultra

Alterando valores de campos TEdit

Recommended Posts

Salve pessoal iMasters(Delphi). Tenho aká uma pequena dúvida, de nomeação de edits.......

 

Tenho uma variável I (Integer), que adiciono à cada clique no botao +1

 

A dúvida é, à cada clique no botão ele fará 5 campos edits ficarem visíveis, e à cada outro clique, outros 5 campos....... vou mostrar como está o código:

 

var i: Integer;procedure TForm.btnAddClick(Sender: TObject);begini:= i + 1;      ed_X1.Visible := True;      ed_Y1.Visible := True;      ed_Z1.Visible := True;      ed_W1.Visible := True;      ed_K1.Visible := True;end;

Mas queria poder utilizar o valor do i para nomear os ed_ ...... ( no ASP eu fazia CAMPO&variável )......... Alguém sabe como faço isso ? Me economizaria Linhas e Linhas de código hehe

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Abraços e Agradeço a ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

ULTRA

Compartilhar este post


Link para o post
Compartilhar em outros sites

é Ultra isso seria muito bom...

O nome do que você está querendo fazer é MacroSubstituição e isso, até o pouco que eu sei, é IMPOSSÍVEL em Delphi.

Outras linguagens como Clipper e C++ eu sei que suportam isso, ASP(puro, não ASP.NET) por não ser compilado mas sim usar uma linguagem interpretada pode fazer isso tb. Agora Delphi, não! :(

Mas calma é possível melhorar esse código, que tal se nós tentarmos fazer assim:

 

coloca 10 edits no form, ai em 5 deles você muda a propriedade TAG para 1 e nos outros 5 para 2;

 

ai a sua procedure ficaria assim:

 

var i: Integer;procedure TForm.btnAddClick(Sender: TObject);var   j: Integer;begin   i:= i + 1;   for J := 0 to ComponentCount - 1 do//Vou varrer todos componentes   begin      if Component[J] is TEdit then//verifico se o componente é um edit;         TEdit(Component[J]).Visible := TEdit(Component[J]).Tag = i;{o edit só vai ficar visivel se a propriedade tag for igual ao valor de i}      Application.processmessages;   end;// end;

qualquer dúvida tamo ai.

ps: não testi esse código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ! Valeu Roger ! Com algumas modificações, e correção no "Component[J]" para "Components[J]" , fiz o script não como eu achava que seria, mas muito muito mais leve que o script atual heheh

 

Apenas limitei o i até 10, ou mais de 1, pois senão se adicionasse + de 10 vezes, ele ia contando o i para 11,12,13,14......... ou 0,-1,-2,-3,-4........ e mudei o:

 

TEdit(Component[J]).Tag = i

para

TEdit(Component[J]).Tag < i

pois os edits antes visíveis sumiam

 

Mas é isso ae ! Mais uma vez muito agradecido Roger ! Me economizou segundos preciosos da minha aplicação ! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve pessoal iMasters(Delphi). Tenho aká uma pequena dúvida, de nomeação de edits....... Tenho uma variável I (Integer), que adiciono à cada clique no botao +1A dúvida é, à cada clique no botão ele fará 5 campos edits ficarem visíveis, e à cada outro clique, outros 5 campos....... vou mostrar como está o código:

var i: Integer;procedure TForm.btnAddClick(Sender: TObject);begini:= i + 1;      ed_X1.Visible := True;      ed_Y1.Visible := True;      ed_Z1.Visible := True;      ed_W1.Visible := True;      ed_K1.Visible := True;end;
Mas queria poder utilizar o valor do i para nomear os ed_ ...... ( no ASP eu fazia CAMPO&variável )......... Alguém sabe como faço isso ? Me economizaria Linhas e Linhas de código hehe http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Abraços e Agradeço a ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif ULTRA
Salve Velho belezaComo estaNao sei se entendi direito o que voce que mas vai ae umdica eu criei os edits com ae voce pode crias mas de cincos ...bom vai ae o codigoprocedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var ed:TEdit; I, J:Integer; Nome:String;begin for J:=ned to ned+4 do begin ed:=TEdit.Create(Self); ed.Parent:=Self; ed.Top:=L+30; ed.Left:=Button1.Left; Nome:='Edit' + IntToStr(J); ed.Name:=Nome; ed.Text:=Nome; L:=ed.Top; end; ned:=ned+ J;end;procedure TForm1.FormShow(Sender: TObject);begin ned:=2; l:=Edit1.Top;end;Fui:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.