PDA

View Full Version : خواندن بافر كيبورد



yalameh
سه شنبه 23 آذر 1389, 14:15 عصر
دوستان من يك EditBox دارم كه بر اساس ورودي كاربر توسط كيبورد و در رويداد OnChange آن در داخل بانك جستجو مي كند .
عمل جستجو يه كمي زمانبره . در صورتيكه كاربر كليدهاي كيبورد را سريعتر مي زند و اين باعث مي شود كه سيستم يه مدت كوتاهي هنگ نموده و حروفي كه كاربر وارد كرده را به ترتيب و با تاخير زماني نشان داده و سرچ مي كند كه اين قضيه زياد جالب نيست
. مي خواهم كدي بنويسم كه اگر قبل از سرچ ، بافر كيبورد خالي نبود كل كلمات داخل بافر را خوانده و سپس عمل جستجو را انجام دهد .
اميدوارم تونسته باشم منظورما بيان كنم

Felony
سه شنبه 23 آذر 1389, 17:46 عصر
قسمت جست و جو برنامت رو تو یه Thread دیگه پیاده کن ، برای پیاده سازی Query ها در یک Thread مجزا این لینک (http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBcQFjAA&url=http%3A%2F%2Fdelphi.about.com%2Fod%2Fkbthread% 2Fa%2Fquery_threading.htm&ei=qnQHTYDIMYSy8gOW8_A5&usg=AFQjCNHS1_dJt6OZOiS-vGJAu9AVjtUdbg&sig2=AytMEYuvu_kFOHyqehEAow)میتونه بهتون کمک کنه .

yalameh
چهارشنبه 01 دی 1389, 17:29 عصر
يعني راه حل اين قضيه با thread حل مي شه يا راههاي ديگه اي هم داره ؟
نمي شه بافر كيبورد را خواند كه آيا كاراكتري در بافر هست يا نه ؟

Felony
چهارشنبه 01 دی 1389, 18:14 عصر
به روزرسانی و مدیریت اشیاء و کنترل های موجود روی یک فرم و رسیدگی به صف پیغام های رسیده به برنامه بر عهده Main Thread هست ، وقتی Query رو تو Main Thread اجرا میکنید Thread اصلی برنامه درگیر پردازش Query میشه و نمیتونه به صورت عادی به صف پیغام های مراجعه کنه و پیغام های رو بخونه و بهشون پاسخ بده و اون مشکلی که گفتید پیش میاد ، وقتی Query رو تو یک Thread دیگه اجرا کنید Main Thread آزاد میمونه و میتونه به صورت معمول روال عادی کار خودش ادامه بده و به پیغام های داخل صف پاسخ بده و اون مشکل دیگه پیش نمیاد .