1。WebBrowser.GoBack
请问如何获得后退和前进的菜单中的项目,就像IE后退和前进按钮那样的菜单。
不错,这样的菜单是可以自己写,但如何才能知道不能再后退或前进了呢!?2。请问如何完全复制一个Form.
例如 f1, f2: TForm;
f2是已初始化,如何将f2复制到f1,即使f2.free,f1也不受影响!

解决方案 »

  1.   

    1.begin
        Try
           webBrowser1.goback;
        except
          showmessage('已经达到最早历史记录。');
          exit;
        end;
    前进用GoForward,同上。
      

  2.   

    //第一个问题~~
    procedure TForm1.WebBrowser1CommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
    begin
      case Command of
        CSC_NAVIGATEBACK: BackCtrl.Enabled := Enable;
        CSC_NAVIGATEFORWARD: FrwrdCtrl.Enabled := Enable;
        CSC_UPDATECOMMANDS: StopCtrl.Enabled := TWebBrowser(Sender).Busy;
      end;
    end;
      

  3.   

    你好zswangll,可否请解释一下那段代码的意思啊?谢谢
      

  4.   

    就是在TWebBrowser.OnCommandStateChange事件里加这段代码~~
    不明白就看帮助吧~~
      

  5.   

    关于问题2:
    1、创建1个子窗体,以该窗体为模版创建form2
    unit ChildFrm;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus,ComCtrls,DBClient,IniFiles,SConnect;type
      TGetTreeItemData = procedure(cdsData: TClientDataSet; var DataRec: Pointer; var NodeText: WideString; var Level: Integer) of object;
      TGetListItemData = procedure(cdsData: TClientDataSet; var DataRec: Pointer; var Caption: WideString) of object;
      TChildForm = class(TForm)
      private
        { Private declarations }
        FAsChild: Boolean;
        FTempParent: TWinControl;
      protected
        procedure CreateParams(var Params: TCreateParams); override;
        procedure Loaded; override;
      public
        { Public declarations }
        constructor Create(AOwner: TComponent); overload; override;
        constructor Create(AOwner: TComponent;
          AParent: TWinControl); reintroduce; overload;
        function GetFormMenu: TMainMenu; virtual; abstract;
        function CanChange: Boolean; virtual;
      end;var
      ChildForm: TChildForm;implementation{$R *.dfm}{ TChildForm }function TChildForm.CanChange: Boolean;
    begin
      Result := True;
    end;constructor TChildForm.Create(AOwner: TComponent);
    begin
      FAsChild := False;
      inherited Create(AOwner);
    end;constructor TChildForm.Create(AOwner: TComponent; AParent: TWinControl);
    begin
      FAsChild := True;
      FTempParent := AParent;
      inherited Create(AOwner);
    end;procedure TChildForm.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      if FAsChild then
        Params.Style := Params.Style or WS_CHILD;
    end;procedure TChildForm.Loaded;
    begin
      inherited;
      if FAsChild then begin
        align := alClient;
        BorderStyle := bsNone;
        BorderIcons := [];
        Parent := FTempParent;
        Position := poDefault;
      end;
    end;end.
    2、在form1中添加一个panel,然后在调用form2的create事件创建form2