如何在一个窗体中定义一个过程,让另一个窗体调用? (50分)

  • 主题发起人 主题发起人 寻找
  • 开始时间 开始时间

寻找

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在一个窗体中定义一个过程,让另一个窗体调用?
在public中定义有这样的错误
[Error] DatumUnit.pas(69): Unsatisfied forward or external declaration: 'TfrmDatum.aa'
 
在public
定义即可
 
procedure ShowAWin;
var
f:TForm;
begin
f:=TForm.Create(nil);
f.ShowModal;
f.Free;
end;
 
给你举个例子:
unit1{
procedure abc;
implement;
procedure abc;
begin
end;
}
unit2{
uses unit1;
implement;
abc;
}
调用function类似
也可以在public中声明
 
在implement或在public下定义有这样的错
[Error] DatumUnit.pas(7): Declaration expected but 'USES' found
 
////unit1
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure test;
end;

var
Form1: TForm1;
........

////unit2
........
implementation

{$R *.dfm}
uses unit1;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.abc;//注意,必须保证Form1已创建
end;
 
你的窗體類名肯定是TfrmDatum.
public
procedure aa;

procedure TfrmDatum.aa;//不要忘記窗體類名
begin
....
end;
設此單元名為unit1;
別的單元調用,在那單元上,首先應加
uses unit1;
用的時侯應為
frmDatum.aa;//不要忘記窗體名
 
TO zxb200
procedure Tfrmdatum.aa();
是的窗体是MDI子窗体,用你的方法也有这样的错误

[Error] DatumUnit.pas(75): Undeclared identifier: 'aa'
 
你要在當前窗口中聲明,不要忘記
在public下加
procedure aa;
因為你要將其聲明為公開過程。
 
多人接受答案了。
 
后退
顶部