ورود

View Full Version : سوال: چگونه مي توان براي کليدهاي ( End ) و ( Home ) صفحه کليد کد نوشت؟



drahmadtaraffoo
دوشنبه 09 آبان 1390, 16:38 عصر
بسم الله الرحمن الرحيم
با سلام خدمت دوستان عزيز
چگونه مي توان براي کليدهاي ( End ) و ( Home ) صفحه کليد کد نوشت؟
يعني با کد اين دو عمل را انجام دهيم
مثلاً :
شما يک Edit داريد مي خواهيد با زدن يک کليد به ابتدا و يا انتهاي کلمه داخل آن منتقل شويد
متشکرم
:قلب:

BORHAN TEC
دوشنبه 09 آبان 1390, 17:39 عصر
سلام

شما يک Edit داريد مي خواهيد با زدن يک کليد به ابتدا و يا انتهاي کلمه داخل آن منتقل شويد
کنترل Edit به صورت ذاتی این قابلیت را دارد. اما اگر برای موارد دیگری می خواهید از این قابلیت بهره مند شوید بهتر است از یک کامپوننت TActionList استفاده کنید. نحوه استفاده از ActionList یه مقدار قلق داره که اون رو به صورت گام به گام توضیح می دم:

1- ابتدا یک کامپوننت TActionList بر روی فرم قرار دهید.
2- بر روی کنترل مذکور دابل کلیک کنید تا پنجره مربوط به ویرایش کردن Action ها به نمایش دربیاد.
3- بر روی New کلیک کنید.
4- همانطور که می بینید یک Action به وجود آمد که برای ویرایش کردن آن می توانید آن را انتخاب کرده و خصوصیات آن را از Object Inspector تغییر دهید.
5- مشکلی که در اینجا وجود دارد این است که خصوصیت ShortCut نمی تواند دکمه های Home و End را شامل شود، بنابراین در این حالات خاص شما باید از خصوصیت SecondaryShortCuts استفاده کنید.
6- بر روی دکمه ... در جلوی خصوصیتSecondaryShortCuts کلیک کنید تا پنجره ویرایشگر خوصوصیت مذکور به نمایش درآید.
7- حال در پنجره ویرایشگر خصوصیت یاد شده عبارت Home را بنویسید و پنجره را ببندید.
8- Action ساخته شده را انتخاب کرده و در رویداد OnExecute مربوط به آن کد مورد نظر خود را بنویسید.

حال اگر برنامه را اجرا کنید مشاهده می کنید که با فشردن کلید Home از روی کیبورد کد نوشته شده اجرا می شود.

برای دکمه End هم می توانید از روش گفته شده در بالا استفاده کنید. با این تفاوت که در مرحله 7 باید عبارت End را تایپ کنید.

موفق باشید...

drahmadtaraffoo
دوشنبه 09 آبان 1390, 18:30 عصر
بسم الله الرحمن الرحیم
با سلام و تشکر از دوست عزیز جناب آقای شاهین عشایری
فکر کنم نتوانستم منظور خودم را درست بیان کنم.
منظور من این است که یک Button1 روی فرم داریم که با فشردن آن بتوانیم به ابتداء کلمه برویم و یک Button2 دیگر روی فرم داریم که با فشردن آن بتوانیم به انتهای کلمه برویم.
و الا بنا به قول خودتان خود Edit خاصیت آن را دارد که با استفاده از کلیدهای End و Home بتوان به ابتداء و یا انتهای کلمه برویم.
من می خواهم از کلیدهای صفحه کلید استفاده نکنم و به جای آن از Button1 و Button2 استفاده کنم و به ابتدا و انتهای کلمه منتقل شوم.
متشکرم

SAASTN
دوشنبه 09 آبان 1390, 20:30 عصر
// Home
Edit1.SetFocus;
Edit1.SelStart := 0;
Edit1.SelLength := 0;

// End
Edit1.SetFocus;
Edit1.SelStart := Length(Edit1.Text);
Edit1.SelLength := 0;