// 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





