Dúvida DBGrid

Delphi

22/06/2008

Saudações!


Tenho uma tela que possui um dbgrid e 2 botões (Incluir, Cancelar e Gravar). Quando clico em Incluir, dou um append para criar uma linha em branco para que o usuário possa fazer o cadastro. Pois bem, o dbgrid possui apenas duas colunas, vamos supor que ele desista de gravar, depois de preenche-las, então ele clica no Cancelar, para deletar a linha que foi inserida com as células preenchidas, sem gravar. Aí é que está o problema, não está apagando como se deve.

Já tentei (no cancelar):
dbgrdData.SelectedRows.Clear; ou
dbgrdData.SelectedRows.Delete; ou

dbgrdData.DataSource.DataSet.Cancel;
(Este bateu na trave, o problema é que se eu selecionar algum registro acima, com uma das células já preenchidas, não deleta).

Nesta última situação, acho que não deleta porque estava tentando cancelar uma operação feita na célula que eu cliquei.

Finalizando, preciso cancelar uma linha que eu preenchi os dados e ainda não gravei, essa é uma situação que pode ocorrer, o usuário tem que ter a possibilidade de cancelar aquilo que ele começou a fazer.

FIco no aguardo para sugestões sobre este problema.

[]s


Roger1976

Roger1976

Curtidas 0

Respostas

Joaoshi

Joaoshi

22/06/2008

Colega, utilize o evento [b:061f478f40]BeforePost[/b:061f478f40] do DataSet e faça a verificação.

Ex.:

  if DataSet.State = dsInsert then 
    begin
       if FaltouAlgumaCoisa then ABORT;
     end;


Espero ter ajudado.


GOSTEI 0
Roger1976

Roger1976

22/06/2008

amigo, desculpe-me pela demora, eu tinha pensado em vários eventos e não me lembrei deste.

Valeu!


GOSTEI 0
POSTAR