我不会!!去www.delphi32.com上去找高手!!!

解决方案 »

  1.   

    先定义一个全局变量i
    再写一个函数
    function s():boolean;
    begin
    s:='myform';
    myform:=Tmyform.create(self);
    with  tform(findcomopent(s))
    begin
    com.name:=s+inttostr(i));
    com.width:=600;
    ....
    属性赋值省了
    end;
    end;创建时调用比如我要创建myform1
    i:=1;
    s();
      

  2.   

    上面兄弟的做法還可以,不過功能不是很好。
    如果我要創建20個窗口(myform1....myform20),
    哪上面的函數是不能實現的。
    關鍵語句:myform:=TMyform.create(self);在函數中不好處理。
    如果能寫出這樣的函數:createform(formname:string);
    直接調用createform('myform1'),createform('myform2')....
    createform('myform20')就能創建20個窗口就好
    注:myform1...myform2是在設計狀態下已創建好的。
    然後從Auto-createForms移到avilable-forms中,然後再動態創建.最後非常感謝所有參與的人。
      

  3.   

    偶曾经干过这样一件事拿出来看看不知道你说的是不是这意思:TactiveScreenType=(acchildform1,acchildform2,acchildform3,acchildform4,acchildform5);
    procedure Tfrmmain.SetActiveScreen(Sender:TObject;itemtag:integer);
    begin
        if Assigned(ActiveScreen) then
        begin
            Tmenuitem(OldSender).Checked :=false;
            ActiveScreen.Free ;
            ActiveScreen:=nil;
        end;
            case ActiveScreenType of
            acchildform1:
            begin
                ActiveScreen:=Tfrmrk.Create(self);
                Tfrmrk(ActiveScreen).PageControl1.ActivePageIndex := itemtag ;
                //ActiveScreen.Show ;
                Tfrmrk(ActiveScreen).PageControl1.OnChange(self);
            end;
            acchildform2:
            begin
                ActiveScreen:=Tfrmck.Create(self);
                //ActiveScreen.Show ;
                Tfrmck(ActiveScreen).TabControl1.TabIndex := itemtag ;
                Tfrmck(ActiveScreen).TabControl1.OnChange(self);
            end;
            acchildform3:
            begin
                ActiveScreen:=Tfrmcx.Create(self);
                //ActiveScreen.Show ;
                Tfrmcx(ActiveScreen).PageControl1.ActivePageIndex := itemtag ;
                Tfrmcx(ActiveScreen).PageControl1.OnChange(self) ;
            end;
            acchildform4:
            begin
                ActiveScreen:=Tfrmprint.Create(self);
                //ActiveScreen.Show ;
                Tfrmprint(ActiveScreen).TabControl1.TabIndex := itemtag ;
                Tfrmprint(ActiveScreen).TabControl1.OnChange(self);
            end;
            acchildform5:
            begin
                ActiveScreen:=Tfrmyp.Create(self);
                //ActiveScreen.Show ;        end;
            end;
            ActiveScreen.Width := screen.Width - CoolBar1.Width -8 ;
            ActiveScreen.Height := Image1.Height ;
            ActiveScreen.Top := CoolBar1.Top ;
            ActiveScreen.Left := 0 ;
            ActiveScreen.Show ;
            OldSender:=Sender;
            
    end;
    还有一些过程就不贴了领会精神,领会精神……
      

  4.   

    hwkknd(白开水)的方法不好处理,如果有100个acchildform,难道要用100个case
    语句吗?