例如,我为我的表单编写了几个函数。现在,我需要另一种形式的完全相同的功能。那么,我怎样才能在两种形式之间共享它们呢?如果可能,请提供一个简单的例子。
问问题
8008 次
2 回答
14
不要把它们放在你的表格中。将它们分开并将它们放在一个公共单元中,然后将该单元添加到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.
单位A.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 版本中,您可以在 a 中创建函数/方法record
:
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;
单位B.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.
于 2013-04-20T04:13:32.550 回答
1
如果您需要表格。您可以使用继承的形式。创建一个继承父表单功能的表单。
最有趣的。父表单中的任何更改都反映了继承表单中的更改。您甚至可以继承表单控件(tbutton、tlabel 等...)。
在 GUI Delphi7. 选项“新形式”,选项“从现有形式继承”。
例子:
//MainForm.pas
type
TMainForm = class(TForm)
procedure MiFunction();
.
.
end;
//ChilForm.pas
type
TChildForm = class(TMainForm)
.
.
end;
于 2013-04-20T14:58:21.573 回答