如何使用Delphi检查对象的字段是否为TList?
我试过用这个
var
c : TRttiContext;
t : TRttiType;
f : TRttiField;
begin
c := TRttiContext.Create;
t := c.GetType(Self.ClassType);
for f in t.GetFields do begin
//check if the field is TList<T>
//check also the Generic type T
end;
end;
我有一个Delphi类
type
TAnotherClass = class
end;
TMyClass = class
function Foo: TAnotherClass;
end;
function TMyClass.Foo: TAnotherClass;
begin
Result := TAnotherClass.Create;
end;
现在我想通过“dwsRTTIExposer.pas”公开这个类:
myUnit.ExposeRTTI(TypeInfo(TMyClass));
myUnit.ExposeRTTI(TypeInfo(TAnotherC
如何在Delphi中做到这一点:
procedure ToggleVisibility(ControlClass : TControlClass);
var
i : integer;
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is ControlClass then
ControlClass(Components[i]).Visible := not Control(Components[i]).Visible;
end;
在这种情况下,编译器不允许强制转换。有什么想法吗?
我使用的是Del
有没有办法在Delphi 7中获取数组/分隔字符串中的类/对象的给定方法的参数名称?就像这样:
var
s : string;
aSL : TStringList;
begin
...
// using rtti calls in TMethodUtility.collectParamNames
s := TMethodUtility.collectParamNames( TStringList.addObject );
// or
TMethodUtility.collectParamNames( TStringList.addObject, aSL );
.
我正在使用用于Delphi/C++Builder的EurekaLog bug捕获器。他们的所有例子都是在Delphi中,我使用的是C++Builder。下面的Delphi代码是导致软件异常的示例之一。我试图将其转换为下面的C++,但是我的代码是错误的。你能给我看一下正确的C++代码吗?
来自EurekaLog的Delphi代码
type
EMyException = class(Exception);
Procedure TForm. ButtonClick(Sender: TObject);
begin
raise EMyException.Create('Error Mes
我正在使用python4delphi。如何从封装的Delphi类函数返回对象?
代码片段:
我有一个简单的Delphi类,我把它包装成Python脚本,对吧?
TSimple = Class
Private
function getvar1:string;
Public
Published
property var1:string read getVar1;
function getObj:TSimple;
end;
...
function TSimple.getVar1:string;
begin
result:='hello';
end;
fun
为什么变量被声明为TStrings并被创建为TStringList
例如: var sl声明为TStrings,但创建为TStringList
var
sl : TStrings;
begin
sl := TStringList.Create;
// add string values...
sl.Add( 'Delphi' );
sl.Add( '2.01' );
// get string value using its index
// sl.Strings( 0 ) will return
// 'Delp