PDA

View Full Version : نمایش منو در وسط فرم



Narges-s
یک شنبه 04 مرداد 1388, 11:34 صبح
سلام :ناراحت:
من دارم یه پروژه انجام میدم یه قسمتش گیر کردم :گریه:
توی قسمت ورودی پروژه ام باید وقتی روی یه Button کیلیک میکنم یه Menu باز شه ولی نمیدونم باید از چی استفاده کنم. چون MainMenu بالای Formقرار میگیره و برای PopupMenu هم باید از راست کیلیک استفاده کنیم، ولی توی پروژه ی من هم باید وسط Form باشه و هم با کلیک کردن معمولی باز بشه!
کسی میتونه به من بگه باید از چی استفاده کنم؟ تو رو خدا اگه میتونین کمکم کنین بدجور گیر افتادم! :ناراحت:
اگه کمکم کنین ممنون میشم :خجالت:

Saeed_m_Farid
یک شنبه 04 مرداد 1388, 11:48 صبح
سلام :ناراحت:
من دارم یه پروژه انجام میدم یه قسمتش گیر کردم :گریه:
توی قسمت ورودی پروژه ام باید وقتی روی یه Button کیلیک میکنم یه Menu باز شه ولی نمیدونم باید از چی استفاده کنم. چون MainMenu بالای Formقرار میگیره و برای PopupMenu هم باید از راست کیلیک استفاده کنیم، ولی توی پروژه ی من هم باید وسط Form باشه و هم با کلیک کردن معمولی باز بشه!
کسی میتونه به من بگه باید از چی استفاده کنم؟ تو رو خدا اگه میتونین کمکم کنین بدجور گیر افتادم! :ناراحت:
اگه کمکم کنین ممنون میشم :خجالت:

سلام
اولاً سوال شما اینقدر ناراحت شدن و گریه و ... نداره، خونسرد باشید!
بعدشم فقط کافیه PopupMenu خودتون و کدهای موردنظرتون تو منوهاش رو بذارید، بعدش یه خط کد زیر تو OnClick دکمه بذارید، منوی شما هرجا کلیک کردین باز میشه :

procedure TForm1.Button1Click(Sender: TObject);
begin
PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;


موفق باشید.

skflower
یک شنبه 04 مرداد 1388, 11:48 صبح
سلام :ناراحت:
من دارم یه پروژه انجام میدم یه قسمتش گیر کردم :گریه:
توی قسمت ورودی پروژه ام باید وقتی روی یه Button کیلیک میکنم یه Menu باز شه ولی نمیدونم باید از چی استفاده کنم. چون MainMenu بالای Formقرار میگیره و برای PopupMenu هم باید از راست کیلیک استفاده کنیم، ولی توی پروژه ی من هم باید وسط Form باشه و هم با کلیک کردن معمولی باز بشه!
کسی میتونه به من بگه باید از چی استفاده کنم؟ تو رو خدا اگه میتونین کمکم کنین بدجور گیر افتادم! :ناراحت:
اگه کمکم کنین ممنون میشم :خجالت:

سلام دوست عزیز. شما ابتدا یه popup menu روی فرمتون قرار بدید و اونو طراحی کنید. بعد تو buttonی که باید بعد از کلیک روش این منو باز بشه، دستور زیر رو تایپ کنید:

popupmenu1.Popup(x,y);

اگر x و y خاصی رو مد نظرتون هست که وارد کنید. وگرنه میتونید از این کد استفاده کنید که x,y فرمتون رو بگیره:

x:=Form1.width
y:=Form1.Height

درضمن باید هر دو متغیر رو از نوع integer تعریف کنید و اگه میخواید وسط صفحه باز بشه میتونید به اونها یه مقدار اضافه یا کم کنید.
اگه سوالی بود در خدمتم.
موفق باشید.

skflower
یک شنبه 04 مرداد 1388, 11:54 صبح
اوووووووووووووووو. ببخشید. من و Saeed_m_Farid هر دو با هم و در یک زمان نوشتیمو دقیقاً یک تاریخ و یک ساعت.
البته کد آقای Saeed_m_Farid در محلی که موس قرار داره منو رو باز میکنه. من یه بار تو برنامم اینکارو کردم و یه مشکل کوچولو داشت. اونم این بود که بعضی ها با کیبور میرن و روی button کلیک میکنن. اونوقت اگه موس یه جای دیگه ی صفحه باشه، منو اونجا باز میشه.

Saeed_m_Farid
یک شنبه 04 مرداد 1388, 12:06 عصر
اوووووووووووووووو. ببخشید. من و Saeed_m_Farid هر دو با هم و در یک زمان نوشتیمو دقیقاً یک تاریخ و یک ساعت.
البته کد آقای Saeed_m_Farid در محلی که موس قرار داره منو رو باز میکنه. من یه بار تو برنامم اینکارو کردم و یه مشکل کوچولو داشت. اونم این بود که بعضی ها با کیبور میرن و روی button کلیک میکنن. اونوقت اگه موس یه جای دیگه ی صفحه باشه، منو اونجا باز میشه.
بله درسته، ممنون از توجهتون؛ مشکل ذکر شده رو میشه اینجوری هم حل کرد :


procedure TForm1.Button1Click(Sender: TObject);
begin
//PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
PopupMenu1.Popup(Form1.Left +
Button1.Left +
Button1.Width div 2,
Form1.Top +
Button1.Top +
Button1.Height +
Button1.Height div 2);
end;