zoukankan      html  css  js  c++  java
  • FireMonkey 使用Webbrowser

    DELPHI XE5 源码PASCAL:http://files.cnblogs.com/xe2011/FireMonkey_Webbrowser.rar

     

    为了这个用上webbrowser真是费太大劲了

    要让窗体2位置和窗体1的PANEL坐标一致

    窗体样式要为none 
    Web坐标才会正确

    但是fire monkey没有webbrowser控件 这个费了好长时间搞成这样了

    现在还有个问题没有处理

     
      1 unit Unit1;
      2 
      3 interface
      4 
      5 uses
      6   Windows, Messages, FMX.Platform.Win,
      7   System.SysUtils, System.Types, System.UITypes, System.Classes,
      8   System.Variants,
      9   FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
     10   FMX.Layouts, FMX.Memo;
     11 
     12 type
     13   TForm1 = class(TForm)
     14     Button1: TButton;
     15     Panel1: TPanel;
     16     Button3: TButton;
     17     Memo1: TMemo;
     18     Timer1: TTimer;
     19     Button4: TButton;
     20     Button2: TButton;
     21     procedure FormCreate(Sender: TObject);
     22     procedure Button1Click(Sender: TObject);
     23 
     24     procedure FormShow(Sender: TObject);
     25     procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
     26       Shift: TShiftState; X, Y: Single);
     27     procedure Button3MouseDown(Sender: TObject; Button: TMouseButton;
     28       Shift: TShiftState; X, Y: Single);
     29     procedure Timer1Timer(Sender: TObject);
     30     procedure Button4Click(Sender: TObject);
     31     procedure Button2Click(Sender: TObject);
     32   private
     33     { Private declarations }
     34     procedure Form2RePosition;
     35   public
     36 
     37   end;
     38 
     39 var
     40   Form1: TForm1;
     41 
     42 implementation
     43 
     44 {$R *.fmx}
     45 
     46 uses
     47   UnitX;
     48 
     49 var
     50   Form2: TForm2;
     51 
     52 procedure TForm1.FormCreate(Sender: TObject);
     53 begin
     54   Form2 := TForm2.Create(nil);
     55   Form2.WebBrowser1.Navigate('http://w2i.wanmei.com/launcher/index.htm');
     56   Form2.AutoSize := true;
     57   Form2.Show;
     58 end;
     59 
     60 procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
     61   Shift: TShiftState; X, Y: Single);
     62 begin
     63   Form2RePosition;
     64 
     65 end;
     66 
     67 procedure TForm1.FormShow(Sender: TObject);
     68 begin
     69   Form2.Width := Round(Panel1.Width);
     70   Form2.Height := Round(Panel1.Height);
     71   Form2RePosition;
     72 end;
     73 
     74 procedure TForm1.Timer1Timer(Sender: TObject);
     75 begin
     76   Form2RePosition;
     77 end;
     78 
     79 procedure TForm1.Button2Click(Sender: TObject);
     80 begin
     81   Form2.Visible := not Form2.Visible;
     82 
     83 end;
     84 
     85 procedure TForm1.Button3MouseDown(Sender: TObject; Button: TMouseButton;
     86   Shift: TShiftState; X, Y: Single);
     87 begin
     88   ReleaseCapture();
     89   SendMessage(FmxHandleToHwnd(Handle), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
     90 end;
     91 
     92 procedure TForm1.Button4Click(Sender: TObject);
     93 begin
     94   WindowState := TWindowState.wsMinimized;
     95 end;
     96 
     97 procedure TForm1.Form2RePosition;
     98 begin
     99   if WindowState = TWindowState.wsNormal then
    100     begin
    101       Form2.Left := Round(Form1.Left + Panel1.Position.X);
    102       Form2.Top := Round(Form1.Top + Panel1.Position.Y);
    103       SetWindowPos(Form2.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE + SWP_SHOWWINDOW);
    104     end
    105   else
    106       Form2.Visible := false;
    107       Form2.Visible:= (WindowState = TWindowState.wsNormal);
    108 end;
    109 
    110 procedure TForm1.Button1Click(Sender: TObject);
    111 begin
    112   close;
    113 end;
    114 
    115 end.
    FMX unit1
     1 unit UnitX;
     2 
     3 interface
     4 
     5 uses
     6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
     7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw, Vcl.Imaging.jpeg,
     8   Vcl.ExtCtrls;
     9 
    10 type
    11   TForm2 = class(TForm)
    12     WebBrowser1: TWebBrowser;
    13     Timer1: TTimer;
    14     procedure FormCreate(Sender: TObject);
    15     procedure FormShow(Sender: TObject);
    16   private
    17     { Private declarations }
    18   public
    19     { Public declarations }
    20   end;
    21 
    22 var
    23   Form2: TForm2;
    24 
    25 implementation
    26 
    27 {$R *.dfm}
    28 
    29 procedure TForm2.FormCreate(Sender: TObject);
    30 begin
    31     Width:=518;
    32     Height:=221;
    33 end;
    34 
    35 procedure TForm2.FormShow(Sender: TObject);
    36 begin
    37   ShowWindow(Application.handle, SW_HIDE);
    38   SetWindowLong(Self.handle, GWL_EXSTYLE, GetWindowLong(Self.handle,
    39     GWL_EXSTYLE) ); // 不在alt+tab中出现
    40 end;
    41 
    42 end.
    VCL unit
  • 相关阅读:
    练习1-17 编写一个程序,打印长度大于80个字符的所有输入行.
    练习1-16 修改打印最长文本行的程序的主程序main, 使之可以打印任意长度的输入行的长度, 并尽可能多的打印文本。
    惠普Z620工作站用安装版装win7旗舰版64位结果找不到硬盘
    输入元素( Input Element)
    GradientStop
    qml关键字style
    opacity
    QT5-step-by-step-LayoutManagement
    QT5-step-by-step-BasicKnowledge
    Adeneo Embedded: Building Qt 5.1 for Freescale i.MX6Introduction on LTIB
  • 原文地址:https://www.cnblogs.com/xe2011/p/3716922.html
Copyright © 2011-2022 走看看