StringGrid1DrawCell事件中修改数据设置行高度会引起闪烁
怎样才能禁止闪烁?
怎样才能禁止闪烁?
解决方案 »
- 读取MP3文件的ID3v2标签、程序耗尽内存资源
- 使用 DBlookupcombobox.filter属性是报错的问题?
- 高手请进,为什么可执行文件在xp系统下能够运行,换在win2000下就不能够运行了呢?顶者有分~~
- Dcom分布式开发
- GifImage for d6 死机问题
- 在DLL中,为什么返回值的字符串总是不完全,大家看看这段代码,错在哪里?先谢了!
- 如何截取字符串中的子串???
- 有没有好一点的关于Delphi网络编程的书!!!
- 简直是太简单了 分值虽然少但这不是白送分么!
- 都快成世界难题了,难道微软就没有直接的函数吗,或者消息,这是TMD微软
- 请问DBGrid怎么处理多行数据?
- 控制并口打印问题
LockWindowUpdate(FormName.Handle);
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
const
hjianju=5; //,行间距
var
c,yushu:integer;
Rcount:integer; //行数
Gaodu,wCount,ckuan:integer; //单行高度 ,字符串宽 ,单元宽度
i,j,h:integer;
s,s1,s2:string;
sl,htop,hleft,ss:integer;
XY:tpoint; //画文字起始坐标
begin
drawgrid1.Font.Size:=12; s:=C_String[id];
sl:=length(widestring(s+' '+Tel_String[id]);
if acol=1 then
begin
ckuan:=drawgrid1.ColWidths[1]; wcount:=drawgrid1.Canvas.TextWidth(s+' '+Tel_String[id]);
gaodu:=drawgrid1.Canvas.TextHeight(s);
Rcount:=wcount div ckuan;
yushu:=wcount mod ckuan;
if yushu>0 then
Rcount:=Rcount+1;
drawgrid1.RowHeights[arow]:=(Rcount*(gaodu+hjianju))+hjianju;
//设置单元格的高度 xy.Y:=rect.Top+hjianju; //第一行Y坐标
xy.x:=rect.Left+2; //第一行的X坐标 xy:=Chonghua(xy.X,xy.Y,ckuan,gaodu,s,drawgrid1);
drawgrid1.Canvas.font.Color:=clred; //变颜色为红色
xy:=Chonghua(xy.X,xy.Y,ckuan,gaodu,' '+citystring[cityid][c][1],drawgrid1); end;//acol
end;
function Chonghua(Xstart,Ystart,Ckuan,Gaodu:integer;s:string;state:Tdrawgrid):tpoint;
const
hjianju=5;
var
s2,s3:string;
s1,i:integer;
C1,C2,ss:integer;
begin
ckuan:=ckuan+40;
s1:=length(widestring(s));
for i:=1 to s1 do
begin
s2:=midstr(s,i,1);
ss:=state.Canvas.TextWidth(s2);
if Xstart+ss <= ckuan then
begin state.Canvas.TextOut(Xstart,Ystart,s2);
Xstart:=Xstart+ss;
end//if
else
begin
Ystart:=Ystart+hjianju+gaodu;
Xstart:=42;
state.Canvas.TextOut(Xstart,Ystart,s2);
Xstart:=Xstart+ss;
end;
end;//for
Chonghua.X:=xstart;
chonghua.Y:=ystart;
end;//chonghua
有没有人用回调方式在grid中显示数据啊?
CSDN论坛浏览器:浏览、发帖、回复、结贴自动平均给分,下载地址:http://CoolSlob.ys168.com