void __fastcall TUsers::DBGColExit(TObject *Sender)
{
Ado->ExecSQL();
AQ4->Close();AQ4->Open();
}
更改AQ4(Ado Query)表的内容后重新加载AQ4 DBG(DBGrid)也重新加载内容。
但是我仍然在没有从我的Col (列)(和行)退出,然后当我按下重新加载行后选择+ 1 时它选择第二行Grid的一行,如果我按下Selected + 2,它会选择第三行。
我选择的项目是第一个,但不是同一时间。
示例:DBGrid包含 1 2 3 4 5 我选择 4 并重新加载内容 然后我点击 5 选择 2 我只是无法点击 1 2 3 4 重装后。
如何修复此错误......
谢谢。答案 0 :(得分:3)
我认真地认为“OnColExit”不适合您正在做的事情。
除此之外,您所描述的行为似乎并不是一个错误。通过重新打开您登陆第一条记录的数据集(使用键盘而不是鼠标导航,您将看到我的意思),而网格认为它是已更改的列。
你至少应该尝试使用书签来保持同一行。德尔福等效代码将是......像这样;
var
Bookmark: TBookmark;
begin
Bookmark := AQ4.GetBookmark;
try
[...] // close, open the query
if AQ4.BookmarkValid(Bookmark) then
AQ4.GotoBookmark(Bookmark);
finally
AQ4.FreeBookmark(Bookmark);
end;