写一个function放在全局段就行了啊,
在另一个unit中将写这个function的unit引用进去就行咯~

解决方案 »

  1.   

    在一个父窗体中用public来定义这些对象,然后将要用到的窗体设为子窗体,再在uses中加入那个父窗体即可。
      

  2.   

    你可以把这些事件另写在自已的自定义过程序中,放在public里, 其它的.pas要用时,就use一下这个pas就可以了用了。在form1:    { Private declarations }
      public
          procedure myclick(Sender: TObject);
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.myclick(Sender: TObject);
    begin
      showmessage('pl');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      myclick(self);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      form2.show;
    end;end.在form2:
    {$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    begin
      Form1.myclick(self);
    end;
      

  3.   

    不知道在那里寫全局變量.更不用說Function 了.請指教,謝謝!
      

  4.   

    在interface下写声明
    在implementation下写实现另:用actionlist也不错
      

  5.   

    可以建立一个没有form的unit,将你的project下所有需要用到的全局函数和过程在这里定义
    在调用的那个form中:
    implementation
     Uses dm,ufrm_main;
      

  6.   

    在unit中写一个非类成员function,并在implementation上申明,其它的地方调用就行。
      

  7.   

    在DElPHI中全局变量可以用单元引用来实现,自定义函数和过程也可以通过引用单元来实现现引用。具体的用法上面都说清楚了,我就不说了。
      

  8.   

    implementation
    声明全局变量其它form用到同样部分时,引用一下就行了 uses unit被引用单元名
      

  9.   

    但我在每個Form中都有 Button 名字都一樣的,我怎樣在這個Function中控制它們的屬性呢?謝謝!!!!
      

  10.   

    写在那里你该清楚了吧,可是Delphi里没有控件数组
    我给你个提示把,不只行不行,你自己去试好了 你操作是的数据集把,
    procdure BtnClicked(Sender:Tobject,ATable;TTabel);
    begin
    if Tbutton(Sender).Name=BtnNew then
       Table1.Append;
    if Tbutton(Sender).Name=BtnSave then
       Table1.Post;
     ……
    end;
    你自己试试!
      

  11.   

    试试这样做:新建一个项目pruject1,做好一个form1(上边包括几个form的公用控件及其代码),然后file\new\other在new items对话框中选择pruject1项,然后再选择form1,按ok,这样你就建立了继承form1的一个新form.
      

  12.   

    看你好像是在台资企业,你是深圳哪个企业的?我也在深圳的台资企业那你还是先创建一个father窗体,将你需要公用的button 在这里全部定义,以后的窗体就继承这个窗体,在这个窗体里修改button 的属性就可以了!
      

  13.   

    procedure TForm1.myclick(Sender: TObject;str_type: String;str_form: TForm);
    begin
          if Tbutton(Sender).Name=BtnNew then   '這里有錯.是為什么呢?
             begin
               str_form.BtnNew.Enabled :=False; '這里這樣寫怎么也有錯呢?
               str_form.BtnEdit.Enabled :=False; '同樣,應該怎樣寫呢? 
             End
    end;各位上面的錯誤應該怎樣改呢?謝謝!!!!
      

  14.   

    謝謝你yangpeng106你講的是一种很好的方法,不過我還是不知其它方法怎么用,
    真是笨,你可以指點一下我嗎?謝謝!!!
      

  15.   

    试试这样写   
     if sender=BtnNew then
           begin
              str_form.btnNew.Enabled:=False;
              str_form.btnNew.Enabled:=False;
           end;
      

  16.   

    哦,那地方要用引证串 
    if Tbutton(Sender).Name=‘BtnNew’ then
       Table1.Append;
      

  17.   

    我也試過,還是不行,Sender 值不會等于'BtnNew' 我點的是BtnNew控件
    而且也cell 以上的function .真不知應該怎么辦.急死了.
      

  18.   

    这个代码没有错误,在D6上通过了
    procedure TMainForm.Button1Click(Sender: TObject);begin
    if Sender = Button1 then
      AboutBox.Caption := 'About ' + Application.Title
    else 
      AboutBox.Caption := '';
    AboutBox.ShowModal;
    end;
      

  19.   


    请注意以下代码,我认为是最好的解决方法.在这些Button的OnClick(Sender:TObject)事件中如此写:(所有的
                              Button都指向一个这样的函数.)
    procedure Buttonclick(Sender:Tobject);
    begin
         ProcessButtonClick(Self,Sender);
    end;ProcessButtonClick是一个公用函数,所有的Form都用到他.
    你还需要把BtnNew,BtnEdit,BtnDel,BtnSave,BtnCancel的Tag属性设为
    0,1,2,3,4;procedure ProcessButtonClick(Form:TForm,Sender:TButton);
    begin      case Tbutton(Sender).tag of
          0:处理BtnNew被按下后发生的...
          1:处理BtnEdit被按下后发生的...
          2:处理BtnDel被按下后发生的...
          3:处理BtnSave被按下后发生的...
          end;
    end;
          你一定会问,你传的参数是TForm类型的,那么如何访问该Form上的
          BtnNew,BtnEdit,BtnDel,BtnSave,BtnCancel呢?
          有一个技巧:
          Form.FindComponent('BtnNew').Visible := false;不就可一访问了吗?
      

  20.   

    补充一下
    最后一句是:
    TButton( Form.FindComponent('BtnNew') ).Visible := false
      

  21.   

    songdan2002你上面寫的可以實現,很好用,不過我想問一個.怎么在別的form中調用呢?謝謝!!!!!