Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 10565|回复: 13

Lazarus, use default web browser to open url. 使用默认浏览器打开网址

[复制链接]

该用户从未签到

发表于 2011-5-23 08:32:29 | 显示全部楼层 |阅读模式
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, LazHelpHTML,
  UTF8Process
, StdCtrls;


type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Label2Click(Sender: TObject);
  private
    { private declarations }
    procedure OpenUrl(url1:String);
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.OpenUrl(url1:String);
var
  v: THTMLBrowserHelpViewer;
  BrowserPath, BrowserParams: string;
  p: LongInt;
  URL: String;
  BrowserProcess: TProcessUTF8;

begin
  v:=THTMLBrowserHelpViewer.Create(nil);
  try
    v.FindDefaultBrowser(BrowserPath,BrowserParams);


    URL:=url1; // url:= 'http://www.fpccn.com';
    p:=System.Pos('%s', BrowserParams);
    System.Delete(BrowserParams,p,2);
    System.Insert(URL,BrowserParams,p);


    BrowserProcess:=TProcessUTF8.Create(nil);
    try
      BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams;
      BrowserProcess.Execute;
    finally
      BrowserProcess.Free;
    end;
  finally
    v.Free;
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.Label2Click(Sender: TObject);
begin
   self.OpenUrl(self.Label2.Caption);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    self.OpenUrl(self.Edit1.Text);
end;


end.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x
回复

使用道具 举报

该用户从未签到

发表于 2011-5-23 21:38:36 | 显示全部楼层
看看怎么实现的
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-6-17 16:22:24 | 显示全部楼层
学习代码!谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-7-13 19:57:10 | 显示全部楼层
学习代码!谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-8-30 13:56:12 | 显示全部楼层
來試試看~3Q
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-23 13:36:40 | 显示全部楼层
看看 了  3q
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-18 11:03:06 | 显示全部楼层
我运行了下,出现错误“failed to execute C\\system32\\rundll32.exeurl.dll”
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-12-21 22:42:44 | 显示全部楼层
回复吧。源码加乱码了。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-12-26 17:29:09 | 显示全部楼层
不是用shellAPI(URL)就可以了吗?
这么复杂?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-12-26 20:29:09 | 显示全部楼层
直接用OpenURL()函数吧。lazarus自带库函数,方便移植,跨平台,推荐使用。

还有类似的2个函数。也推荐使用。

// Functions in the include file sysenvapis.inc
function FindDefaultBrowser(out ABrowser, AParams: String): Boolean;
function OpenURL(AURL: String): Boolean;
function OpenDocument(APath: String): Boolean;
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 11:52 , Processed in 0.051109 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表