На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Как разместить маленькие картинки в компоненте TPopUpMenu? Сделать домашней страницей Добавить в избранное Написать писмо

Как разместить маленькие картинки в компоненте TPopUpMenu?


В приведенном примере показано как это сделать с использованием функции Windows API SetMenuItemBitmaps(). Эта функция получает handle popup menu, позицию строчки меню куда будет помещена картинка, и два дескриптора(handles) на две картинки (одна из них - картинка которая будет показана когда строка меню доступна, вторая - когда строка меню недоступна).

type
   TForm1 = class(TForm)
       PopupMenu1: TPopupMenu;
       Pop11: TMenuItem;
       Pop21: TMenuItem;
       Pop31: TMenuItem;
       procedure FormCreate(Sender: TObject);
       procedure FormDestroy(Sender: TObject);
       procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
                           Shift: TShiftState; X, Y: Integer);
   private
       {Private declarations}
       bmUnChecked : TBitmap;
       bmChecked : TBitmap;
   public
       {Public declarations}
end;

var
   Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
   bmUnChecked := TBitmap.Create;
   bmUnChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\ALARMRNG.BMP');
   bmChecked := TBitmap.Create;
   bmChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\CHECK.BMP');
   {Add the bitmaps to the item at index 1 in PopUpMenu}
   SetMenuItemBitmaps(PopUpMenu1.Handle,1,MF_BYPOSITION,BmUnChecked.Handle,
                                   BmChecked.Handle);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   bmUnChecked.Free;
   bmChecked.Free;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
                       Shift: TShiftState; X, Y: Integer);
var
   pt : TPoint;
begin
   pt := ClientToScreen(Point(x, y));
   PopUpMenu1.Popup(pt.x, pt.y);
end;



Источник: Дельфи. Вокруг да около.


Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz