Arrastando linha da grid
Fiz uma rotina onde arrasto uma linha de uma DBGrid e solto em outra para ´transferencia de registros´.
Agora para enfeitar gostaria de que quando estiver arrastando a linha, ela fosse exibida como uma imagem semi-transparente e não simplesmente como um cursor.
Alguem ja fez algo parecido????
Peace. Out.
Agora para enfeitar gostaria de que quando estiver arrastando a linha, ela fosse exibida como uma imagem semi-transparente e não simplesmente como um cursor.
Alguem ja fez algo parecido????
Peace. Out.
Marcelo.l
Curtidas 0
Respostas
Michaell
17/03/2005
Fiz uma rotina onde arrasto uma linha de uma DBGrid e solto em outra para ´transferencia de registros´.
Colega,
Tem mó tempão que estou com esta dúvida sobre arrastar uma linha do DBGrid para outra posição... A única solução que eu achei foi criar um índice no DataSet e fazer uma espécie de ´atualização do índice´ conforme este tópico [url]http://forum.clubedelphi.net/viewtopic.php?t=59790&highlight=ordem+registro[/url]
Teria como você me dar uma idéia, pelo menos, de como fazer essa implementação??
[]´s
GOSTEI 0
Marcelo.l
17/03/2005
Olá, Michaell
O meu caso é arrastar uma linha de um dbgrid para outro dbgrid.
Mas para o seu caso a um tempo atrás eu fiz algo do tipo mas com botões.
Criei um campo chamado ´Ordem´ na tabela
para mover o registro para uma posição anterior clicando no botão ´Para cima´...
para mover ´para baixo´ é só inverter a subtração e adição
...e é claro o dataset tem que estar indexado pelo campo ´ORDEM´
Estou pesquisando para fazer o mesmo arrastando a linha mas é um pouco mais dificil
Talvez usando algo com a função ´RectAtPos´ não sei. To chutando.
Quando tiver alguma coisa te passo.
espero ter sido de alguma ajuda.
Good Luck
Peace. Out.
O meu caso é arrastar uma linha de um dbgrid para outro dbgrid.
Mas para o seu caso a um tempo atrás eu fiz algo do tipo mas com botões.
Criei um campo chamado ´Ordem´ na tabela
para mover o registro para uma posição anterior clicando no botão ´Para cima´...
procedure TForm1.BtnMoveUPClick(Sender: TObject); var SavePlace: TBookMark; begin with DB3DGrid1.DataSource.DataSet do begin try // "CONGELA" A GRID... LockWindowUpDate(DB3DGrid1.Handle); // SALVA UM PONTEIRO PARA O REGISTRO ATUAL... SavePlace := GetBookMark; // MOVE PARA O REGISTRO ANTERIOR... Prior; if not DB3DGrid1.DataSource.DataSet.BOF then begin // ADICIONA 1 NA ORDEM DO REGISTRO... Edit; FieldByName(´ORDEM´).AsInteger := FieldByName(´ORDEM´).AsInteger + 1; Post; // VOLTA PARA O REGISTRO... GotoBookMark(SavePlace); // SUBTRAI 1 NA ORDEM DO REGISTRO... Edit; FieldByName(´ORDEM´).AsInteger := FieldByName(´ORDEM´).AsInteger - 1; Post; end; finally // LIBERA O PONTEIRO... FreeBookMark(SavePlace); // "DESCONGELA" A GRID... LockWindowUpDate(0); end; end; end;
para mover ´para baixo´ é só inverter a subtração e adição
...e é claro o dataset tem que estar indexado pelo campo ´ORDEM´
Estou pesquisando para fazer o mesmo arrastando a linha mas é um pouco mais dificil
Talvez usando algo com a função ´RectAtPos´ não sei. To chutando.
Quando tiver alguma coisa te passo.
espero ter sido de alguma ajuda.
Good Luck
Peace. Out.
GOSTEI 0
Marcelo.l
17/03/2005
sobe
GOSTEI 0