Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.10.2010, 17:45
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
Печаль Избранное

Код:
procedure TFavoritesMenu.AddFavorite(Sender: TObject);
var
  ShellUIHelper: ISHellUIHelper;
  Url, Title: Olevariant;
begin
  if Assigned(FWebbrowser) then begin
    Title := FWebbrowser.LocationName;
    Url := FWebbrowser.LocationUrl;
    if Url <> '' then begin
      CoCreateInstance(CLSID_SHELLUIHELPER, nil, CLSCTX_INPROC_SERVER,
        IID_IShellUIHelper, ShellUIHelper);
      ShellUIHelper.AddFavorite(Url, Title);
      RebuildMenu;
    end
    else Showmessage('No URL selected.');
  end else
    Showmessage('No Webbrowser connected to Favorites-menu.');
end;
вот не работает чегото добавление в избранные всегда выдает 'No Webbrowser connected to Favorites-menu.'

кто может подсказать в чем проблема (код не мой)
Ответить с цитированием
  #2  
Старый 14.10.2010, 17:53
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
{
Delphi функция Assigned проверяет является ли указатель nil. Если не nil, то возвращает True; если nil, то False. 
}
 if Assigned(FWebbrowser) then begin

Соответственно FWebBrowser у вас не создан (т.к. он сейчас = nil)...
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 14.10.2010, 18:07
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

он создан.
Ответить с цитированием
  #4  
Старый 14.10.2010, 18:09
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Тогда пишите так:
Код:
procedure TFavoritesMenu.AddFavorite(Sender: TObject);
var
  ShellUIHelper: ISHellUIHelper;
  Url, Title: Olevariant;
begin
    Title := FWebbrowser.LocationName;
    Url := FWebbrowser.LocationUrl;
    if Url <> '' then begin
      CoCreateInstance(CLSID_SHELLUIHELPER, nil, CLSCTX_INPROC_SERVER,
        IID_IShellUIHelper, ShellUIHelper);
      ShellUIHelper.AddFavorite(Url, Title);
      RebuildMenu;
    end
    else Showmessage('No URL selected.');
end;
__________________
Помогаю за Спасибо
Ответить с цитированием
  #5  
Старый 14.10.2010, 18:17
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

ошибка так вылетает
Ответить с цитированием
  #6  
Старый 14.10.2010, 18:21
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Ошибка вылетает потому что FWebBrowser = nil!!!
__________________
Помогаю за Спасибо
Ответить с цитированием
  #7  
Старый 14.10.2010, 19:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
unit Unit1;

interface

uses
  ActiveX,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  CLSID_ShellUIHelper: TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  if WebBrowser.Document=nil then WebBrowser.Navigate('about:blank');
  while WebBrowser.Document=nil do Application.ProcessMessages;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  url: OleVariant;
begin
  url:='http://ya.ru/';
  WebBrowser.Navigate2(url);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ShellUIHelper: IShellUIHelper;
  locationname: OleVariant;
  locationurl: OleVariant;
  res: HRESULT;
begin
  res:=CoCreateInstance(CLSID_ShellUIHelper, nil, CLSCTX_INPROC_SERVER, IID_IShellUIHelper, ShellUIHelper);
  if res=S_OK then
  begin
    locationname:=WebBrowser.LocationName;
    locationurl:=WebBrowser.LocationURL;
    ShellUIHelper.AddFavorite(locationurl, locationname);
  end;
end;

end.
http://data.cod.ru/71360
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 14.10.2010, 19:31
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

вобщем я понял, я не могу указать конкретного имени откуда тянуть информацию так как у меня вкладки и в каждой вкладке новое имя браузера, мне нужно чтобы вместо
Код:
locationname:=WebBrowser.LocationName;
    locationurl:=WebBrowser.LocationURL;

не имя браузера WebBrowser а активный браузер
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter