Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1173703336
greg123
2007-03-12 15:42
2007.05.06
Как создать процедуру для динамически создаваемого компонента


15-1176015665
IMHO
2007-04-08 11:01
2007.05.06
SureType vs QWERTY


2-1176655582
Bambuk
2007-04-15 20:46
2007.05.06
Изменение региональных настроек


2-1176487177
I-New
2007-04-13 21:59
2007.05.06
Вопрос про диалог сохранения файла


2-1176662834
deswan
2007-04-15 22:47
2007.05.06
Иконки в файлах