PDA

View Full Version : سوالاتی درباره TPopMenu و TMainMenu



حمید محمودی
پنج شنبه 22 مهر 1389, 19:31 عصر
سلام،

چندتا سوال در این مورد داشتم که به ترتیب میپرسم.

1- فرض کنید یه Popupmenu داریم که ازش در حالت fullScreen استفاده (برای راست کلیک روی فرم) کردیم. اما در حالت window mode میخوایم همین PopupMenu بصورت MainMenu برای فرم ست بشه؟؟ راهی هست؟؟

2- چطوری میشه آیتم های PopupMenu رو بصورتی درآورد که Height اون آیتم ها دلخواه بشه؟؟ مثلا Height یکی از آیتم ها 32ولی یکی دیگه از آیتمها 48باشه؟؟ درحالت عادی وقتی یه تصویری رو به آیتم ها نسبت دادیم طولش هم متناسب با همون ImageList تغییر میکنه، ولی موضوع اینه که میخوام برای یه آیتم تصویر مثلا 32x32 رو ست کنم و برای آیتم دیگه 48x48 رو؛ راهی هست؟؟

حمید محمودی
جمعه 23 مهر 1389, 02:01 صبح
گمونم جواب سوال 2 اینه : http://delphi.about.com/od/delphitips2007/qt/popitemheights.htm اما سوال اول ؟؟

nilidelphi
شنبه 24 مهر 1389, 12:40 عصر
برای قسمت اول سوالت می تونی هم یه پوپاپ منو طراحی کنی و هم یک مین منو و چک کنی که در هر حالت که می خواهی (منظورم همون فول اسکرین و نرمال اسکرینه) هرکدوم از ایم منو ها فعال شوند.
مثلا :



if Form1.WindowState = wsMaximized then
begin
Form1.Menu:=MainMenu1;
Form1.PopupMenu:=nil;
end;



و در مورد حالت نرمال هم برعکس(اگه در کد ها غلط املایی باشه به بزرگی خودتون ببخشید چون تو خونه نیستم تا امتحان کنم)


اما در مورد سوال دوم این کار به این آسانی ها نیست برای این کار باید نتظیمات ویندوز رو در هنگام اجرای برنامه تان تغییر بدین.
یادم میاد یه همچین سوالی در مورد فونت منو ها پرسیده شده بود که آقای کشاورز جواب داده بودن ولی لینکش رو یادم نیست
اگه جستجو کنی می تونی پیدا کنی .


موفق باشید.

حمید محمودی
یک شنبه 25 مهر 1389, 13:50 عصر
تشکر میکنم، برای پاسخی که دادید.


درمورد سوال 1: راستش این روشی که گفتین رو قبلا خودم روش فکر کرده بودم ولی یه جاش برام مفهوم نبود. فرض کنید که یه Popupmenu داریم که Item , SubItem های زیادی داره، و اومدیم توی Click این آیتم و ساب آیتم ها کدهایی رو نوشتیم. حالا چطور تک تک کدهای رویداد کلیک رو به آیتم ها و... MainMenu ربط بدیم؟؟

یه راهش اینه که بیایم تک تک توی آیتم ها و .. MainMenu بگیم که، برو فلان Procedure مربوط به PopUpMenu رو اجرا کن. ولی این روش یکمی دردسر داره، که برای همین از فکرش اومدم بیرون و اینجا سوالم رو پرسیدم.

راه دیگه ای هست؟؟

BORHAN TEC
یک شنبه 25 مهر 1389, 14:22 عصر
کاری نداره!
از TActionList استفاده کن...

e_lak1988
دوشنبه 26 مهر 1389, 10:22 صبح
این که کاری نداره
یا از tactionlist‏ یا برای هر رویدادی که قراره همون کاری که آیتم پوپاپ منو بکنه رو رویداد اون آیتم رو اختصاص بدین
من کدش رو می نویسم ولی شما میتونید مستقیم هم از قسمت event‏ ها اقدام کنید؛


mainmenu_subiteme1.onclick:=popupmenu_subitem1.onc lick;

نمیدونم منظورم تونستم برسونم یا نه؟