PopupMenu.Items[index].Select ?

0

Ktoś wie jak programowo rozwinąć PopupMenu z zaznaczonym Itemem? Chodzi o coś takiego:

procedure MenuItemSelect(a_menu:TPopupMenu;index_select:Integer);
begin
???
end;

Np:
APopupMenu.Popup(x,y);
MenuItemSelect(APopupMenu,3);

Kombinowałem z SetMenuItemInfo ale mi nie wychodzi:

procedure MenuItemSelect(pop_menu:TPopupMenu;index_select:Integer);
var
   buffer:array[0..50] of Char;
   menu_info:TMenuItemInfo;
begin
   if pop_menu=nil then Exit;
   if (index_select<0)or(index_select>pop_menu.Items.Count-1) then Exit;

   menu_info.cbSize:=SizeOf(TMenuItemInfo);
   menu_info.fMask := MIIM_State;
   menu_info.dwTypeData:=buffer;
   menu_info.cch:=SizeOf(buffer);

   GetMenuItemInfo(pop_menu.Handle,index_select,True,menu_info);
   menu_info.fState:= menu_info.fState or MFS_HILITE;
   SetMenuItemInfo(pop_menu.Handle,index_select,True,menu_info);
end;
0

w onPopup:

Select(3); //index itema
procedure Select(item : integer);
var
  i : integer;
begin
  for i := 0 to item do
  begin
    keybd_event( VK_DOWN, MapVirtualKey( VK_DOWN,0), 0, 0);
    keybd_event( VK_DOWN, MapVirtualKey( VK_DOWN,0), KEYEVENTF_KEYUP, 0);
  end;
end;

??

0

Wielkie dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1