如果让窗体停止刷新,很闪的说。

qufo 2004-11-23 09:42:10
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,oLeft,oTop:integer;
begin
//终止窗体刷新
oLeft:=0;
oTop:=0;
for i:=1 to 25 do
begin
for j:=1 to 25 do
begin
p[i,j]:=Tpanel.Create(self);
p[i,j].Parent:=self;
p[i,j].BevelOuter:=bvNone;
p[i,j].Height:=5;
p[i,j].Width:=5;
p[i,j].Left:=oLeft+(j-1)*5;
p[i,j].Top:=oTop+(i-1)*5;
p[i,j].Color:=rgb(i*10,j*10,255);
// p[i,j].onclick:=pclick(i,j);
end;
end;
//刷新窗体
end;

上述代码画的时候,闪得很厉害,如果在创建 panel 终止窗体刷新,等创建完了让它刷新,再全部显示在窗体中?

还有,谁写一个 p[i,j] 的 onclick 事件代码,只要求点击后显示出i,j的值。
...全文
152 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
smilelhh 2004-11-24
  • 打赏
  • 举报
回复
我的楼上的,
再将doublebuffer设成true
beyondtkl 2004-11-24
  • 打赏
  • 举报
回复
刷新前
BOOL LockWindowUpdate(
HWND hWndLock // handle of window to lock
);


刷完了
LockWindowUpdate(0);
kuki84 2004-11-24
  • 打赏
  • 举报
回复
很这的说,很那的说,有什么中国话不能好好说??!!!
cnhgj 2004-11-23
  • 打赏
  • 举报
回复
type

procedure pclick(Sender : TObject);
private
...........
public
...........
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,oLeft,oTop:integer;
p : array[1..25, 1..25] of TPanel;
begin
//终止窗体刷新
oLeft:=0;
oTop:=0;
for i:=1 to 25 do
begin
for j:=1 to 25 do
begin
p[i,j]:=Tpanel.Create(self);
p[i,j].BevelOuter:=bvNone;
p[i,j].Height:=5;
p[i,j].Name := 'row' + inttostr(i) + 'col' + inttostr(j);
p[i,j].Caption := '';
p[i,j].Width:=5;
p[i,j].Left:=oLeft+(j-1)*5;
p[i,j].Top:=oTop+(i-1)*5;
p[i,j].Color:=rgb(i*10,j*10,255);
p[i,j].onclick:= pclick;
p[i,j].Parent:=self;
end;
end;
//刷新窗体
end;

procedure TForm1.pclick(Sender: TObject);
begin
showMessage(TPanel(Sender).Name);
end;
qufo 2004-11-23
  • 打赏
  • 举报
回复
sorry,补上定义
public
p:array[1..25,1..25] of TPanel;
qufo 2004-11-23
  • 打赏
  • 举报
回复
嘿嘿,照闪不误。
aiirii 2004-11-23
  • 打赏
  • 举报
回复
self.canvas.lock;




self.canvas.unlock;
大概這樣吧

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧