我一段程序,通过form1中的button2按纽的单击事件要弹出finfo窗口,但在编译运行时出现错误先看uni2的代码:
unit Unit2;interfaceuses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;type
 TFinfo = class(TForm)
   Label1: TLabel;
   Memo1: TMemo;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormShow(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;var
 Finfo: TFinfo;implementation
uses unit1
{$R *.dfm}procedure TFinfo.FormShow(Sender: TObject);(这就是29行)
var s:string;
begin
     memo1.Lines.Clear;
     s:=s+ 'name:'+'form1.Edit1.Text+#13+#10';
     memo1.Lines.add(s);
end;procedure TFinfo.Button1Click(Sender: TObject);
begin
      close;
end;
end.
  在编译运行是老是出现下面的错误:
[Error] Unit2.pas(29): ',' or ';' expected but 'PROCEDURE' found
请问是怎么回事?(
下面是unit1的代码:
unit Unit1;interfaceuses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;type
 TForm1 = class(TForm)
   Label1: TLabel;
   Edit1: TEdit;
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;var
 Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:='';
end;procedure TForm1.Button2Click(Sender: TObject);
begin
finfo.ShowModal
end;end.

解决方案 »

  1.   

    uses unit1后面加‘;’号!
      

  2.   

    你在unit1里面引用了unit2又在unit2里面引用了unit1像这种交叉引用是不允许的,最后将两个单元共用的代码,放在另外一个单元里面,然后供两个单元调用.
      

  3.   

    uses unit1后面少了‘;’号!
    --------------------而且楼上的交叉引用如果按楼主那样引用也是可以的。不会出现问题。
    你所说的只有放在interface后的uses里面才不允许。