stringgrid闪烁! (50分)

  • 主题发起人 主题发起人 江西的delphi
  • 开始时间 开始时间

江西的delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
1.小弟用stringgrid的DrawCell事件填充房屋数据,首行的每个cell放房屋层次,首列每个cell放房屋房间号,
其它cell放房屋号(房屋层次+房屋房间号);填充cell多时会有闪烁,而且stringgrid上面
浮动有其它窗体(form),当其它窗体(form)移动时,事件StringGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);就重绘,stringgrid闪的更厉害。
大家有没有好一点的方法,分可以再加。

2.如何得到某一cell的颜色

代码如下
procedure TF_HouseStatQuery.StringGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if ADOQryHouse.Locate('sHouseID',(FormatFloat('00',ACol)+FormatFloat('00',ARow)),[]) then
begin
if Trim(ADOQryHouse.FieldByName('sSellState').AsString)='预定' then StringGrid.Canvas.Brush.Color := clFuchsia;
if Trim(ADOQryHouse.FieldByName('sSellState').AsString)='已售' then StringGrid.Canvas.Brush.Color := clRed;
if Trim(ADOQryHouse.FieldByName('sSellState').AsString)='未售' then StringGrid.Canvas.Brush.Color := clWindow;
if ADOQryHouse.FieldByName('bRetainState').AsBoolean then StringGrid.Canvas.Brush.Color := clLime;
StringGrid.Canvas.Lock;
StringGrid.Canvas.FillRect(Rect);
StringGrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, ADOQryHouse.FieldByName('sHouseID').AsString);
StringGrid.Canvas.Unlock;
end;
end;
 
呵呵,是老乡啊,拉你一把
你要把stringdraw的默认重绘属性去掉
这样就不会闪了!
你是江西哪的?
在江西做程序吗?
 
关注老乡的问题!
 
to:没理头号,Fuxiao
你们好,我开了个‘江西的大富翁签到’,你们去看看吧。
在厦门,是鹰潭人。
 
form1.DoubleBuffered:=true;
 
to:ldaan3
你好,还是一样。
 
好象是:
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.DoubleBuffered:=true;
end;

试试吧,我也不太记得了!
 
to:ldaan3
你好,我就是这么做的,还是一样。
 
Locate花的时间太长,可用二维数组代替。
好久没联系了,开始做系统了吗?
 
to:william09
是啊,要一个月完成。
开始我也想这样创建数组,strigngrid是不是上面有form在移动就会
执行StringGridDrawCell?
 
to:william09
如果动态创建数组的话,由于某些楼的不规则性,也就是一楼有4套房屋,
而二楼有7套(反应于房屋的表中),stringgrid的某些cell有空白,我想取出
总楼层数和层中最大房间数产生全部的cell,再根据cell的col和row找房屋表
到底有没有这套房屋
,有的话再判段是什么状态,没有这套房屋的话就清空cell。
但这样的话,..到.就要化很长时间。
不知有没有别的办法?
 
StringGrid1.DoubleBuffered := true;
 
to:Pearl
你好,stringgrid刷新会好很多,但在stringgrid上面移动toolwindow97或其它form时,
toolwindow97和其它form移动会滞后,画面变得不流畅,还望大侠指教!
 
后退
顶部