برای قرار دادن کلیدهای ترکیبی روی یک دکمه چیکار باید کرد؟ مثلا اگه کلیدهای crtl+p فشرده داده شد
کار دکمه button1 را انجام داد؟
برای قرار دادن کلیدهای ترکیبی روی یک دکمه چیکار باید کرد؟ مثلا اگه کلیدهای crtl+p فشرده داده شد
کار دکمه button1 را انجام داد؟
این را در بخش 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 بهش پاس بده.
موفق باشی
صد درصد تاييد ميكنمکمپوننت ActionList
توصيه ميكنم هيچ وقت كد ها تون رو توي رخدادهاي اشياء ننويسيد چون اگه بخواهين شي رو عوض كنيد كلي دردسر داره
هميشه كدها رو سعي كنيد به صورت تايع و زير روالهاي مستقل بنويسيد و اونها رو فراخواني كنيد
بچه ها ازتون ممنونم، من تا حالا کاربرد actionlist (و همچنین فیلد action) را نمیدونستم.
حالا باهاشون کار کردم خیلی جالب بود، حرف مستر کاملا درسته:
("توصيه ميكنم هيچ وقت كد ها تون رو توي رخدادهاي اشياء ننويسيد چون اگه بخواهين شي رو عوض كنيد كلي دردسر داره")
بازهم ممنون:
سلام
تمام توابع پر مصرف رو بعنوان یه کلاس تعریف کنید بعد هر
پروژه ای که خواستین بنویسن اون unit (دارای کلاس) رو به
پرژه تون اضافه کنید و ازش استفاده کنید
مثلا:ورود فقط عدد در edit یا فقط کاراکتر
رنگی گردن dbgrid و ....
من از این روش استفاده می کنم
بعد با وراثت و .... کلاس ها هر تغییری بخوام رو توابع می دم
در اين كه شكي نيستکلاس تعریف کنید
ولي روالهايي را كه خاص هم هستن بصورت زير روال يا فانكشن تعريف كنيد تا طراحي برنامه زياد براتون دردسر ساز نباشه
مثلا اگه به جاي Button از Bitbutton عوض كردين فقط تغييرات مختصري بدين نه اينكه تمام رخدادها رو دوباره بازنويسي كنيد
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)