请教各位网友:问两个Delphi的问题(0分)

  • 主题发起人 主题发起人 netbug
  • 开始时间 开始时间
N

netbug

Unregistered / Unconfirmed
GUEST, unregistred user!
一: Delphi中动态建立控件后,它的事件的问题
请看以下的例子:
var Btn:TButton

procedure TForm1.Button1Click(Sender: TObject)

begin
btn:=TButton.create(self)

btn.parent:=self

end


procedure TForm1.BtnClick(Sender: TObject)

begin
showmessage('message')

end

但在编译时,系统提示未定义Btn,我想问:在动态建立控件后,如何
写此控件的事件?

二:我在一个有关作图的例子中,发现有:
with canvas do begin
pen.mode:=pmNot

moveto(x0,y0)

lineto(lx,ly)

end

而此例中的Canvas并不是类TCanvas生成的,我又查了graphics.pas这个文件,
其中有:
TBitmap = class(TGraphic)
........
property Canvas: TCanvas read GetCanvas

而此句的意思是说Canvas是类TBitmap的一个域,
我想问:在Delphi中,只有用类的生构造成的实例后,才可以访问它的域,
那为什么在此例中可以写成:
with canvas do begin
pen.mode:=pmNot

moveto(x0,y0)

lineto(lx,ly)

end

也就是说:这个canvas没有被create就被使用,这是为何?
Canvas与TCanvas之间有什么关系?
谢谢。
 
可以这样:
procedure MyBtnClick(Sender : TObject)
begin
.......
end;
然后:
var
Abutton:TButton;
begin
Abutton = TButton.Create(Self);
AButton.Parent = Self
{************************}
ABtuuon.OnClick = MyBtnClick
{************************}
end;
 
Canvas是类TGraphicControl的一个成员
在TGraphicControl的构造函数中就已经被Create了
OPUBf,你也在?
嘿嘿
 
时间太久,强制结束。 wjiachun
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部