كيفية إضافة عمود ارتباط تشعبي إلى TcxGrid (شبكة المطور السريعة)

StackOverflow https://stackoverflow.com/questions/2696604

  •  01-10-2019
  •  | 
  •  

سؤال

مرحبًا في دلفي، تمكنت (!) من إضافة عمود إلى عرض جدول TcxGrid الذي يظهر كارتباط تشعبي (بدلاً من سلسلة بسيطة).للقيام بذلك، ما عليك سوى تحرير "خصائص" العمود واختيار "ارتباط تشعبي".تعرض الخلية الآن نمط الارتباط التشعبي (الذي تحته خط) ولكن لا يمكنني طوال حياتي معرفة كيفية:

  1. اجعل المؤشر يتغير إلى "اليد" عندما يكون فوق الرابط.
  2. أضف حدثًا يتم تشغيله عندما أقوم بالنقر فوق الارتباط.

هل أستطيع مساعدتك؟شكرًا.

هل كانت مفيدة؟

المحلول

انقر فوق رأس العمود، ويتم تحديد العمود.

انتقل إلى "الأحداث"

ملكيات - OnStartClick -> يتم تشغيل هذا الحدث عند النقر فوق عنوان URL

في نظام دلفي 7 الخاص بي والمثبت عليه أحدث إصدار من dev.express، يتغير شكل المؤشر إلى يد عند وجود عنوان url.

لقد قمت بضغط نموذج برنامج Dephi 7 الخاص بي وهو قابل للتنفيذ حتى تتمكن من رؤية المشروع الكامل بنفسك (التنزيل من موقعي الخاص www.edelcom.com)

  • قم بتشغيل الملف التنفيذي
  • اضغط على زر الإدراج في الأسفل
  • إدخال عنوان الموقع:www.google.com
  • اضغط دخول
  • تحرك فوق الرابط - تظهر اليد، والنقر على الرابط، يظهر رسالة "تم النقر"، إذا لم يكن لديك حدث النقر، فإنه يبدأ عنوان URL الذي تم النقر عليه (ربما يمكنه فعل ذلك أيضًا، لكنني لم أحاول هذا)

نصائح أخرى

بعد تعيين الخصائص على الارتباط التشعبي ، يمكنك توسيع الخصائص. اضبط خاصية Siongleclick على True للتنشيط بنقرة واحدة.

لتغيير المؤشر أكثر صعوبة. سيتعين عليك الرد على حدث Mousemove وتحديد ما إذا كان الماوس يتجول في عمود الارتباط التشعبي. من devexpress موقع:

procedure TForm1.cxGrid1DBTableView1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var
  Ht: TcxCustomGridHitTest;
begin
  Ht := TcxGridSite(Sender).GridView.Viewinfo.GetHitTest(X,Y);
  If (Ht is TcxGridRecordCellHitTest) and
   (TcxGridRecordCellHitTest(Ht).Item.Properties is TcxHyperLinkEditProperties) then
    Screen.Cursor := crHandPoint
  else
    Screen.Cursor := crDefault;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Screen.Cursor <> crDefault then
     Screen.Cursor := crDefault;
end;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top