الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

pickList

مغلق
بدأه moa mohsen في 10 مارس 2007 · 3 رد · 970 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الاعزاء تحية طيبة وبعد

لقد قمت بانشاء dbgrid على الفورم وربطتها بديتا سورس وجدول وجعلت لاحد colmun خاصية picklist وقمت تحميل القائمة التى في البيك ليست من جدول في قاعدة البيانات وعندما اقوم بالضغط على الزر الصغير في العمود تظهر القائمة ولكن مااريده هو ان ادخل للقائمة بدون استخدام الفارة اي عن طريق الضغط على احد المفاتيح tab على سبيل المثال وذلك لتجنب استعمال الفارة في البرنامج لكي لايضطر المشغل لاستعمال كل من الفارة والمفاتيح فلم استطيع ذلك فهل منكم من لديه فكرة عن جعل PICKLIST تظهر بالضغط على احد الازرار او هل يمكن ان نضغط على زر فيعطينا نتيجة الضغط على الفارة حتى في غير هذا الموضع اي بدل من الضغط على الفارة اضغط على الزر tab فيستجيب البرنامج كما لوضغطت على احد ازرار الفارة هذا وقد قمت بالبحث في المنتدي عن picklist فظهرت لي ثلات نتائج لاتتعلق بموضوع محاكاة الضغط على الفارة الذي اريده

وشكر

#2

جرب هذا الكود

Add this to DBGrid OnKeyPress

//#9 =tab 
  if key=#9 then
  if DBGrid1.Columns[DBGrid1.SelectedIndex].PickList.Count > 0 then
  begin
	keybd_event(VK_F2,0,0,0);
	keybd_event(VK_F2,0,KEYEVENTF_KEYUP,0);
	keybd_event(VK_MENU,0,0,0);
	keybd_event(VK_DOWN,0,0,0);
	keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);
	keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
  end;

بإمكانك تغيير مفتاح الكيبورد الذي تريد .. حاول التعديل في الكود لتحصل على نتائج أفضل ...

هذا موضوع جيد له علاقة بما تريد :

Drop down list inside a DBGrid - part 1

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#3

اخي الكريم cipher قبل ان اعود الى البيت واجرب ما تكرمت بتوضيحه فأنا اشكرك من كل قلبي وشكرا

#4

اكرر شكري اخي cipher فقد نجح الكود في تلبية ما اريده واحب ان اشير الى تجربتي مع هذا الكود ليستفيد من هم في مثل مستواي المتواضع

فان استخدام الزر tab هنا غير مفيد لانه ينقل التركيز للمكون التالي فاذا كان هناك عمودان في grid بهما خاصية picklist فان الضغط على tab

في العمود الاول يفتح picklist في العمود التالي له

واستخدام return ايضا به مشكلة وهي انه بعد فتح picklist واختيار بيان ما تبقى picklist مفتوحة لاننا نختار البيان بواسطة الضغط على return

فيختار البيان ثم يفتح piclist من جديد وقد اعتمدت مفتاح delete بدلا منهما

مشكلتي مع مفتاح delete اني لااعرف الرقم الخاص به لاستخدامه في الحدث onkeypress فانا اعرف ان الادخال 13 و التراجع 8 و تاب 9 فقط

فقمت باستخدام الكود في الحدث onkeydown ليصبح if key=vk_delete then وهو يعمل مائة بالمائة

وارجو ممن يعرف قائمة بارقام المفاتيح مثل #9 ,#13 ان يتكرم باطلاعنا عليها فقد حاولت البحث في help الدلفي فوجدت فقط قائمة اسماء المفاتيح مثل

Key_Delete =Delete key

واخيرا حل مشكلتي باستخدام هذا الكود ولد لدي شغف لفهم تفاصيله علما باني حاولت ان اغير بعض بارامترات الكود فحدثت لي مشكلة ليست في الدلفي

فقط بل في نظام التشغيل ايضا علما باني استعمل sever2003 حيث اصبح الضغط علي بعض الازرار يعطي نتائج غير المتوقعة حتى قمت باعادة تشغيل

الجهاز فعاد كل شى كما كان عليه

اسف للاطالة واكرر الشكر

هذا الموضوع مغلق.