![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Избранное как в IE [D7, Win95/98]
Konstantin © (2005-01-03 06:53:00)Подскажите как сделать сабж, плиз. Получить список закладок и добавлять новые я могу, но как сделать это в MainMenu динамически???
volser (2005-01-04 22:31:00) [1]В OnShow создавай их сам. В чем проблема?
Konstantin (2005-01-04 13:41:00) [2]Функция GetIEFavourites для получения закладок(см. выше)
function GetIEFavourites(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;
path := FavPath + '\*.url';
dir := ExtractFilepath(path);
found := FindFirst(path, faAnyFile, searchrec);
while found = 0 do
begin
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(GetIEFavourites(dir + '\' + searchrec.name));
found := FindNext(searchrec);
end;
FindClose(searchrec);
Result := str;
end;
Konstantin (2005-01-03 23:49:00) [3]Как динамически создавать пункты и подпункты меню я умею, а вот чтобы они сами создавались по имени закладки при запуске приложения что-то не догоняю (((
Konstantin (2005-01-03 22:58:00) [4]А вот так получить закладки:
procedure TForm1.Button2Click(Sender: TObject);
var
pidl: PItemIDList;
FavPath: array [0..MAX_PATH] of char;
begin
SHGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl);
SHGetPathFromIDList(pidl, favpath);
ListBox1.Items := GetIEFavourites(StrPas(FavPath));//Где их показать.
end;
Тут у меня и трабл. Не могу в MainMenu добавить динамически, чтобы пункты были по названию закладки, а по клику происходил переход на нужный URL.
Konstantin (2005-01-03 22:53:00) [5]Hi!!!
У меня так:
procedure TForm1.Button1Click(Sender: TObject);
const
NotAllowed: set of Char = ['"'] + ['/'] + ['\'] + ['?'] + [':'] + ['*'] +
['<'] + ['>'] + ['|'];
var url: TStringList;
fav, title: string;
begin
fav := Load('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','Favorites');
url := TStringList.Create;
try
url.Add('[InternetShortcut]');
url.Add('URL=' + Form1.Webbrowser1.LocationURL);
url.Add('WorkingDirectory=' + WinDir());
url.Add('IconIndex=0');
url.Add('ShowCommand=7');
url.Add('IconFile=' + GetSysDir() + '\url.dll');
title := Memo1.Text; //Название закладки
url.SaveToFile(fav + '\' + title + '.url');
finally
url.Free;
end;
volser (2005-01-03 11:16:00) [6]Подскажи, а как вообще управлять избранным (получить список и добавить новые)?
Popup_Link: TPopupMenu;
procedure pop_item1Click(Sender: TObject);
Var
pop_item, sub_item: TMenuItem;
pop_item := TMenuItem.Create(Popup_Link);
pop_item.OnClick:=pop_item1Click;
pop_item.Caption:='Title1';
Popup_Link.Items.Add(pop_item);
sub_item := TMenuItem.Create(Popup_Link);
sub_item.OnClick:=pop_item2Click;
sub_item.Caption:='Title2';
pop_item.Add(sub_item);