关于MDI窗体制作多窗口浏览器遇到的问题,请高手解答。(200分)

  • 主题发起人 clarkyzl
  • 开始时间
C

clarkyzl

Unregistered / Unconfirmed
GUEST, unregistred user!
1、我抄了下面的代码去使MDI子窗体上的WebBrowser1能够接收Enter键,开始以为一切正常,可是后来我发现只能是新建的最后一个窗体可以接收Enter键,前面打开的子窗体都无法接收,请问这是为什么,谢谢回答。
procedure TMDIChild.FormCreate(Sender: TObject);
begin
Application.OnMessage := MsgHandler;
end;

procedure TMDIChild.FormDestroy(Sender: TObject);
begin
FOleInPlaceActiveObject := nil;
end;

procedure TMDIChild.MsgHandler(var Msg: TMsg; var Handled: Boolean);
var
iOIPAO: IOleInPlaceActiveObject;
Dispatch: IDispatch;
begin
{ exit if we don't get back a webbrowser object }
if (WebBrowser1 = nil) then
begin
Handled := System.False;
Exit;
end;

Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = System.True);

if (Handled) {and (not WebBrowser1.Busy)} then
begin
if FOleInPlaceActiveObject = nil then
begin
Dispatch := WebBrowser1.Application;
if Dispatch <> nil then
begin
Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);
if iOIPAO <> nil then
FOleInPlaceActiveObject := iOIPAO;
end;
end;

if FOleInPlaceActiveObject <> nil then FOleInPlaceActiveObject.TranslateAccelerator(Msg);
end;
end;
2、请问如何获得收藏夹的内容?
3、请问如何编写自定义工具栏对话框,有没有专用控件?
4、请问如何获得IE的历史记录?
5、请问如何打开Internet选项?
6、IE的地址栏每个地址前面还有一个图标,如何编写这样一个带图标的ComboBox?
7、在IE浏览器的地址栏点击向下箭头后会出现访问过的网址,请问如何读取这些系统自动记录的网址?
 
获取IE收藏夹内容
Helmut Dollinger


摘 要:如何从MSIE递归的读取保存的URL!
关键字:Internet-Explorer 收藏夹
类 别:网络



中文开发在线原创作品,未经允许,严禁任何形式的转载



uses shlobj;

...

function GetIEFavorites(const favpath: string):TStrings;
var searchrec:TSearchrec;
str:TStrings;
path,dir,filename:String;
Buffer: array[0..2047] of Char;
found:Integer;

begin
str:=TStringList.Create;
//取在favourites 路径下的所有名字
path:=FavPath+'/*.url';
dir:=ExtractFilepath(path);
found:=FindFirst(path,faAnyFile,searchrec);
while found = 0 do
begin
//从files变量读URLs
SetString(filename, Buffer,
GetPrivateProfileString('InternetShortcut',
PChar('URL'), NIL, Buffer, SizeOf(Buffer),
PChar(dir+searchrec.Name)));
str.Add(filename);
found := FindNext(searchrec);
end;
found:=FindFirst(dir+'/*.*',faAnyFile,searchrec);
while found=0 do
begin
if ((searchrec.Attr and faDirectory) > 0) and
(searchrec.Name[1]<>'.') then
str.AddStrings(GetIEFavorites(dir+'/'+searchrec.name));
found := FindNext(searchrec);
end;
FindClose(searchrec);
Result:=str;
end;

procedure TForm1.Button1Click(Sender: TObject);
var pidl: PItemIDList;
FavPath: array[0..MAX_PATH] of char;
begin
//获取收藏夹
SHGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl);
SHGetPathFromIDList(pidl, favpath);
ListBox1.Items:=GetIEFavorites(StrPas(FavPath));
end;

投稿人:CoDelphi.com 投稿日期:2001-5-19 14:57:00
 
兄弟,下载这个控件包回去,一个浏览器应该具备的功能在里面都有控件实现了。
http://www.2ccc.com/article.asp?articleid=3339
 
我记得Delph盒子,还是哪里,有个很不错的MDI所有问题都基本解决的例子,真得很不错
 
http://www.2ccc.com/article.asp?articleid=836
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
518
import
I
顶部