我把一些常用的函数过程写到了一个form中,然后其他的窗体退过继承这个窗体进行使用。可不是可以只继承pas?不要form? 其中下面这个自定义过程,是用来创建显示窗体的,但我发现我在其它窗体 这样 JsShowFormModal(TFMain,Famin); 进行显示时,两个窗体间会无法传递变量,但可能正常显示。请高手指点要怎么解决。procedure TFJL.JsShowFormModal(b:TFormClass;s:TForm);   //创建Modal窗体
begin
  Application.CreateForm(b,s);
  s.ShowModal;
  s.Free;
end;

解决方案 »

  1.   

    要继承基类窗体,不能只继承pas,传值的方法很多,可以写一个公共接口,将信息传过去,如果你每个窗体的信息都不一样,那就需要临行设计了
      

  2.   

    你直接把一些常用的函数过程写到了一个pas中不就行了,干嘛写在Form中?
    unit XXX_Share_u;interfaceuses Classes, dbClient, Controls, ComCtrls, bsSkinMenus, Menus;const
       ...
    type
       ...function EasyWay(const aShowInfo: string; aFocusControl: TWinControl = nil): boolean;
    function SaveMessageAndExit(var Variables: string; const Value: string): boolean;//共享数据
    var
        icds_sblroot: TClientDataSet; //标志字典数据implementationuses SysUtils, Variants;var
        iCount: Integer;function EasyWay(const aShowInfo: string; aFocusControl: TWinControl = nil): boolean;
    begin
        ...
    end;function SaveMessageAndExit(var Variables: string; const Value: string): boolean;
    begin
        result := true;
        Variables := Value;
    end;...initialization
        ...
    finalization
        ...
    end.
      

  3.   

    只继承PAS为何还要在FORM中进行?
    在PAS中继承就完了呗。
      

  4.   

    如果你只是函数和过程的共享,直接写个Share.pas就是了,除非你有控件需要生成、显示
      

  5.   

    常用的函数全部放到一个控件里面, 要用的时候直接拖上去, 连USE 都省了.
      

  6.   

    可不是可以只继承pas?不要form?
    可以。