procedure TForm1.Button1Click(Sender: TObject);
var
P: Pointer;
begin
P := nil;{洗得干干净净一尘不染}
with TButton.Create(Self) do begin
asm
mov P, eax
end;
TButton(P).Caption := 'All Right!';
Parent := Self;{以下是开域语句的常见用法了}
Left := 100;
Top := 100;
Width := 100;
Height := 30;
Show;
end;
end;
分享一下,^_^
其实挺简单的,没有什么技术含量。
解决方案 »
- 关于CreateFileMapping的参数问题
- ※※※※※※※如何使鼠标不能移到窗体中的某个区域※※※※※※※※※※※※※※※※※※※※※
- 高手指点:如何在一个模态窗口中打开另一个模态窗口并同时关闭前窗口
- 用API写串口通讯,是不是只能在98下运行?
- 到哪里能下载DELPHI7???给个地址好吗?
- 哪里有CreateInstall 2000正式版的下载?
- Win32线程问题!100分!!!
- sql server2000多数据库数据交换问题
- ORACLE数据服务器的问题.奇了怪了
- I/O error 998是什么问题?
- Vista下CopyFileEx进度条问题
- 求有一个表格,能合并单元格,完善的内部编辑控件,能够读取保存 编辑格式
不过为了易读,还是声明一个变量比较好,要是delphi也可以像c/c++那样到处都可以声明,估计就不会有这样的写法了
由于本人基础太差,所以继续希望lihuasoft发一些汇编的小知识点!
谢谢啊!
僵哥是想表达类似
P := TOBJ.Create;
with TOBJ(P) do
这样的写法。这与
Btn := TButton.Create(self);
with Btn do
实际上没有什么不同。
其實這個挺好。 不過EAX前面真的要說一下。。不然壓進去了TBUTTON後再執行一個TLABEL,再吐出來TBUTTON就好玩了。
至少说明了来源当楼主第一次提这个问题的时候,我一看到就马上说了个EBP-4
原于,首先俺没把构造函数当成一个有返回值的函数,其二就是俺把对象当成了变量.
然而变量在函数中是存在于栈上的,而对象确是存在于堆上的.