مشاهده نسخه کامل
: کلیدهای ترکیبی روی یک دکمه
برای قرار دادن کلیدهای ترکیبی روی یک دکمه چیکار باید کرد؟ مثلا اگه کلیدهای crtl+p فشرده داده شد
کار دکمه button1 را انجام داد؟
alex1000
27-01-2007, 17:16
این را در بخش KEYDown شی بنویس.
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ((key=80) and (shift=[ssctrl])) then
Button1Click(Button1);
end;
key: کد اسکی کلید مورد نظر
shift: کلید کنتدلی مورد نظر=(ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble)
می تونی از standard,tab در لیست کمپوننتهای دلفی ، کمپوننت ActionList(آخرین کمپوننت در حالت پیش فرض) رو انتخاب کنی و اونو روی فرمت قرار بدی با دابل کلیک روی اون و ایجاد یک NewAction همون کدهایی که در رویداد OnClick باتون نوشتی رو با دابل کلیک روی Action1 بنویسی و در آخر مقدار خاصیت Actions باتون رو برابر با Action1 بدی.
برای گذاشت ShortCut هم مقدار خاصیت Action1 رو از داخل ActionList برابر مقدار دلخواه قرار بده.
برای shortCut های اضافی هم می تونی از خاصیت SecondaryShortCut استفاده کنی.
امید وارم بدردت خورده باشه.
ضمنا پیشنهاد می کنم اکثر رویداد های برنامت رو بجای اینکه مستقیم به خود شی وصل کنی در actionList بنویس و سپس از طریق Actions بهش پاس بده.
موفق باشی
ممنون از همه تون
موفق باشین
MasterData
29-01-2007, 09:43
کمپوننت ActionList
صد درصد تاييد ميكنم
توصيه ميكنم هيچ وقت كد ها تون رو توي رخدادهاي اشياء ننويسيد چون اگه بخواهين شي رو عوض كنيد كلي دردسر داره
هميشه كدها رو سعي كنيد به صورت تايع و زير روالهاي مستقل بنويسيد و اونها رو فراخواني كنيد
alex1000
30-01-2007, 00:54
بچه ها ازتون ممنونم، من تا حالا کاربرد actionlist (و همچنین فیلد action) را نمیدونستم.
حالا باهاشون کار کردم خیلی جالب بود، حرف مستر کاملا درسته:
("توصيه ميكنم هيچ وقت كد ها تون رو توي رخدادهاي اشياء ننويسيد چون اگه بخواهين شي رو عوض كنيد كلي دردسر داره")
بازهم ممنون::rolleye:
mahdi bg
30-01-2007, 06:19
سلام
تمام توابع پر مصرف رو بعنوان یه کلاس تعریف کنید بعد هر
پروژه ای که خواستین بنویسن اون unit (دارای کلاس) رو به
پرژه تون اضافه کنید و ازش استفاده کنید
مثلا:ورود فقط عدد در edit یا فقط کاراکتر
رنگی گردن dbgrid و ....
من از این روش استفاده می کنم
بعد با وراثت و .... کلاس ها هر تغییری بخوام رو توابع می دم
MasterData
30-01-2007, 09:38
کلاس تعریف کنید
در اين كه شكي نيست
ولي روالهايي را كه خاص هم هستن بصورت زير روال يا فانكشن تعريف كنيد تا طراحي برنامه زياد براتون دردسر ساز نباشه
مثلا اگه به جاي Button از Bitbutton عوض كردين فقط تغييرات مختصري بدين نه اينكه تمام رخدادها رو دوباره بازنويسي كنيد
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.