duvida com referencia à objetos
seguinte:
- Os TEdit do form tem o mesmo nome dos campos da tabela
ex: Campo ID da tabela = Edit.name = ID
( ? ) = a minha duvida é:
[b:bb3fbbe711]quando um componente tiver o mesmo nome do Field da tabela e esse componente for um Edit, como capturar o conteudo deste Edit(Edit.Text)[/b:bb3fbbe711]
obs: como estou usando herança de formularios o código esta no form Pai
- Os TEdit do form tem o mesmo nome dos campos da tabela
ex: Campo ID da tabela = Edit.name = ID
for iComps := 0 to TForm(self).ComponentCount - 1 do begin for iFields := 0 to qryUpdates.FieldList.Count - 1 do // quando o componente do loop tiver o mesmo nome que o Field da tabela if Uppercase( TForm(self).Components[iComps].Name ) = UpperCase( qryUpdates.FieldList.Fields[iFields].FieldName) then if TForm(Self).Components[iComps] is TEdit then qryUpdates.FieldByName(TForm(self).Components[iComps].Name).Value := // TEdit.Text ( ? ) end;
( ? ) = a minha duvida é:
[b:bb3fbbe711]quando um componente tiver o mesmo nome do Field da tabela e esse componente for um Edit, como capturar o conteudo deste Edit(Edit.Text)[/b:bb3fbbe711]
obs: como estou usando herança de formularios o código esta no form Pai
Fabiano Góes
Curtidas 0
Respostas
Tnaires
22/10/2006
Olá
ou
Abraços
qryUpdates.FieldByName(TForm(self).Components[iComps].Name).Value := ( Components[iComps] as TEdit ).Text;
ou
qryUpdates.FieldByName(TForm(self).Components[iComps].Name).Value := TEdit( Components[iComps] ).Text;
Abraços
GOSTEI 0
Fabiano Góes
22/10/2006
valeu [b:fb4cf8b40b]tnaires[/b:fb4cf8b40b]
exatamente o que eu precisava !!!
exatamente o que eu precisava !!!
GOSTEI 0
Fabiano Góes
22/10/2006
seguinte:
a idéia do amigo [b:bf99a84db0]tnaires[/b:bf99a84db0] funcionou perfeitamente quando esta usando a idéia dentro de um form, agora estou tentando usar a mesma idéia dentro de uma classe e nao compila.
[color=red:bf99a84db0][Error] Undeclared identifier: ´Components´[/color:bf99a84db0]
se alguem puder me ajudar, segue o código:
O que preciso mudar pra compilar dentro de uma classe ?
a idéia do amigo [b:bf99a84db0]tnaires[/b:bf99a84db0] funcionou perfeitamente quando esta usando a idéia dentro de um form, agora estou tentando usar a mesma idéia dentro de uma classe e nao compila.
[color=red:bf99a84db0][Error] Undeclared identifier: ´Components´[/color:bf99a84db0]
se alguem puder me ajudar, segue o código:
procedure TOMDF.SetFieldsValue; var iComps, iFields: Integer; begin for iComps := 0 to TForm(FOwner).ComponentCount - 1 do begin for iFields := 0 to qryUpdates.FieldList.Count - 1 do begin if Uppercase( TForm(FOwner).Components[iComps].Name ) = UpperCase( qryUpdates.FieldList.Fields[iFields].FieldName) then begin if TForm(FOwner).Components[iComps] is TCustomEdit then qryUpdates.FieldByName(TForm(FOwner).Components[iComps].Name).Value := ( Components[iComps] as TCustomEdit ); else if TForm(Self).Components[iComps] is TRadioGroup then qryUpdates.FieldByName(TForm(FOwner).Components[iComps].Name).Value := ( Components[iComps] as TRadioGroup ).ItemIndex + 1; end; end; end; end;
O que preciso mudar pra compilar dentro de uma classe ?
GOSTEI 0
Tnaires
22/10/2006
Olá
Como você quer colocar a idéia em outra classe, precisa explicitar o form, usando:
Abraços
Como você quer colocar a idéia em outra classe, precisa explicitar o form, usando:
TForm(FOwner).Components[iComps]
Abraços
GOSTEI 0
Fabiano Góes
22/10/2006
Mais um vez, muito obrigado [b:4b602a455c]tnaires[/b:4b602a455c]
fica na PAZ ai irmão !!!
fica na PAZ ai irmão !!!
GOSTEI 0