Como no vb? Parte2....
gostaria que observassem o seguinte codigo:
procedure TForm1.Button2Click(Sender: TObject);
var
a:integer;
begin
teste.Insert;
for a:= 0 to componentcount-1 do begin;
if components[a] is tedit then
teste.Fields[a].Text:=tedit(components[a]).Text;
end;
teste.Post;
teste.Updaterecord;
end;
e levassem em conta que no form há 6 objetos (sendo 4 edite e dois command buttons)e na tabela 4 campos. Pela minha lógica(que para variar deve estar furada) ele devia contar os componentes selecionar os edits e colocar o valor delas dentro dos campos da tabela e atualizar o registro certo?
Mas ocorre o seguinte ele passa por cima da quantidade dos edits e conta também os cmb, e quando ele faz isso ocorre um erro e o programa para.
O porque do erro eu encontrei. como há seis objetos e apenas quatro campos a tabela retorna um valor de index não existente pois ela só possui quatro campos e o programa diz que ela tem 6.
A pergunta é a seguinte: como faço para ele me contar só os edit do form, sem que eu tenha que em cada form dizer a ele quantos edit tenha manualmente, pois gostaria de colocar esta rotina em um modulo e chamala sempre que necessário.
E aproveitando a pergunta gostaria de saber se no delphi a um modulo como no vb? :?:
procedure TForm1.Button2Click(Sender: TObject);
var
a:integer;
begin
teste.Insert;
for a:= 0 to componentcount-1 do begin;
if components[a] is tedit then
teste.Fields[a].Text:=tedit(components[a]).Text;
end;
teste.Post;
teste.Updaterecord;
end;
e levassem em conta que no form há 6 objetos (sendo 4 edite e dois command buttons)e na tabela 4 campos. Pela minha lógica(que para variar deve estar furada) ele devia contar os componentes selecionar os edits e colocar o valor delas dentro dos campos da tabela e atualizar o registro certo?
Mas ocorre o seguinte ele passa por cima da quantidade dos edits e conta também os cmb, e quando ele faz isso ocorre um erro e o programa para.
O porque do erro eu encontrei. como há seis objetos e apenas quatro campos a tabela retorna um valor de index não existente pois ela só possui quatro campos e o programa diz que ela tem 6.
A pergunta é a seguinte: como faço para ele me contar só os edit do form, sem que eu tenha que em cada form dizer a ele quantos edit tenha manualmente, pois gostaria de colocar esta rotina em um modulo e chamala sempre que necessário.
E aproveitando a pergunta gostaria de saber se no delphi a um modulo como no vb? :?:
Cal
Curtidas 0
Respostas
Data
13/04/2003
A tua lógica tá errada até no erro meu.
Tente o código corrigido abaixo e veja se não dá certo.
procedure TForm1.Button2Click(Sender: TObject);
var
a, b:integer;
begin
b := 0;
teste.Insert;
for a:= 0 to componentcount-1 do
begin;
if components[a] is tedit then
begin
teste.Fields[b].Text:=tedit(components[a]).Text;
inc(b);
end;
end;
teste.Post;
teste.Updaterecord;
end;
´Ninguém sabe tão pouco que não possa ensinar. Ninguém sabe tanto que não possa aprender.´
Espero ter ajudado.
Tente o código corrigido abaixo e veja se não dá certo.
procedure TForm1.Button2Click(Sender: TObject);
var
a, b:integer;
begin
b := 0;
teste.Insert;
for a:= 0 to componentcount-1 do
begin;
if components[a] is tedit then
begin
teste.Fields[b].Text:=tedit(components[a]).Text;
inc(b);
end;
end;
teste.Post;
teste.Updaterecord;
end;
´Ninguém sabe tão pouco que não possa ensinar. Ninguém sabe tanto que não possa aprender.´
Espero ter ajudado.
GOSTEI 0
Aroldo Zanela
13/04/2003
E aproveitando a pergunta gostaria de saber se no delphi a um modulo como no vb? :?:
File -> New -> Unit (Considero equivalentes, pois o módulo do VB fica só código sem formulário e a Unit fica só código Object Pascal).
GOSTEI 0