dbgrid1中的一个奇怪问题.求高手看一下.(100分)

  • 主题发起人 主题发起人 lingmao3
  • 开始时间 开始时间
L

lingmao3

Unregistered / Unconfirmed
GUEST, unregistred user!
我点击dbgrid1时,如果名称1相同就被选中,否则还是原样,
现在出现一个奇怪的问题:如果最后一条记录也满足条件,它却不会被选中.
但是如果在procedure中任何一个位置加上showmessage().它又正常了,所有满足条件的记录都会被选中.
procedure Tformitemsall.dbgrid1ColEnter(Sender: TObject);
var i:integer;
vstring,vvstring:string;
begin
//aaaaaaaaaaaa
vstring:=trim(DBGrid1.DataSource.Dataset.FieldValues['项目名称']);
if (DBGrid1.SelectedRows.CurrentRowSelected=false) and (DBGrid1.DataSource.Dataset.FieldValues['名称1']=DBGrid1.DataSource.Dataset.FieldValues['项目名称']) then
begin
//2
//showmessage('');加上就正常,不加上就不正常.
DBGrid1.DataSource.DataSet.first;
while not DBGrid1.DataSource.Dataset.eofdo
begin
//1
if trim(DBGrid1.DataSource.Dataset.FieldValues['名称1'])=vstring then
begin
DBGrid1.SelectedRows.CurrentRowSelected:=true;
end;
DBGrid1.DataSource.DataSet.Next;
end;
//1
end;
//2
end;
//aaaaaaaaaaaaaa
=======================================
问题已解决:就是增加一行代码:.
Application.ProcessMessages;
//这行非常重要
 
唉~这种鸟问题我也有时总遇到,哥们一般都是不管他,过两天再编译就自动好用了,也不知道为什么。建议楼主换个机器试试。。。
 
只有你留言了,顶了一下,分就给你了.
 
后退
顶部