// Bei einem Popupmenü wird der oberste Menüpunkt als Bild angezeigt. // Auf die Art kann beispielsweise ein Banner in das Popupmenü // eingebracht werden. Im Beispiel heißt der oberste Menüpunkt "N1". // Das Bild sollte mindestens so breit sein, wie der breiteste // Texteintrag des Menüs. Querverweis: Popup Menüs selbst gestalten // Getestet mit D4 unter WinME type TForm1 = class(TForm) Panel1: TPanel; PopupMenu1: TPopupMenu; N1: TMenuItem; test1: TMenuItem; test2: TMenuItem; procedure N1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); procedure N1MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer); procedure FormShow(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} const abstand = 5; var bm: TBitmap; procedure TForm1.FormShow(Sender: TObject); begin if bm = nil then begin N1.caption := ''; bm := TBitmap.create; bm.loadfromfile('d:\bilder\banner.bmp'); PopupMenu1.OwnerDraw := true; Panel1.popupmenu := popupmenu1; // z.B. end; end; procedure TForm1.FormDestroy(Sender: TObject); begin bm.free; end; procedure TForm1.N1MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer); begin width := bm.width - 12; height := bm.height + 6 + abstand; end; procedure TForm1.N1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); begin ACanvas.draw(0, 0, bm); end; |
Zugriffe seit 6.9.2001 auf Delphi-Ecke