Edição de registro
Amigos,
Estou com um pequeno problema de lógica aqui na minha aplicação. Tenho uma tabela chamada ´Clientes´, um formulário com 1 DBGrid e 3 botões (inserir, editar e excluir). Meu problema é o seguinte: quando eu vou editar algum registro o ponteiro da tabela pula para o último registro ao invés de ficar no registro em que eu selecionei no DBGrid, é chamado o formulário de edição/inserção e os campos ficam preenchidos com os campos do último registro do DBGrid. Quando eu clico no botão ´cancelar´ o formulário de edição/inserção é fechado e torna a aparecer o formulário com o DBGrid, se eu selecionar o campo novamente aí sim eu consigo editar o registro, o estranho é que o botão cancelar só tem uma linha de código: DM.TBClientes.Cancel;. Alguém sabe qual a razão disso estar acontecendo?? Os procedimentos envolvidos na edição dos registros estão listados abaixo:
Botão Editar:
Evento OnShow do formulário de edição/inserção:
Estou com um pequeno problema de lógica aqui na minha aplicação. Tenho uma tabela chamada ´Clientes´, um formulário com 1 DBGrid e 3 botões (inserir, editar e excluir). Meu problema é o seguinte: quando eu vou editar algum registro o ponteiro da tabela pula para o último registro ao invés de ficar no registro em que eu selecionei no DBGrid, é chamado o formulário de edição/inserção e os campos ficam preenchidos com os campos do último registro do DBGrid. Quando eu clico no botão ´cancelar´ o formulário de edição/inserção é fechado e torna a aparecer o formulário com o DBGrid, se eu selecionar o campo novamente aí sim eu consigo editar o registro, o estranho é que o botão cancelar só tem uma linha de código: DM.TBClientes.Cancel;. Alguém sabe qual a razão disso estar acontecendo?? Os procedimentos envolvidos na edição dos registros estão listados abaixo:
Botão Editar:
procedure TFrmClientes.BtnEditarClick(Sender: TObject); begin opcao := 2; // na inserção de registro a variável opcao recebe 1 FrmCliente.ShowModal; // formulário de edição/inserção end;
Evento OnShow do formulário de edição/inserção:
if opcao = 1 then begin // inserção MaskEdit1.setfocus; end; if opcao = 2 then begin // edição MaskEdit1.Text := DM.TBClientesCliente.Value; MaskEdit1.Enabled := false; DM.TBClientes.Cancel; DM.TBClientes.Edit; end;
Arlon
Curtidas 0
Respostas
Wtjunior
18/05/2004
Tente tirar o CANCEL...
um abraço
Wilson
um abraço
Wilson
GOSTEI 0
Arlon
18/05/2004
Cara, eu já havia tentado tirar mas continuou o problema.
Valeu a ajuda, mas o problema continua.
Valeu a ajuda, mas o problema continua.
GOSTEI 0