FK. 0 Denunciar post Postado Março 27, 2012 Opa.. Tenho um TPageControl, e dentro dele, tenho 3 TTabSheets(tabPessoaFisica, tabPessoaJuridica, tabPessoaOutros). Cada um desses tabSheets, tem TDBEdits ligados apenas a um mesmo DataSource, que por sua vez está ligado apenas a um ClientDataSet(cdsEmpresa), ou seja, se o usuário preencher o campo nome como "Guilherme" na tab de pessoa física, e mudar para a tab de pessoa jurídica, então la também terá o nome "Guilherme", já que estão num mesmo datasource. O cliente, NÃO pode ser uma pessoa física, jurídica ou 'outros' ao mesmo tempo. Então, a unica solução que encontrei para resolver isso, era desativar a propriedade datasource dos TDBEdits que estão dentro dos outros tabSheets, antes de gravar no banco. Olha o código: case index of 0: // tabPessoaFisica.TabIndex do pagecontrolPessoas(Fisica, juridica ou outros). begin for I := 0 to tabSheetFis.ComponentCount -1 do begin if tabSheetFis.Components[i] is TDBEdit then begin TDBEdit(tabSheetFis.Components[i]).DataSource := datasource; TDBEdit(tabSheetJur.Components[i]).DataSource := nil; TDBEdit(tabSheetOut.Components[i]).DataSource := nil; end; end; end; //... Aqui eu vejo os outros indices, se for 1, é pessoa juridica, se for 2, é outros Eu passo o índice do pageControl(PageControl.TabIndex) e CASO seja 0, quer dizer que a tabPessoaFisica está selecionada, então eu percorro todos os TDBEdits desse tabPessoaFisica, atribuo a propriedade datasource deles o meu datasource, e para os outros, eu atribuo para nil. Assim, eu só gravo dados de pessoa física, mas, quando chega na linha: for I := 0 to tabSheetsFis.ComponentCount -1 do A propriedade ComponentCount está com o valor 0, não sei porque, já que dentro do meu TabSheet tem um monte de componente. O que eu posso fazer? Será que tem uma outra solução ? Compartilhar este post Link para o post Compartilhar em outros sites
FK. 0 Denunciar post Postado Abril 4, 2012 Bom, consegui resolver o problema setando o valor dos outros DBEdits para null. Assim se o usuário digita um CPF, e digitar um CNPJ, então será dedicido de acordo com a tab que estiver selecionada, ou seja, se estiver na tab de pessoa fisica, o CPF permanece, e seto CNPJ para null. Vlw Compartilhar este post Link para o post Compartilhar em outros sites