Bookmark
Tenho um CDS onde eu dou um while nele. O que eu quero é marcar a posição em que eu clicar no grid e quando terminar o while(o cursor vai para o final, por default). Gostaria que o cursor ficasse onde eu cliquei. Sei que dá com Bookmark, mas como?
Paulo
Curtidas 0
Respostas
Fabriciok
05/05/2008
Acho que isso deve solucionar o seu problema:
var
book: TBookmark;
begin
book:= CDS.GetBookmark; //seta o Bookmark
CDS.First;
while not CDS.Eof do
begin
{instrução};
CDS.Next;
end;
CDS.GotoBookmark(book); //aponta para o Bookmark
CDS.FreeBookmark(book); //libera o Bookmark
end;
var
book: TBookmark;
begin
book:= CDS.GetBookmark; //seta o Bookmark
CDS.First;
while not CDS.Eof do
begin
{instrução};
CDS.Next;
end;
CDS.GotoBookmark(book); //aponta para o Bookmark
CDS.FreeBookmark(book); //libera o Bookmark
end;
GOSTEI 0
Paulo
05/05/2008
fabricio eu fiz assim, mas está movendo o grid, assim: O cursor fica no registro realmente, mas se este registro no momento em eu marcar ele, ele sobe para cima, simulando o primeiro registro, mas ainda tem mais pra cima do grid, só que o scroll do grid se move. Não é isso que eu quero, mas sim, ele não se mexer da posição em que eu cliquei nele.
GOSTEI 0
Fabriciok
05/05/2008
Entendi, tente dessa forma, com o comando DisableControls
var
book: TBookmark;
begin
book:= CDS.GetBookmark; //seta o Bookmark
CDS.DisableControls;
CDS.First;
while not CDS.Eof do
begin
{instrução};
CDS.Next;
end;
CDS.GotoBookmark(book); //aponta para o Bookmark
CDS.FreeBookmark(book); //libera o Bookmark
CDS.EnableControls;
end;
var
book: TBookmark;
begin
book:= CDS.GetBookmark; //seta o Bookmark
CDS.DisableControls;
CDS.First;
while not CDS.Eof do
begin
{instrução};
CDS.Next;
end;
CDS.GotoBookmark(book); //aponta para o Bookmark
CDS.FreeBookmark(book); //libera o Bookmark
CDS.EnableControls;
end;
GOSTEI 0
Paulo
05/05/2008
Aparentemente era só isso. valeu!!!!
GOSTEI 0