http://expert.csdn.net/Expert/topic/2306/2306168.xml?temp=.4407312

解决方案 »

  1.   

    刚刚测试了一下,如下代码:unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
      Dialogs, StdCtrls;type
      TFrame2 = class(TFrame)
        Button1: TButton;
      private
        { Private declarations }
      public
        { Public declarations }
        Procedure aaa ;
        Procedure aaaa(vStr : String);
      end;implementation{$R *.dfm}{ TFrame2 }procedure TFrame2.aaa;
    begin
      //
      ShowMessage('a');
    end;procedure TFrame2.aaaa(vStr: String);
    begin
      ShowMessage(vStr);
    end;end.unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Unit2;type
      TForm1 = class(TForm)
        TFrame21: TFrame2;
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      TFrame21.aaa;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      TFrame21.aaaa('HOHO....');
    end;end.
    ////////////
    完全可以。注意,你应该将Frame通过右键,添加到组件面板上,它就相当于一个控件了。
      

  2.   

    Tframe_jzmx_pic.create(self).xx(1);
     拿分来!!!
      

  3.   

    注意,你调用的时候,应该注意以前几点:
    No.1:不应该是私有类型里的声明;
    No.2:另,你需要将其加到面板上,那样不容易出错。如果你没有放的话,那就不能调用:)
    对于第二个问题:你点Frame右键 点Add To Platte;
      

  4.   

    我认为:
    1:在Tframe的单元中并没有创建frame;(可以看看Tfrom单元,肯定有var from:tfrom1 之类的)
    2:所以你应该先创建再调用其中的函数.
      

  5.   

    frm_dm_n.DataModule1.adoqry_jzmx_pic.MoveBy(50 * (k-1));
    //////////////////////////////
    这样的语句不应该写在循环里面
      

  6.   

    to yanlls(拒绝日货(美女除外)) ( ) :
    我的Tframe_jzmx_pic 在调用这个xx前已经存在了呀!
      

  7.   

    我的frame是替换到 panel1上的代码如下 :
     if frm <> nil then
               frm.Free;
             frm := Tframe_jzmx_pic.Create(Panel1);
             frm.Align := alClient;
             frm.Parent := Panel1;
      

  8.   

    to yanlls(拒绝日货(美女除外)) : 我在调用xx前 已经有了这个实例了。
      

  9.   

    TO senhor(百合) ( ) :你测试的 上 FORM 我的是FRAME
      

  10.   

    我测试的是Form + Frame.
    其实,只要是做为一个控件时。(你点Frame右键 点Add To Platte;)
    那么,它完全可以应用在另外一个Frame上。
    :)
      

  11.   

    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
      Dialogs, StdCtrls;type
      TFrame2 = class(TFrame)
     ~~~~~~~~~~~~~~~~~~~~~~~~~~//Frame;
        Button1: TButton;
      private
    type
      TForm1 = class(TForm)
        TFrame21: TFrame2;
         ~~~~~~~~~~~~~~~~~~//Frame已经加到了控件面版上了。
        Button1: TButton;
      

  12.   

    TO  FrameSniper(§绕瀑游龙§) 
    你倒分吧。信誉分又上去了?我非给你蹄光头不成。
      

  13.   

    To FS
    还不是为了帮助别人吗?
    ......
    你管的真多啊。小心我把你的信誉分给降成0,封杀了你。