معلومات

عند النقر على العنصر / انقر مرتين على TListView

عند النقر على العنصر / انقر مرتين على TListView


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

يعرض عنصر التحكم TListView في دلفي قائمة من العناصر في الأعمدة ذات رؤوس الأعمدة والعناصر الفرعية ، أو رأسياً أو أفقيًا ، مع أيقونات صغيرة أو كبيرة.

كما يفعل معظم عناصر التحكم دلفي ، TListView يكشف عند النقر و OnDblClick أحداث (OnDoubleClick).

لسوء الحظ ، إذا كنت بحاجة إلى معرفة العنصر الذي تم النقر فوقه أو النقر عليه مرتين ، فلا يمكنك ببساطة التعامل مع أحداث OnClick / OnDblClick للحصول على العنصر الذي تم النقر عليه.

يتم تشغيل الحدث OnClick (OnDblClick) لـ TListView كلما نقر المستخدم على عنصر التحكم - أي وقت حدوث "النقر" في مكان ما داخل منطقة العميل من السيطرة.

يمكن للمستخدم النقر داخل عرض القائمة ، ولكن "تفوت" أي من العناصر. ما هو أكثر من ذلك ، نظرًا لأن طريقة عرض القائمة يمكن أن تغير عرضها وفقًا لخاصية ViewStyle ، فقد يكون المستخدم قد نقر على عنصر أو تعليق على عنصر أو على رمز عنصر "في أي مكان" أو على رمز حالة عنصر ، إلخ.

ملاحظة: تحدد خاصية ViewStyle كيفية عرض العناصر في عرض القائمة: يمكن عرض العناصر كمجموعة من الرموز المنقولة ، أو كأعمدة نصية.

ListView.On انقر فوق & ListView.On العنصر انقر نقرا مزدوجا

لتتمكن من تحديد موقع العنصر الذي تم النقر عليه (إذا كان هناك واحد) عند تشغيل حدث OnClick لعرض القائمة ، تحتاج إلى تحديد عناصر عرض القائمة الموجودة تحت النقطة المحددة في معلمات X و Y - وهي موقع الماوس في لحظة "انقر".

في TListiew GetHitTestInfoAt ترجع الدالة معلومات حول النقطة المحددة في منطقة العميل الخاصة بعرض القائمة.

للتأكد من النقر فوق العنصر (أو النقر فوقه نقرًا مزدوجًا) ، يلزمك الاتصال بـ GetHitTestInfoAt والرد فقط في حالة حدوث حدث النقر على عنصر حقيقي.

فيما يلي مثال لتطبيق حدث OnDblClick في ListView1:

// يعالج ListView1's عند النقر المزدوجإجراء TForm.ListView1DblClick(المرسل: TObject) ؛
فار
hts: اختبارات
ht: THitTest ؛
sht: خيط;
ListViewCursosPos: TPoint؛
selectItem: TListItem؛
ابدأ
  / / موقف مؤشر الماوس المتعلقة ListView
ListViewCursosPos: = ListView1.ScreenToClient (Mouse.CursorPos)؛
  // انقر مرتين أين؟
hts: = ListView1.GetHitTestInfoAt (ListViewCursosPos.X، ListViewCursosPos.Y)؛
  // "debug" hit test
التسمية التوضيحية: = "؛
  إلى عن على حزب التحرير في HTS فعل
  ابدأ
sht: = GetEnumName (TypeInfo (THitTest) ، Integer (ht)) ؛
التسمية التوضيحية: = التنسيق ('٪ s٪ s |' ، التسمية التوضيحية ، sht) ؛
  النهاية;
  / / حدد موقع العنصر الذي تم نقره مرتين
  إذا hts <= htOnIcon ، htOnItem ، htOnLabel ، htOnStateIcon ثم
  ابدأ
selectItem: = ListView1.Selected؛
    / / افعل شيئًا باستخدام العنصر الذي تم نقره مرتين!
التسمية التوضيحية: = التنسيق ('DblClcked:٪ s' ، selectItem.Caption) ؛
  النهاية;
النهاية;

في معالج الأحداث OnDblClick (أو OnClick) ، اقرأ وظيفة GetHitTestInfoAt من خلال تزويدها بموقع الماوس "داخل" عنصر التحكم. للحصول على موقع الماوس المرتبط بعرض القائمة ، تُستخدم وظيفة ScreenToClient لتحويل نقطة (الماوس X و Y) في إحداثيات الشاشة إلى إحداثيات محلية أو منطقة عميل.

إرجاع GetHitTestInfoAt قيمة THitTests نوع. الاختبارات هي مجموعة من THitTest القيم المذكورة.

قيم التعداد THitTest ، مع وصفها ، هي:

  • htAbove - فوق منطقة العميل.
  • htBelow - أسفل منطقة العميل.
  • htNowhere - داخل السيطرة ، ولكن ليس على عنصر.
  • htOnItem - على عنصر أو نصه أو صورة نقطية له.
  • htOnButton - على زر.
  • htOnIcon - على أيقونة.
  • htOnIndent - على مساحة بادئة عنصر.
  • htOnLabel - على الملصق.
  • htOnRight - على الجانب الأيمن من عنصر.
  • htOnStateIcon - على أيقونة الحالة أو الصورة النقطية المرتبطة بعنصر.
  • htToLeft - إلى يسار منطقة العميل.
  • htToRight - إلى يمين منطقة العميل.

إذا كانت نتيجة استدعاء GetHitTestInfoAt هي مجموعة فرعية (مجموعات دلفي!) من htOnIcon و htOnItem و htOnLabel و htOnStateIcon ، يمكنك التأكد من قيام المستخدم بالنقر فوق العنصر (أو رمز الرمز / الحالة الخاص به).

وأخيرا ، إذا كان ما سبق صحيحا ، وقراءة المحدد خاصية عرض القائمة ، تقوم بإرجاع العنصر المحدد الأول (إذا كان يمكن تحديد متعددة) في عرض القائمة. قم بعمل شيء باستخدام العنصر الذي تم النقر عليه / النقر المزدوج / المحدد ...

تأكد من تنزيل الكود المصدري الكامل لاستكشاف الكود والتعلم من خلال تبنيه.


شاهد الفيديو: Web Apps of the Future with React by Neel Mehta (شهر فبراير 2023).

Video, Sitemap-Video, Sitemap-Videos