有一个pageControl,上面有一个TabSheet1
现在要根据x的值动态的在PageControl上添加tabSheet,
tabSheet上的东东要和TabSheet1上的一致,包括事件,当然,不包括名字应该如何做呢?

解决方案 »

  1.   

    给你个参考procedure TfrmFCP.mmiFileNewTextExecute(Sender: TObject);
    {文件:新建文本功能}
    begin
    {This will be used with the Start With New option}
      Inc(Untitleds);
      {创建NewTabSheet}
      NewTabSheet := TTabSheet.Create(PageControlFcp);
      {设置NewTabSheet属性}
      NewTabSheet.CAPTION := 'Noname' + IntToStr(Untitleds);
      NewTabSheet.Hint := 'Noname' + IntToStr(Untitleds);
      NewTabSheet.PageControl := PageControlFcp;
      PageControlFcp.ActivePage := NewTabSheet;
      PageControlFcp.ActivePage.ImageIndex:=47 ;
      //PageControlFcp.ActivePage.PopupMenu := pmActivePage;
      PageControlFcp.ShowHint := true;
      {在新页面上创建NewSynedit}
      NewSynEdit := TSynedit.Create(NewTabSheet);
      {设置NewSynedit的初始化属性}
      NewSynEditSetup(NewSynEdit);
      ActiveControl := NewSynEdit;
      NewSynEdit.Modified := false;
      FCurFile[PageControlfcp.ActivePageIndex] := NewTabSheet.CAPTION;
    end;
    procedure TfrmFCP.NewSynEditSetup(NewSE: Tsynedit);
    {文件:新建文本的初始化设置功能}
    begin
      with NewSE do
      begin
        Parent := NewTabSheet;
        ActiveLineColor:=clSilver;
        Align:=alClient;
        BorderStyle:=bsSingle;
        Color:=clWindow;
        Ctl3d:=true;
        Enabled:=true;
        font.charset:=GB2312_CHARSET;
        font.Size:=9;
        Gutter.color:=clWhite;
        Gutter.Font.Color:=clGray;
        Gutter.ShowlineNumbers:=true;
        Gutter.Visible:=true;
        HideSelection := False;
        InsertMode:=true;
        MaxScrollWidth:=1024;
        MaxUndo:=1024;
        ReadOnly:=false;
        RightEdgecolor:=clSilver;
        ScrollBars:=ssBoth;
        SelectedColor.Background:=clHighlight;
        SelectedColor.foreground:=clHighlightText;
        ShowHint:=true;
        WordWrap:=false;
        wantTabs:=true;
        OnChange := NewSynEditChange;
        if mmiEditSelectmodeline.Checked then
           SelectionMode:=smLine
        else if mmiEditSelectmodecol.Checked then
           SelectionMode:=smColumn
        else
           SelectionMode:=smNormal;
       end;
    end;