我的处男作(网络程序):飞鹰浏览器.速度快,功能多!(50分)

  • 主题发起人 主题发起人 luket
  • 开始时间 开始时间
L

luket

Unregistered / Unconfirmed
GUEST, unregistred user!
功能:
已实现:
1.可以在同一窗口中浏览无数个网页,数量只受内存限制.可前进后退,新建关闭,预览打印等类似于IE大部分功能已实现.
2.提供巨大收藏夹,多达3万个网址.并能自己定义,修改,删除收藏夹.已实现.
3.提供电子书库功能.能增加,删除,修改,复制,剪切等,保存后可按两种方式阅读:TXT或HTML.
4.不需要BDE.

未实现的部分:
1.WebBrowser的复制,剪切时出现"试图激活丢弃目标".
2.能从网页中选择后拖动即可把选中的前一句为标题保存下来

请高手们替我解决这一难题,发布时一定首先通知您,并把源程序寄给您.


 
给我一份:
qf0421@sina.com
 
帮我解决问题,银子和源程序双手奉上(没有不要钱的午餐吧)
 
to me one
Email:cjfandhf@263.net
 
你所说的“剪切”是指内容的复制吗?
有关内容的复制以前的问题里有,找一下就可以了
 
To:qf0421:
以前我都看过,解决不了问题.不知为什么?我用的是D5+IE5.5.
 
这是我上次从问题中得来的,可以使TWEBBROWSER实现CTRL+C、CTRL+V,并可往
下载软件中拖放。
/////////////////////////////////////////////////////////////////////
var
IE: TIE;
FOleInPlaceActiveObject: IOleInPlaceActiveObject;
SaveMessageHandler: TMessageEvent;
implementation
{$R *.DFM}

procedure TIE.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.OnMessage := SaveMessageHandler;
FOleInPlaceActiveObject := nil;
end;

procedure TIE.FormActivate(Sender: TObject);
begin
SaveMessageHandler := Application.OnMessage;
Application.OnMessage := MyMessageHandler;
end;

procedure TIE.FormDeactivate(Sender: TObject);
begin
Application.OnMessage := SaveMessageHandler;
end;

procedure TIE.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
var
iOIPAO: IOleInPlaceActiveObject;
Dispatch: IDispatch;
begin
{ exit if we don't get back a webbrowser object }
if WebBrowser = nil then
begin
if Handled then
Handled := not Handled;
Exit;
end;

if IsDialogMessage(WebBrowser.Handle, Msg) then
begin
if not Handled then
Handled:=not Handled;
end
else
begin
if Handled then
Handled:=not Handled;
end;
//Handled:=(IsDialogMessage(WebBrowser.Handle, Msg) = True);

if (Handled) and (not WebBrowser.Busy) then
begin
if FOleInPlaceActiveObject = nil then
begin
Dispatch := WebBrowser.Application_;
if Dispatch <> nil then
begin
Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);
if iOIPAO <> nil then
FOleInPlaceActiveObject := iOIPAO;
end;
end;

if FOleInPlaceActiveObject <> nil then
if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
((Msg.wParam = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) then
//nothing - do not pass on Backspace, Left or Right arrows
else
FOleInPlaceActiveObject.TranslateAccelerator(Msg);
end;
end;

initialization
OleInitialize(nil);

finalization
OleUninitialize;

end.
////////////////////////////////////////////////////////////////////
 
qf0421:
编译怎么出错:IOleInPlaceActiveObject无效标识.
OLE我不熟,请您讲一下这段代码该怎么调试.好吗?
我先发个样本给您,请提出意见.
 
ClientDataSet的数据来自于文件,可以用Commandtext发送SQL命令吗?
 
uses
OleCtrls, SHDocVw_TLB,MSHTML_TLB,Activex;
 
帮我把第二个未实现的功能的代码写给我,拜托.
 
qf0421:
根据您的方法,我已经可以复制,剪切等。可是在游览网页时会出现对某些键处理错误的情况,比如回车提交无反应,TAB键移动至其他控件中,而不是移动至网页中的下一个元素。
第二种功能到底该如何实现?
procedure Tform.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
if (sender is Twebbrowser) or (sender is Tmemo) then accept:=true;
end;
甚至直接把Accept:=true 都不能让TreeVIew接受TwebBrowser的内容。


盼复。
发给您的收到了吗?还有很多错误,待我一一修正后把源码发给您。

cAkk,Pipi,沈前卫...你们在哪?


 
别客气,我也是看别人的。
你说的第二种功能我也不是很清楚,试试吧。。。
信收到了,错误已EMAIL给你了。
 
源文件有多大?
 
exe file size:800K.
 
接受答案了.
 
给我一份:
xujiancai@21cn.com
 
也给我一份吧:
xixiaofang@990.net
 
也给我一份吧:
dongx@163.net

谢谢!
 
后退
顶部