gpt4 book ai didi

delphi - Delphi中如何共享函数?

转载 作者:行者123 更新时间:2023-12-03 15:38:59 24 4
gpt4 key购买 nike

例如,我为我的表单编写了几个函数。现在,我需要另一种形式的完全相同的功能。那么,我如何在两种形式之间共享它们呢?如果可能的话,请提供一个简单的例子。

最佳答案

不要将它们放入您的表单中。将它们分开并放入一个公共(public)单元中,然后将该单元添加到您需要访问它们的 uses 子句中。

这是一个简单的示例,但您可以看到许多执行此操作的 Delphi RTL 单元(例如 SysUtils)。 (您应该学习使用 Delphi 中包含的 VCL/RTL 源代码和演示应用程序;它们可以比在这里等待答案更快地回答您发布的许多问题。)

SharedFunctions.pas:

unit 
SharedFunctions;

interface

uses
SysUtils; // Add other units as needed

function DoSomething: string;

implementation

function DoSomething: string;
begin
Result := 'Something done';
end;

end.

UnitA.pas

unit
YourMainForm;

uses
SysUtils;

interface

type
TMainForm = class(TForm)
procedure FormShow(Sender: TObject);
// other stuff
end;

implementation

uses
SharedFunctions;

procedure TMainForm.FormShow(Sender: TObject);
begin
ShowMessage(DoSomething());
end;

end.

在比 Delphi 7 更新的 Delphi 版本中,您可以在记录中创建函数/方法:

unit
SharedFunctions;

interface

uses
SysUtils;

type
TSharedFunctions = record
public
class function DoSomething: string;
end;

implementation

function TSharedFunctions.DoSomething: string;
begin
Result := 'Something done';
end;

end;

UnitB.pas

unit
YourMainForm;

uses
SysUtils;

interface

type
TMainForm = class(TForm)
procedure FormShow(Sender: TObject);
// other stuff
end;

implementation

uses
SharedFunctions;

procedure TMainForm.FormShow(Sender: TObject);
begin
ShowMessage(TSharedFunctions.DoSomething());
end;

end.

关于delphi - Delphi中如何共享函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com