小编Fra*_*anz的帖子

我可以将Class类型作为过程参数传递

我想创建一个函数,将某个类的所有名称作为字符串列表返回.基于之前的解决方案/问题,我尝试使用此代码但没有成功

function  GetClassElementNames (TObject ) : TStringlist ;
var
  LCtx : TRttiContext;
  LMethod : TRttiMethod;
begin
  try
    LCtx:=TRttiContext.Create;
    try
      // list the methods for the any class  class
      for LMethod in  LCtx.GetType(TObject).GetMethods do
        result.add(LMethod.Name);
    finally
      LCtx.Free;
    end;
  except
    on E: Exception do
      result.add (E.ClassName + ': ' +  E.Message);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi parameter-passing

4
推荐指数
1
解决办法
5752
查看次数

Indy10 Free Pascal

我尝试按照安装Indy10和Lazarus的说明进行操作.下载Indy 10下载后,使用正确的密码我只看到Delphi代码,没有名为lazarus或freepascal的文件夹.Indy10的Lazarus版本已被删除吗?

delphi freepascal indy lazarus indy10

3
推荐指数
1
解决办法
456
查看次数

方法重载和默认参数,Delphi中的任何其他选项?

我在程序中得到了一组A,B,C,D这样的数字,有时我需要计算几个数字的总和,如:

    function DoIt2 (a, b : Integer) : Integer ; overload
    begin
        result := a +b ; 
    end;


    function DoIt3 (a, b, c : Integer) : Integer ; overload
    begin
        result := a +b +c  ; 
    end;
Run Code Online (Sandbox Code Playgroud)

我的问题涉及很多DoIt的功能.我不能使用例如IntegerList,因为我需要知道什么是A和B等等.....与无尽的函数重载相比,有什么好的解决方案吗?

delphi

3
推荐指数
1
解决办法
148
查看次数

delphi从枚举中选择一个随机值

我需要一个用Java JAVA CODE解决方案的delphi解决方案

type
 TColors = (red, green, blue, white, purple, orange, yellow, black);
type
 TForm1 = class(TForm)
 Button1: TButton;
 Memo1: TMemo;
 procedure Button1Click(Sender: TObject);
 private
 { Private-Deklarationen }
 public
 { Public-Deklarationen }
 end;

 var Form1: TForm1;

 implementation

 {$R *.fmx}

 function RandomColor: TColors;
 begin
  result := blue;  //   make this random value from enum ????
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
  s := GetEnumName(TypeInfo(TColors), integer(RandomColor));
 Memo1.Lines.Add(s);   ///  print random color to memo 
end;
Run Code Online (Sandbox Code Playgroud)

delphi

3
推荐指数
1
解决办法
1147
查看次数

在Delphi应用程序中检测madexcept

我可以通过仅分析exe文件来检测whex madexcept是否在delphi应用程序中使用?

是否有一种简单的方法是向我的应用程序添加几行代码并通知最终的exe文件用户是否使用了madshi madexcept

delphi madexcept

2
推荐指数
2
解决办法
1436
查看次数

如何使用结果与Query处理ADO查询而没有结果?

我使用MSSQL和ADO运行各种SQL语句.

代码序列如下所示:

aADOQuery.Active := False;
aADOQuery.SQL.Text := ' MY SQL STATEMENT ';
aADOQuery.ExecSQL;
aADOQuery.Active := True;
Run Code Online (Sandbox Code Playgroud)

如果SQL返回结果为空,则最后一条语句失败.如何检查这种情况以避免运行时错误?

注意:SQL语句来自用户键入SQL的备忘录.

sql sql-server delphi ado

2
推荐指数
1
解决办法
3569
查看次数

搜索通用列表

我很难理解从GENERIC SEARCH修改解决方案, 因为我的类更复杂,我需要创建几个不同的搜索功能

procedure TForm1.Button1Click(Sender: TObject);
var
  activities: TList<TActivityCategory>;
  search: TActivityCategory;
begin
  activities := TObjectList<TActivityCategory>.Create(
    TDelegatedComparer<TActivityCategory>.Create(
     function(const Left, Right: TActivityCategory): Integer
       begin
       Result := CompareText(Left.Name, Right.Name);
       end)); 

  .....
Run Code Online (Sandbox Code Playgroud)

假设我的TActivityCategory看起来像

  TActivityCategory = class
    FirstName  : String;
    Secondname  : String;
    onemore .....
  end;
Run Code Online (Sandbox Code Playgroud)

如何在我的activtity类中实现搜索每个String?

delphi

2
推荐指数
1
解决办法
1154
查看次数

快速查找字符串列表中的重复项

什么是在Tstringlist中查找重复项的最快方法.我获得了在Stringlist中搜索重复项所需的数据.我目前的想法是这样的:

    var  TestStringList, DataStringList  : TstringList;


    for i := 0 to  DataStringList.Items-1 do
    begin
        if TestStringList.Indexof(DataStringList[i])< 0 < 0 then
        begin
          TestStringList.Add(DataStringList[i])
        end
        else
        begin
           memo1.ines.add('duplicate item found');
        end;

    end;
   ....
Run Code Online (Sandbox Code Playgroud)

delphi

2
推荐指数
2
解决办法
6782
查看次数

将整数值转换为枚举类型

我可以确定delphi按升序将整数分配给我创建的任何枚举吗?

type
  TMyType = (mtFirst, mtSecond, mtThird); 
Run Code Online (Sandbox Code Playgroud)

肯定mtFirts总是TmyType(1)???

我试着写代码 myTypeselection := TMyType(MyRadiogroup.ItemIndex+1);

但我失败的是,整数数值在某种程度上是混合的.

delphi

2
推荐指数
2
解决办法
2802
查看次数

从 TDictionary 类中获取所有键作为单个字符串

有没有更聪明的方法(用更少的代码)从 TDictionary 中获取所有键作为单个字符串,以逗号分隔

var
  FDicList : TDictionary <String, Integer>;
  KeyStrList: TStringlist;
  KeyName: string;
begin

  /// result as comma text
  KeyStrList := TStringlist.Create;
  try
    for KeyName in FDicList.Keys do
      KeyStrList.Add(KeyName);

    All_keys_as_string := KeyStrList.CommaText;
  finally
    KeyStrList.Free;
  end; 

end;
Run Code Online (Sandbox Code Playgroud)

delphi

2
推荐指数
1
解决办法
418
查看次数