gpt4 book ai didi

Delphi DBGrid 显示压缩行

转载 作者:行者123 更新时间:2023-12-03 18:45:03 26 4
gpt4 key购买 nike

我遇到了 Delphi 的 DBGrid 最奇怪的问题。

我注意到 有时 ,我的意思是,当我将行加载到 delphi DBGrid 中时(它是完全随机的),网格不显示数据。

相反,它显示了几个压缩行,基本上 delphi 行的高度非常窄,甚至无法读取信息。

这会是什么原因?又该如何解决呢?

更新

我终于能够捕捉到行自己做的图像。
如您所见,这些行在技术上显示为选择了 1。但就好像它们被紧紧地压缩在一起,所以它似乎是空的......

请看下图:
image of rows compressed

关于造成这种情况的原因以及如何防止这种情况的任何想法都会很棒......

最佳答案

这个问题我也遇到过。我想我已经解决了。

在我的情况下,我调用 ADOQuery.Open();里面 TThread , 而这个 ADOQuery绑定(bind)到 DataSource它被绑定(bind)到 DBGrid .我怀疑可能在辅助线程中执行某些东西,所以我玩了一下 ADOQuery .

这是我所做的,解决了我的问题。调用前ADOQuery.Open()在开始一个新线程之前,我做了DataSource.DataSet := nil; .我分配 Thread.OnTerminate := RefreshGridFinished; .然后我开始新的TThread有一些程序,其中 ADOQuery.Open();最终被调用。那么,当TThread完成后,我有了这个处理程序,它将分配获取的和完整的 ADOQuery又名 DataSetDataSource :

procedure TMyForm.RefreshGridFinished(Sender: TObject);
begin
TThread.Synchronize(TThread(Sender),
procedure
begin
DataSource.DataSet := ADOQuery; // I assign fetched dataset
end);

if TThread(Sender).FatalException <> nil then
begin
Exit;
end;

Thread := nil; // Class field
end;

关于Delphi DBGrid 显示压缩行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com