请教如何按下speedbutton,弹出一个和speedbuttong等宽的popmenu? |
答題得分者是:Rain
|
jtp
初階會員 ![]() ![]() 發表:39 回覆:81 積分:29 註冊:2003-04-20 發送簡訊給我 |
|
Rain
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
設置PopupMenu1的OwnerDraw屬性為True,然後畫功能表項寬度即可,具體如下
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
with Sender as TControl do
begin
with ClientOrigin do
begin
Inc(Y, ClientHeight);
PopupMenu1.Popup(X, Y);
end;
end;
end; 任選一菜單項,在它的On MeasureItem事件中設置寬度:
procedure TForm1.MenuItem1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
Width := SpeedButton1.Width-18; //我不知道為什麼這樣功能表寬度會比按鈕寬一點,所以做了一下調整減去18寬度,你可以查看一下Delphi的代碼
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |