小编Pet*_* W.的帖子

释放 Android 中动态创建的控件

在我的 Firemonkey 多平台应用程序中,我动态地创建了一些控件。使用它们后,我将它们销毁。

在 Windows 中,这个动态创建和销毁的进程没有问题。但是,似乎在 Android 中,下面的代码不会破坏控件,因为会弹出一个错误,说控件已经存在(当我尝试重新创建控件时,我确实看到旧控件仍然存在)。

我如何确保在 Android(和/或 iOS - 我认为它与 iOS 类似)中正确销毁控件?

for i := oParentRect.ControlsCount-1 downto 0 do
begin
  oControl := oParentRect.Controls[i];
  if (oControl is TText)
     or (oControl is TEdit)
     then
     begin           
       FreeAndNil( oControl );
       // I have also tried oControl.Free;
     end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi android firemonkey

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

Delphi 10.4 与 MacOS - 最低版本的 MacOS 和 XCode 可能吗?

我有德尔福10.4。

由于Mac硬件限制,我只能安装MacOS High Sierra。我需要安装什么 XCode 版本才能允许 Delphi 编译 iOS 应用程序?XCode 是一个多 GB 的下载,所以我希望我能得到一些关于版本的提示,而不必为不同的 XCode/SDK 版本而烦恼。

感谢您的任何提示。

delphi macos ios firemonkey

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

Delphi Records - 创建一个指向它的指针

我正在尝试查看如何创建指向简单记录的指针。

我在发布之前搜索过类似的主题,但它很混乱。

我创建了 A & B 其中是实际的记录。然后我有一个变量 C,我想它只是一个“指向这条记录的指针”。我不希望 C 存储它自己的值,而只是一个指向 A 或 B 的指针。
但是每当 C 被读取/写入时,它实际上是被写入 A 或 B,无论 C 指向哪个。

换句话说,它就像一个指向对象的指针,但在我的情况下我不需要对象。

使用 Delphi 10.3 和 10.4(如果有任何区别),请突出显示。

下面的代码在第一个 ShowMessage 上导致访问冲突。

procedure TForm1.Button2Click(Sender: TObject);
type
  TMyRecord = record
    Field1 : integer;
  end;
var
  A : TMyRecord;
  B : TMyRecord;
  C : ^TMyRecord; // how to declare this as a pointer?
begin
  A.Field1 := 1;
  B.Field1 := 2;

  C^ := A;  // psuedo code to point to A
  A.Field1 := 3; …
Run Code Online (Sandbox Code Playgroud)

delphi pascal pointers record

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

标签 统计

delphi ×3

firemonkey ×2

android ×1

ios ×1

macos ×1

pascal ×1

pointers ×1

record ×1