Child.filepath:=Name; //将打开的文件名赋予打开的子窗口,因为后面经常要用
Child := TMDIChild.Create(Application);  还没建立就赋值怎么能对呢? 

解决方案 »

  1.   

    Child.filepath:=Name; 
    应该在Create后吧!?  
      

  2.   

    事实上我连 self.Capition也出不来,
    太奇怪了
      

  3.   

    我是在Loaded下面
    showmessage(self.filepath);
    showmessage(self.Captition);
      

  4.   

    谁知道?
    怎么现在 CSDN多了那么多规矩,连自己回帖都不能大于三次
      

  5.   

    1、先Create,再赋值。
    2、Loaded下面当然出不来,在onshow的地方显示就可以了。
      

  6.   

    Loaded不出来那怎么办啊,
    我的DBGird还要根据它来显示数据库呢
    再说我在ChildForm添加个按钮,结果按钮按下时候我也得不到
      

  7.   

    我觉得 首先应该 把 filepath 写成 child 的属性,
       按钮是怎么回事啊??
      

  8.   

    我用的没有问题啊!我是在
      Child := TMDIChild.Create(Application);
    之后使用
    Child.filepath:=Name; //将打开的文件名赋予打开的子窗口,因为后面经常要用
    的,然后在childwin的click事件里showmessage(self.filepath);
    的。  
      

  9.   

    filepath 写成 child 的属性是什么意思?
    我的filepath是string
      

  10.   

    //我试过没有问题
    interfaceuses Windows, Classes, Graphics, dialogs,Forms, Controls, StdCtrls, ExtCtrls;type
      TMDIChild = class(TForm)
        Memo1: TMemo;
        Panel1: TPanel;
        Button1: TButton;    procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        filepath:String;
      end;implementation{$R *.DFM}procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
    end;procedure TMDIChild.Button1Click(Sender: TObject);
    begin
    showmessage(self.filepath);
    end;end.
    unit Main;interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
      StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
      ActnList, ToolWin, ImgList;type
      TMainForm = class(TForm)
        MainMenu1: TMainMenu;
        File1: TMenuItem;
        FileNewItem: TMenuItem;
        FileOpenItem: TMenuItem;
        FileCloseItem: TMenuItem;
        Window1: TMenuItem;
        Help1: TMenuItem;
        N1: TMenuItem;
        FileExitItem: TMenuItem;
        WindowCascadeItem: TMenuItem;
        WindowTileItem: TMenuItem;
        WindowArrangeItem: TMenuItem;
        HelpAboutItem: TMenuItem;
        OpenDialog: TOpenDialog;
        FileSaveItem: TMenuItem;
        FileSaveAsItem: TMenuItem;
        Edit1: TMenuItem;
        CutItem: TMenuItem;
        CopyItem: TMenuItem;
        PasteItem: TMenuItem;
        WindowMinimizeItem: TMenuItem;
        StatusBar: TStatusBar;
        ActionList1: TActionList;
        EditCut1: TEditCut;
        EditCopy1: TEditCopy;
        EditPaste1: TEditPaste;
        FileNew1: TAction;
        FileSave1: TAction;
        FileExit1: TAction;
        FileOpen1: TAction;
        FileSaveAs1: TAction;
        WindowCascade1: TWindowCascade;
        WindowTileHorizontal1: TWindowTileHorizontal;
        WindowArrangeAll1: TWindowArrange;
        WindowMinimizeAll1: TWindowMinimizeAll;
        HelpAbout1: TAction;
        FileClose1: TWindowClose;
        WindowTileVertical1: TWindowTileVertical;
        WindowTileItem2: TMenuItem;
        ToolBar2: TToolBar;
        ToolButton1: TToolButton;
        ToolButton2: TToolButton;
        ToolButton3: TToolButton;
        ToolButton4: TToolButton;
        ToolButton5: TToolButton;
        ToolButton6: TToolButton;
        ToolButton9: TToolButton;
        ToolButton7: TToolButton;
        ToolButton8: TToolButton;
        ToolButton10: TToolButton;
        ToolButton11: TToolButton;
        ImageList1: TImageList;
        procedure FileNew1Execute(Sender: TObject);
        procedure FileOpen1Execute(Sender: TObject);
        procedure HelpAbout1Execute(Sender: TObject);
        procedure FileExit1Execute(Sender: TObject);
      private
        { Private declarations }
        procedure CreateMDIChild(const Name: string);
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;implementation{$R *.DFM}uses ChildWin, About;procedure TMainForm.CreateMDIChild(const Name: string);
    var
      Child: TMDIChild;
    begin
      { create a new MDI child window }
      Child := TMDIChild.Create(Application);
      Child.Caption := Name;
      Child.filepath:=name;
      if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
    end;procedure TMainForm.FileNew1Execute(Sender: TObject);
    begin
      CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
    end;procedure TMainForm.FileOpen1Execute(Sender: TObject);
    begin
      if OpenDialog.Execute then
        CreateMDIChild(OpenDialog.FileName);
    end;procedure TMainForm.HelpAbout1Execute(Sender: TObject);
    begin
      AboutBox.ShowModal;
    end;procedure TMainForm.FileExit1Execute(Sender: TObject);
    begin
      Close;
    end;end.