另外,往函数传数组参数时,怎么传过去的值都依次改变了:
左边为传到函数里的值,右边为未传之前的值
E[5]=0
E[4]=E[3]
E[3]=E[2]
E[2]=E[1]
...

解决方案 »

  1.   

    use form1
    form1.你的过程名(除了private的)可能你忽略了下标0
    最好贴出代码来.
      

  2.   

    unit 2 调用unit1

    implementation 下写
    uses unit1;就行了
      

  3.   

    在USES中加入要引用的FORM的UNIT名。
    就可以用它定义的函数(非Private)
      

  4.   

    忘写了,然后就可调用unit1 的form1了,
    用法为form1.------第二个问题没看明白
      

  5.   

    unit1
    ...
    uses unit2;
    ...
    form2.过程名称
    ...
    unit2
    ...
    form2
    ...
      

  6.   

    我用了USE UNIT1啊
    可是就是认不出来
    过程是在FORM1的{$R *.DFM}后面定义的,这没错吧?
      

  7.   

    我用了USE UNIT1啊是用uses才对。第二个问题没看懂!
      

  8.   

    第一个FORM里的:
    unit l1;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Menus;type
      Tform1 = class(TForm)
        MainMenu1: TMainMenu;
        N1: TMenuItem;
        N2: TMenuItem;
        N3: TMenuItem;
       procedure N2Click(Sender: TObject);
       procedure N3Click(Sender: TObject);
       private
        { Private declarations }
      public
     { Public declarations }
      //procedure traninput(x:string; var i:integer;var e:array of integer);
      //procedure second(x:array of integer;j:integer;var sec:integer;i:integer);  end;var
      form1: Tform1;implementation{$R *.DFM}
    procedure second(x:array of integer;j:integer;var sec:integer;i:integer);
    begin
      if j<i
      then
       begin
        if x[j]=x[2*j+1]
        then
         begin
          if (x[2*j]>sec) and (x[2*j]<>x[j])
          then
           sec:=x[2*j];
          second(x,2*j+1,sec,i);
         end;
        if x[j]=x[2*j]
        then
         begin
          if (x[2*j+1]>sec) and (x[2*j+1]<>x[j])
          then
           sec:=x[2*j+1];
          second(x,2*j,sec,i);
         end;
       end;
    end;//求第二大数的递归过程
    ...
    第二个FORM的:
    ....
    implementationuses l1, Unit3;
    {$R *.DFM}
    procedure TForm2.Button1Click(Sender: TObject);
    var e:array[0..100] of integer;
     i,j,sec:integer;
    begin
     form2.memo1.lines.clear;
     i:=0;
     sec:=-999999;
     traninput(edit1.text,i,e);
     ...
      

  9.   

    第二个FORM的:
    ....
    implementationuses unit l1, Unit3;