Главная страница
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.02 c
15-1175845292
stone
2007-04-06 11:41
2007.05.06
Вся наша жизнь игра


15-1175885262
МегаПупс
2007-04-06 22:47
2007.05.06
Устанока компонентов


4-1165562881
Peter Kapustin
2006-12-08 10:28
2007.05.06
Сканер для считвания чипов.


15-1175965637
GeLLeR
2007-04-07 21:07
2007.05.06
Вопрос про Висту


6-1162549584
DVM
2006-11-03 13:26
2007.05.06
OnConnect в TidTCPServer и обращение к базе.