小编Ros*_*san的帖子

Delphi引用子类的计数

说我有这样的情况:

ITest = interface
 procedure somethingHere();
end;

TImpl = class(TInterfacedObject, ITest)
 procedure somethingHere();
end;

TImplSub = class(TImpl)

end;
Run Code Online (Sandbox Code Playgroud)

鉴于上面的代码,如果我不使用try-finally语句,我可以使用这种代码而不会有任何内存泄漏:

var a: ITest;
begin
 a := TImpl.Create;
end;
Run Code Online (Sandbox Code Playgroud)

子类是否相同?

var a: ITest;
begin
 a := TImplSub.Create;
end;
Run Code Online (Sandbox Code Playgroud)

我认为由于TImplSub是TImpl的子类,因此TImplSub从父亲那里继承了TInterfacedObject和ITest.以上代码是否泄漏?

这可能没有关系,但我如何检查上面的代码是否泄漏?

delphi

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

Delphi代码完成失败,使用匿名方法

请创建一个新的FMX应用程序,添加一个按钮和一个备忘录来运行此示例.我有这个代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
  TTask.Run(procedure
            var
              client: TIdHTTP;
              result: string;
            begin
              client := TIdHTTP.Create(nil);
              try
                try
                  client.ReadTimeout := 4000;
                  client.ConnectTimeout := 4000;
                  result := client.Get('a valid url here just as test');
                  TThread.Synchronize(nil, procedure
                                           begin
                                             Memo1.Lines.Add(result);
                                           end);
                except
                  on E: Exception do
                    begin
                      TThread.Synchronize(nil, procedure
                                           begin
                                             Memo1.Lines.Add(E.Message);
                                           end);
                    end
                end;
              finally
                client.Free;
              end;
            end);
end;
Run Code Online (Sandbox Code Playgroud)

它按预期工作,但问题出在IDE中.如果我将光标放在匿名函数体内的某处,我会自动关闭finally语句.

我怎样才能解决这个问题?


首先我在这里

在此输入图像描述

然后我按回车,我有这个!

在此输入图像描述

如果将光标放在行的开头而不是行的末尾,则可以添加新的空格而不完成.如何解决这个问题呢?好吧,我发现问题发生是因为有这样的代码:

TThread.Synchronize(nil, procedure
                         begin
                           Memo1.Lines.Add(result);
                         end);
Run Code Online (Sandbox Code Playgroud)

如果删除此代码,问题就不会再发生了.这是IDE中的错误吗?

delphi delphi-10.2-tokyo

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

Delphi 64bit mac os app

有没有针对Mac OS平台的应用程序商店的修复程序?我使用Firemonkey创建我的应用程序但是我已经有一段时间无法上传我的作品了.有关苹果兼容性的警告但仍然没有!

从2018年6月1日起,需要 64位版本,但我们是八月份,但仍然没有.

我已经看到David Nottage对android sdk目标进行了临时修复.我测试过,因为我也需要安卓.它改变了一些库和清单.我是否必须使用mac os应用程序执行类似的操作?

网上有教程吗?


我搜索了很多,但我没有成功.也许是我,我在google搜索的东西很弱,但没有.

delphi firemonkey

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

Delphi JSONValue获得价值

我已经用代码到达了这里:

JSONArray := TJSONObject.ParseJSONValue(Text) as TJSONArray;

for var JSONValue in JSONArray do
  begin
    ListBox1.Items.Add(JSONValue.Value);
  end;
Run Code Online (Sandbox Code Playgroud)

请注意,Text := '[{"jahre":2},{"jahre":4}],{"jahre":15}]'这是有效的JSON格式。如何获得列表中的2019年和2018年物品?

使用上面的代码,我在列表框中得到了白色项目。

delphi

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

标签 统计

delphi ×4

delphi-10.2-tokyo ×1

firemonkey ×1