ورود

View Full Version : مشکل به هنگام استفاده از ابزار ole



پدرخوانده
شنبه 11 شهریور 1385, 09:50 صبح
به هنگام استفاده از ابزار ole همچون treectrlو یا Explorer سایر آیکون و آبجکت های صفحه از طریق صفحه کلید فعال نمی شوند و الزام به استفاده از موس می باشد.
ساده تر بگویم برای برخی از آیکون های صفحه (مثل آیکون خروج) کلید فوری esc را تعریف کرده ام
در تمامی فورم ها بدون اشکال کار می کند ولی در فرم های که از این ابزار (treectrl,explorer,...) یا سایر Oleها استفاده کرده ام به هنگامی که بر روی آنها فوکوس می کنم با صفحه کلید نمی توان از روی آن خارج شد.
با on key label نیز امتحان کردم به جواب نرسیدم.
دوستان چه راه حلی برای این مشکل پیشنهاد می کنند؟
(البته ابزار treectrl پارامتر keypress دارد ولیکن بسیار از کلیدهای من جمله f ها توسط آن کنترل نمی شود
و ابزار explorer که هیچ گزینه ای جهت کنترل keypress ندارد (راستی در این گزینه گزینه ای جهت کنترل راست کلیک نیز نیست ؟ به غیر از استفاده از جاوااسکریپت در خود سورس html صفحه موردنظر از طریق کدنویسی در محیط فاکس چطور می توان کلیدها یا راست کلیک را در ابزار موردنظر کنترل کرد)

mehran_337
شنبه 11 شهریور 1385, 11:25 صبح
واقعیتش من تا به حال از On kry lable استفاده کردن و جواب هم گرفتم. اما تخصصی ترش و تا به حال پیش نیومده

پدرخوانده
شنبه 11 شهریور 1385, 12:30 عصر
البته به راحتی می تونید اون رو امتحان هم بکنید (کافی است تو یکی فرم چند تا آبجکت من جمله یک webbrowser (با استفاده از ابزار shell.explorer ) بگذارید

و وقتی مثل برای کلید esc با استفاده از on esc عملیاتی تعریف کنید

و یا با استفاده از on key label برای کلیدهایی مثل ctrl+q یا .... کلیدی تعریف می کنید می ببیند در تمامی قسمت های فرم کار می کند به غیر از زمانی که بر روی ابزار webbrswer فوکوس هستید

(البته ole های دیگر همچون treeview یا ... مشکلی در حرف شنوی از این دستور ندارند)

ولی به نظر من به علت اینکه این کلیدها در خود explorer تعریف شده هست از آنها نمی توان استفاده کرد

(البته کلیدهای f1..f12 یا کلیدهای ترکیبی از خانواده alt (البته نه هم اشان) در explorer مشکلی ندارند)
ولی در کل زیادی بدقلق هست در تبعیت از کلیدهای از پیش تعریف شده

خلاصه اینکه می خواستم کاربر به هنگام زدن کلید esc بتواند از فرم خارج شود (مخصوصا هنگامی که بر روی این آبجکت فوکوس کرده است)

rezaTavak
شنبه 11 شهریور 1385, 12:40 عصر
ابزارهای OLE کنترل را به خارج از دنیای فاکس می برد. زمانی که شما در یک OLE فوکوس می کنید دیگر در فاکس نیستید! فاکس پرو غیر استاندارد است. و همه چیز را جدا خودش دارد. شما در هر کنترل OLE بایستی تمام کلیدهای سریع را فراموش کنید!

برای کنترل اینها بهتر است از کلاس استفاده کنید.


اما برای هر متد ویندوز خودش از خواندن Message ها استفاده میکند شما در زیان سی اصلا متد به معنای فاکس ندارید اگر متدی را در OLE ندارید باید خودتان برای آن با استغاده از توابع ویندوز کد بنویسید.


اگر در پنجره OLE با Message کنترل شود شما هر کاری می توانید انجام دهید! اما اینکار بسیار طاقت فرسا است فلسفه وجود زبان ویژوال هم همین سختی ها بود.