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

Вниз

Popupmenu   Найти похожие ветки 

 
pit ©   (2006-02-21 14:13) [0]

Уважаемые Мастера обьясните почему при вызове Popupmenu, на форме (рядом с caption формы) прорисовываются одна за другой все иконки получаемые из ExtractIcon(HInstance, A, 0), из за этого Popupmenu выпадает гораздо медленнее, если всё это дело помещаю в tray ещё медленнее.

var
Form1: TForm1;
hSnapShot:      THandle;
uProcess:       PROCESSENTRY32;
r:              longbool;
buff:           array[0..127] of Char;
ExePath:        array[0..127] of Char;
A:              array[0..127] of Char;
TheBitmap:      TBitmap;
Icon:           TIcon;
NewItem:        TMenuItem;
ProcessHandle : THandle;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
PopupMenu1.Items.Clear;
hSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
uProcess.dwSize := Sizeof(uProcess);
if(hSnapShot<>0)then
begin
r:=Process32First(hSnapShot, uProcess);
while r <> false do
begin
ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, uProcess.th32ProcessID);
GetModuleFileNameEx(ProcessHandle, 0, ExePath,127);
TheBitmap:= TBitmap.Create;
Icon:= TIcon.Create;
StrPCopy(a,ExePath);
TheBitmap.Height := Icon.Height;
TheBitmap.Width := Icon.Width;
Icon.Handle := ExtractIcon(HInstance, A, 0);
if Icon.Handle = 0 then
TheBitmap.Canvas.Draw(0, 0, Image1.Picture.Icon)
else
TheBitmap.Canvas.Draw(0, 0, Icon);
NewItem := TMenuItem.Create(PopupMenu1);
NewItem.Caption := uProcess.szExeFile ;
NewItem.Bitmap:= TheBitmap;
PopupMenu1.Items.Insert(0,NewItem);
r:=Process32Next(hSnapShot, uProcess);
end;
CloseHandle(hSnapShot);
end;
end;


 
фил   (2006-02-21 15:05) [1]

Icon:  TIcon; смени на  Icon2:  TIcon;


 
Pit ©   (2006-02-21 15:08) [2]

Спасибо фил, теперь работает.



Страницы: 1 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
1-1144318196
Kolan
2006-04-06 14:09
2006.05.14
Работа с компонентом AsyncProfessional


3-1139197590
Ольга
2006-02-06 06:46
2006.05.14
Получить значение OUTPUT параметра из хран. процедуры


15-1145544722
antonn
2006-04-20 18:52
2006.05.14
Оцените сайт


15-1145471311
dyd
2006-04-19 22:28
2006.05.14
Убрать предупреждения, PHP


8-1134720539
Вечный студент
2005-12-16 11:08
2006.05.14
Вопрос глупый, но доставший...