Edit
Pessoal,
No meu programa eu crio vários Edits dentro de um Panel em tempo de execução. como faço para alterar o conteúdo de um dos edits criados?
Como eu faço para colocar um texto via código no ´edit2´ por exemplo? quando clico em um botao.
Obrigado
[]s[color=blue:d6b9d63f02][/color:d6b9d63f02]
No meu programa eu crio vários Edits dentro de um Panel em tempo de execução. como faço para alterar o conteúdo de um dos edits criados?
for i:=0 to 10 do begin Edits := TEdit.create(Panel); with Edits do begin Parent := Panel; Name := ´edt´ + i; Left := 392; Top := 19; Width := 41; Height := 21; TabOrder := i; end; end;
Como eu faço para colocar um texto via código no ´edit2´ por exemplo? quando clico em um botao.
Obrigado
[]s[color=blue:d6b9d63f02][/color:d6b9d63f02]
Nshiga
Curtidas 0
Respostas
Jakefrog
13/12/2007
Se eu entendi bem, seria assim.
Edit2.Text := ´Texto´;
Agora se ele estiver dentro do panel tenta
Panel1.Edit2.Text := ´Texto´;
Edit2.Text := ´Texto´;
Agora se ele estiver dentro do panel tenta
Panel1.Edit2.Text := ´Texto´;
GOSTEI 0
Nshiga
13/12/2007
Eu não posso colocar dessa forma pois os Edits ainda não estão criados. Eles sào criados em tempo de execução.
Então se eu simplesmente coloco Edit2.text := ´texto´ vai dar erro ao compilar pois o Edit2 não existe. Ele só passa a existir qdo executo a função do for, que cria os edits.
Então se eu simplesmente coloco Edit2.text := ´texto´ vai dar erro ao compilar pois o Edit2 não existe. Ele só passa a existir qdo executo a função do for, que cria os edits.
GOSTEI 0
Edilcimar
13/12/2007
Tente fazer um array de Edit[i], se conseguir, você poderá jogar
for I := 1 to 10
Edit[i].text := ´texto´;
não testei, foi apenas uma idéia
for I := 1 to 10
Edit[i].text := ´texto´;
não testei, foi apenas uma idéia
GOSTEI 0
Jakefrog
13/12/2007
Bem eu pensei em vc ter colocado após ele ser criado! O.o
vc pode fazer um teste dentro do for,
if i = 2 then
edit.text := ´Texto´
espero q funcione!
vc pode fazer um teste dentro do for,
if i = 2 then
edit.text := ´Texto´
espero q funcione!
GOSTEI 0
Brunog3
13/12/2007
Tente fazer um array de Edit[i], se conseguir, você poderá jogar
for I := 1 to 10
Edit[i].text := ´texto´;
não testei, foi apenas uma idéia
[b:d19b55bf83]Edit[/b:d19b55bf83][i].text := ´texto´;
O que seria esse Edit, um Array?
[b:d19b55bf83]nshiga[/b:d19b55bf83] Dê uma olhada!
procedure TForm1.Button1Click(Sender: TObject); var i : Integer; Edits : TEdit; begin for I := 0 to 10 do begin Edits := TEdit.create(Panel); with Edits do begin Parent := Panel; Name := ´edt´ + IntToStr(I); //Text := ´´; Left := 25; Top := 2 + 23 * I; Width := 41; Height := 21; TabOrder := i; end; end; end; procedure TForm1.Button2Click(Sender: TObject); var Edit : TComponent; begin Edit := Panel.FindComponent(´edt2´); if edit is TEdit then begin (Edit as TEdit).Text := ´Teste´; end; end;
GOSTEI 0
Brunog3
13/12/2007
Edilcimar
Eu havia lido errado...
O array também daria certo nesse caso...
Eu havia lido errado...
O array também daria certo nesse caso...
GOSTEI 0
Nshiga
13/12/2007
brunog3, está dando erro na linha
Edit := panel.FindComponent(´edit2´);
Incompatible types: ´TEdit´ and ´TComponent´
Edit := panel.FindComponent(´edit2´);
Incompatible types: ´TEdit´ and ´TComponent´
GOSTEI 0
Bruno Belchior
13/12/2007
Edit := (TEdit)(panel.FindComponent(´edit2´));
GOSTEI 0