Foco no tcxGrid após uma consulta.

Delphi

18/12/2015

Bom dia,
Estou com um problema que aparentemente é simples, mais que esta me dando uma dor de cabeça.
É o seguinte:

Tenho um tcxGrid que esta ligado ao meu dataSource.

Esse grid exibe alguns dados do sistema, tenho um botão que chama um outro formulário a partir dos dados selecionados no grid.
Quando eu fecho esse formulário, e atualizo meu sql que esta ligado ao grid, o foco do grid muda.

Por exemplo:
tem 200 linhas no grid, seleciono uma no meio dele, o foco dela esta no meio da tela, quando volto o foco continua no mesmo registro pois pego o recno e depois jogo no dataset, só que a linha selecionada muda de posição para baixo, ou seja ela vai para baixo com o mesmo registro.
Eu precisava que o grid não mexesse.

Teria alguma forma de pegar as coordenadas desse grid ou algo parecido, para depois que fazer a atualização eu jogasse e ficasse igual a posição ?

Obrigado pela atenção.
Adriano

Adriano

Curtidas 0

Melhor post

Natanael Ferreira

Natanael Ferreira

18/12/2015

Você pode tentar utilizar BookMarks:

Bookmarks permitem "memorizar" um determinado local da tabela para que possa retornar mais tarde.

Exemplo:

var
bmLocalImportante: TBookmark;
begin
bmLocalImportante := Query1.GetBookMark; // Memoriza registro
Query1.Close; // Fecha a tabela
Query1.Open; // Abre a tabela
Query1.GotoBookmark(bmLocalImportante); // Localiza o registro memorizado
DBGrid.SetFocus; // Foco no DBGrid novamente
Query1.FreeBookmark(bmLocalImportante); // Libera o BookMark da memória
end;


Veja este link:
https://www.devmedia.com.br/dicas-bookmarks-no-delphi/3260
GOSTEI 1

Mais Respostas

Adriano

Adriano

18/12/2015

Eu ja fiz desse jeito, ele funciona mais não resolve meu problema.

Quando eu abro e fecho o dataset o registro fica no mesmo, o problema é que TCXGRID muda de posição.
Por exemplo eu selecionei um registro 222 na 2ª linha e chamei outro formulário, quando eu dou o close e open no data set, o meu grid continua com o foco no 222 so que na 9ª linha.

entendeu?

Mais mesmo assim muito obrigado pela informação do book mark.
GOSTEI 0
Adriano

Adriano

18/12/2015

alguém ?
GOSTEI 0
POSTAR