求助:delphi爱好者看一下,看看怎么解决最好!!拜托!拜托!

willmac 2001-02-19 04:05:00
如何知道窗体内的控件具备何种属性,或方法?
如:cuttoclipboard(举例而已,不限此种属性)
如果具备则成功调用
如: activecontrol.cuttoclipboard
我现在采用try except结构,关键
activecontrol.cuttoclipboard这句话,不让编译
怎么办?
求解...
求解......
求解...........
...全文
603 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Danphel 2001-02-25
  • 打赏
  • 举报
回复
?关于NT的NetBIOS错误『高手请入』(Danphel) 2-24 11:47 数据库开发类
有谁能帮我解答?分数可以再加!!!
BaldZhang 2001-02-21
  • 打赏
  • 举报
回复
to willmac:
可参考以下产品:
www.infolight.com.cn --> Visual DBTools

这个问题还是用IS解决起来比较方便,因为在VCL库中,一些相同的功能都已经基本上被提到一个共同的基类中去了,所以,要尽量利用这些共同的东西,否则,程序员又成了写代码的机器了
willmac 2001-02-19
  • 打赏
  • 举报
回复
方法部分已经解决了,
我在组件山定义了一个消息接口
通过对该组件进行消息传递达到
组件,进行方法的调度
如:sendmessage(activecontrol.hwnd,方法名,参数1,参数2)
如果有更简单的方法
欢迎讨论!
willmac 2001-02-19
  • 打赏
  • 举报
回复
高手快来呀
willmac 2001-02-19
  • 打赏
  • 举报
回复
我正在做一个组件似的控制系统模型
由于每一个组件都由用户自行设计
组件的属性方法完全由用户生成
有我们自行设计的组件模型部分
没有任何问题,包括参数设置
运行设置都可以通过,唯独子定义组件部分
由于有无未知,属性未知,方法未知,
我唯一可以得到的只是焦点组件的句柄,或入口地址
听说,韩国人用delphi搞过一套可视化的delphi ide,我的设计
模式和它比较像,不知道谁有它的例程,或相应的解决方案。
我的要求不多,只要解决这点就可以了。
其它部分就我自己搞定了。
这里先谢谢大家了
z_jingxin 2001-02-19
  • 打赏
  • 举报
回复
连续关注!
z_jingxin 2001-02-19
  • 打赏
  • 举报
回复
继续关注!
z_jingxin 2001-02-19
  • 打赏
  • 举报
回复
关注!
z_jingxin 2001-02-19
  • 打赏
  • 举报
回复
只能判断有无何种类型的方法:
begin
if TypeInfo(TMouseEvent)=nil then
caption:='无该类型方法'
else
caption:='有该类型方法';
end;

to willmac:你是在什么情况下需要这种用法的?
Kingron 2001-02-19
  • 打赏
  • 举报
回复
GetProperties
GetAttributes。
我也不知道怎么用,只知道帮助上有这两个函数。
Kingron 2001-02-19
  • 打赏
  • 举报
回复
有一个TypeInfo()函数,不知道怎么用。
willmac 2001-02-19
  • 打赏
  • 举报
回复
如果是方法呢?
我要调用这个方法用什么命令呢?
况且你只是让我知道有这个属性
我要把这个属性进行附值,又怎么进行呢?
z_jingxin 2001-02-19
  • 打赏
  • 举报
回复
举个例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,typInfo;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function HasPro(AComp:TComponent;Apro:string):boolean;
var
Form1: TForm1;
implementation
{$R *.DFM}
function HasPro(AComp:TComponent;Apro:string):boolean;
Var propInfo:PPropInfo;
begin
PropInfo:=GetPropInfo(AComp.ClassInfo,APro);
Result:=PropInfo<>nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if HasPro(button1,'caption') then
showmessage('有此属性!')
else
showmessage('没有此属性!')
end;
end.
z_jingxin 2001-02-19
  • 打赏
  • 举报
回复
完全可以,但是较为复杂:
需要用到运行期类型信息(Runtime Type Information)简称RTTI,
在单元TypInfo.pas中定义了RTTI信息的结构,仔细看看吧!不过只
可以看Published特性。
willmac 2001-02-19
  • 打赏
  • 举报
回复
的确。
我不知道这个窗体有那些东西
如果知道,可以用kingron的方法解决
总不能穷举吧
有没有可以查找属性的函数或方法呢?
如果rh你知道,贴上来看看吧
rh 2001-02-19
  • 打赏
  • 举报
回复
2 Kingron(WinAPI) :
他要的是直接判断属性和方法是否存在
你的方法好象不行
Kingron 2001-02-19
  • 打赏
  • 举报
回复
用 is 判断!用As转换。
if Activecontrol is Tbutton then
(ActiveControl as tbutton).Click;
rh 2001-02-19
  • 打赏
  • 举报
回复
不知道具体怎样实现
在《delphi开发人员指南》里好象有……

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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