Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизSystem Tray и Список последних файлов Найти похожие ветки
← →
..::KraN::.. (2007-04-14 16:03) [0]Добрый день, Мастера. У меня 2 вопроса:
1. Как показывать меню при клике на иконке в системном трее?
2. Как можно сделать список последних открытых файлов в программе?
← →
Romm © (2007-04-14 16:08) [1]1.
Многие программы показывают Pop-Up меню при щелчке на их иконке, помещенной на Tray, как этого добиться?
Вы должны обрабатывать сообщение, указанное вами при добавлении иконки на Tray. При значении (UINT)lParam, равном WM_RBUTTONDOWN (это обычно для Pop-Up меню по правой кнопке), или любому другому необходимому вам, вы должны вызовом функции GetCursorPos() получить позицию курсора в момент события (вряд ли пользователь успеет убрать мышь за время обработки сообщения, особенно если он ожидает меню), получить вескриптор Pop-Up меню одним из многих способов (LoadMenu(), GetSubMenu(), CreateMenu(), и т.д.) и выполнить следующий код:SetForegroundWindow(hWnd);
TrackPopupMenuEx(hMenu, TPM_HORIZONTAL | TPM_LEFTALIGN, x, y, hWnd, NULL);
DestroyMenu(hMenu);
PostMessage(hWnd, WM_USER, 0, 0);
где:
hWnd
дескриптор окна, которое будет обрабатывать команду меню,
hMenu
дескриптор меню, x и y - позиция курсора.
Для подробностей смотрите Win32 SDK Help по функции TrackPopupMenuEx.
← →
Virgo_Style © (2007-04-14 16:26) [2]..::KraN::.. (14.04.07 16:03)
2. Никакого волшебства: считал список при запуске, дополнил при открытии, сохранил при выходе.
← →
-=MaxDelphi=- (2007-04-14 19:49) [3]
> Virgo_Style
А код можете написать, а то я ничего в Delphi не понимаю :((((((
← →
Virgo_Style © (2007-04-14 20:11) [4]-=MaxDelphi=- (14.04.07 19:49) [3]
Могу. но зачем он тебе, если ты ничего не понимаешь, и зачем оно мне надо?
← →
-=MaxDelphi=- (2007-04-14 20:21) [5]
> Virgo_Style
А вы напишете, может пойму, я же не придурок!
← →
Virgo_Style © (2007-04-14 20:38) [6]-=MaxDelphi=- (14.04.07 20:21) [5]
Ну ладно.. Не образец для подражания, но для начала сойдет...procedure TForm1.FormCreate(Sender: TObject);
begin
try
LOFList.Items.LoadFromFile("c:\LOFList.txt");
except
on E:Exception do ShowMessage(E.Message);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
try
LOFList.Items.SaveToFile("c:\LOFList.txt");
except
on E:Exception do ShowMessage(E.Message);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
OpenFile(OpenDialog1.FileName);
end;
procedure TForm1.AddToLOFList(FileName:String);
var i:integer;
begin
i:=LOFList.Items.IndexOf(FileName);
if i<0 then begin // нету в списке
LOFList.Items.Insert(0,FileName);
for i:=LOFList.Items.Count-1 downto 9 do
LOFList.Items.Delete(i);
end else //передвинем в начало
LOFList.Items.Move(i,0);
end;
procedure TForm1.OpenFile(FileName: String);
begin
//некие действия по открытию файла
AddToLOFList(FileName);
end;
← →
..::KraN::.. © (2007-04-15 11:55) [7]
> Virgo_Style
Огромное спасибо!!!!!!!!!!!!!!!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c