当尝试没有文档的新组件时,我需要通过它的方法,属性和事件来试图找出它能做什么。通过IDE的Object Inspector执行此操作有点单调乏味。
是否有以更易读的格式显示此列表的实用程序?
谢谢。
答案 0 :(得分:3)
当我想知道可以做些什么时,我阅读源代码。除非有大量的继承,否则类声明将包含所有方法和属性的简洁列表。定义将告诉您希望方法如何。
另一件事是声明一个你感兴趣的类型的变量,输入它的名字和句点,然后按Ctrl + Space让Class Completion显示你可以做的一切。
答案 1 :(得分:2)
正如其他人所说,使用来源。 UML工具也会有所帮助。 但是如果你不想使用它,你可以使用这个程序(你需要Delphi 2010,并确保将RTTI添加到'Uses'子句中):
procedure DumpProps(aObject: TObject; aList: TStringList);
var
RttiContext: TRttiContext;
RttiType: TRttiType;
I: Integer;
n: integer;
props: TArray<TRttiProperty>;
begin
aList.Clear; //it must be <> nil
RttiType := RttiContext.GetType(aObject.ClassType);
props:=RttiType.GetProperties;
with aList do
begin
Append('');
Append('==========');
Append('Begin Dump');
Append('----------');
for I := Low(props) to High(props) do
begin
try
Append(props[i].Name+': '); //odd construction to see if the Getter blows
n:=Count-1;
Strings[n]:=Strings[n]+props[i].GetValue(aObject).AsString;
except
on E: Exception do
Strings[n]:=Strings[n]+' >>> ERROR! <<< '+E.Message;
end;
end;
end;
end;
上面你可以在运行时使用,如果你建立一个菜单向导,你可以在设计时获得你的信息。
HTH
答案 2 :(得分:1)
您可以使用GExperts附带的类浏览器 我还建议使用IDE或ModelMaker构建模型图。它有助于看到视觉关系。
答案 3 :(得分:1)
在欧比旺克诺比的不朽言论中 - “使用来源”。
无法替代阅读和理解组件(或任何内容)的源代码,以了解它的作用和内容。
源代码是Lingua Franca的编程。
答案 4 :(得分:0)
查看为C ++ Builder支持生成的.hpp。它类似于Delphi单元的接口部分。
答案 5 :(得分:0)
我只使用代码完成。如果你无法从属性和方法的名称中弄清楚组件的作用,那么它的设计可能很差,你最好不要使用它。此外,既然你问这个问题,我猜你没有来源。如果你不这样做,我再也不会使用该组件。你只是为自己制造麻烦。
答案 6 :(得分:-1)
有RTTI ...