selecionar registros aleatoriamente dbgrid

Delphi

24/08/2012

Ola galera do DevMedia;

Estou tentando fazer um pdv onde na interface tem um dbgrid que armazeno os itens registrados, nesse pdv não vou ter a opçao do mouse, por isso estou sofrendo pra fazer o cancelamento de itens, pois queria poder selecionar com as teclas direcionais do teclado um ou mais itens aleatoriamente e excluir ele(s) sem o mouse ou a tecla control, mais sim com uma tecla tipo enter para selecionar e limpa para excluir.

Não sei se consegui explicar direito mais qualquer duvida sobre a pergunta eu tento esclarece-la melhor.

Obrigado pela atenção

ass: Ricardo Reis
Ricardo Reis

Ricardo Reis

Curtidas 0

Respostas

William

William

24/08/2012

Olá Ricardo, vc pode mandar excluir através do número do item, exemplo:

Imagine um DBGrid com esses dados:
Item Descrição  Valor
1     CANETA    1,00
2     LAPIS     0,50
3     BORRACHA  0,50 


Usando uma tecla de atalho tipo F1, vc abre uma janela para o usuário informar qual o número do item que ele quer cancelar na venda, posteriormente é só cancelar ou excluir.
GOSTEI 0
Ricardo Reis

Ricardo Reis

24/08/2012

olá wllfl

primeiramente obrigado por tentar me ajudar, então... eu queria cancelar pelo dbgrid mesmo pq colocando uma janela pra fazer isso vai ficar estranho pela interface que estou usando. eu ja consigo excluir um item do jeito que eu expliquei em cima, selecionando com as setas e apertando uma tecla que configurei, agora queria poder escolher mais itens para marcar e depois excluir.

obrigado.
GOSTEI 0
Marco Salles

Marco Salles

24/08/2012

procedure TForm2.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 if TDbgrid(sender).DataSource.State in [dsBrowse] then
   if MessageDlg('Deletar Registro ?', mtConfirmation, [mbok,mbcancel], 0) = mrok then
      TDbgrid(sender).DataSource.DataSet.Delete;
end;


seria isto ????
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

24/08/2012

Rapaz, eu acho que a opção dada pelo colega acima seja mais segura. MAS... talvez você possa fazer o seguinte:
Uma vez que o grid tem o foco, as setas do teclado já fazem o scroll automaticamente (funcionalidade nativa). Você pode adicionar um atalho, por exemplo, marcar o registro como SELECIONADO (em um array, por exemplo). Após isso, ao usar a opção EXCLUIR, seria verificado quais registros estão marcados.
GOSTEI 0
Ricardo Reis

Ricardo Reis

24/08/2012

Pessoal obrigado pela ajuda mais ainda não consegui, para ficar mais facil de entender vou ir por partes... como fazer para colocar (com o teclado) a marcação em um registro e apertando o enter ele ficar selecionado, depois escolher outro registro no dbgrid e seleciona-lo tambem do mesmo jeito. quero só selecionar e guardar os registros selecionados em variaveis.

Obrigado.

té mais
GOSTEI 0
POSTAR