把如下代码放在dll文件
procedure TFrmReaderTable.SetObjectTextClear(SetObject:Tobject);
begin
if SetObject is tedit then
(SetObject as tedit).Text := '';
if SetObject is tcombobox then
(SetObject as tcombobox).Text := '';
end;
------------------------------------------------------------------
procedure SetObjectTextClear(SetObject:Tobject);stdcall;
begin
if SetObject is tedit then
(SetObject as tedit).Text := '';
if SetObject is tcombobox then
(SetObject as tcombobox).Text := '';
end;
exports SetObjectTextClear;
begin
end.
------------------------------------------------------------------同样可以执行,但DLL里的过程SetObjectTextClear不起作用了.
请问这是为什么啊?
procedure TFrmReaderTable.SetObjectTextClear(SetObject:Tobject);
begin
if SetObject is tedit then
(SetObject as tedit).Text := '';
if SetObject is tcombobox then
(SetObject as tcombobox).Text := '';
end;
------------------------------------------------------------------
procedure SetObjectTextClear(SetObject:Tobject);stdcall;
begin
if SetObject is tedit then
(SetObject as tedit).Text := '';
if SetObject is tcombobox then
(SetObject as tcombobox).Text := '';
end;
exports SetObjectTextClear;
begin
end.
------------------------------------------------------------------同样可以执行,但DLL里的过程SetObjectTextClear不起作用了.
请问这是为什么啊?
解决方案 »
- SHFileOperation API函数问题 急!!!
- dbgrid记录问题!帮忙!
- 需将dbgrid中的内容处理后打印出来,但我需进行一些处理,如将一个字段的前三个字母打印出来,在什么事件写程序,怎么写
- 大家还是熟悉下。net吧,包括工具
- 设置回车时默认按钮的语句。
- 在delphi中怎样去设计数据库存储AutoCAD图
- 怎样访问UNIX?(请教请教)
- 提问:wwGrid中的点击Title进行排序用的是谁的什么方法呢?大侠最好给出Demo,谢谢了。
- SQL问题请教:
- 有没有关于RAS 函数的Delphi 编译资料,急!
- 郁闷的菜鸟:Could not convert variant of type(null) into type(String)?
- FastReport中是否一定要设置了两遍报表totalpages才有效?
if SetObject is tedit then
(SetObject as tedit).Text := '';
if SetObject is tcombobox then
(SetObject as tcombobox).Text := '';
这几行没有起作用.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons,StdCtrls;
procedure SetObjectTextClear(SetObject:Tobject);stdcall;
begin
if SetObject.ClassName='TEdit' then
TEdit(SetObject).Text := '';
end;
{$R *.res}
exports SetObjectTextClear;
begin
end.
====================================================================var
Form1: TForm1;
procedure SetObject(SetObject:Tobject); stdcall;
implementation{$R *.dfm}procedure SetObject(SetObject:Tobject); external 'project1.dll' name 'SetObjectTextClear';
procedure TForm1.Button1Click(Sender: TObject);
begin
SetObject(edit1)
end;
对于原来的代码
//////////////////////
procedure SetObjectTextClear(SetObject:Tobject);stdcall;
begin
if SetObject is tedit then
begin
(SetObject as tedit).Text := '';
end
else begin
showmessage('ok');/////////判断到(SetObject is tedit)为假
end;
end;
//////////////////////////
写在程序中时(SetObject is tedit)为真,
但写在DLL中里(SetObject is tedit)为假,
可以说说你对这的看法吗?