تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب حول sstab
#7
السلام عليكم...

مشكلة مكون الخط (Line) في VB6 أنه لا يستجيب لأية أحداث!

في المرفقات مكون قمت بتصميمه سنة 2009 و قدمته في مشاركة سابقة - ربما من أيام المنتدى القديم - و هو عبارة عن مكون خط باسم (AccessibleLine) يستجيب لأربعة أحداث أساسية هي: النقر (Click) و MouseDown و MouseUp و MouseMove.

يختلف هذا المكون عن الخط (Line) الموجود في VB6 في أنه ليس له خصائص X1 و Y1 و X2 و Y2، و إنما له خصائص Left و Top و Width و Height، كما أنه له 4 اتجاهات أساسية (الخاصية LineDirection): أفقي ( _ ) و رأسي ( | ) و قطري للأسفل ( \ ) و قطري للأعلى ( / ). و يمكن وصله بين أب نقطتين باستعمال الخصائص الأربعة المذكورة (Left و Top و Width و Height). بالإضافة إلى ذلك فإن له الخصائص التالية:
= الخاصية Cursor: تحدد شكل مؤشر الفأرة من مجموعة قيم محددة مسبقاً (مثل الخاصية MousePointer في VB).
= الخاصية CustomeCursor: لتحديد صورة مخصصة لتكون مؤشر الفأرة (مثل الخاصية MouseIcon في VB. و يجب أن تكون الخاصية Cursor مضبوطة على vbCustom = 99).
= الخاصية DisabledColor: لتحديد لون الخط عندما يكون معطلاً (أي عندما تكون Enabled = False)، و يجب أن تكون الخاصية UseDisabledColor مضبوطة على True.
= الخاصية LineColor: لتحديد لون الخط.
= الخاصية LineSize: لتحديد سمك أو عرض الخط بوحدة البكسل.
= الخاصية UseDisabledColor: لتحديد ما إذا سيتم تطبيق اللون DisabledColor عندما يكون الخط معطلاً.

* ملاحظة: لا تهتم للحجم الزائد للمكون أثناء التصميم (إلا لضبط نهايات الخط) لأن المساحات الزائدة لن تكون جزءاً من الخط أثناء التشغيل.

* المرفق AccessibleLineSource يحتوي على الكود المصدر للمكون مع شرح مفصل بالعربي ضمن الكود.
* المرفق AccessibleLineOCX يحتوي على المكون نفسه (AccessibleLine.ocx) و الذي من المفترض أن يتم نسخه إلى المجلد System32 ثم تسجيله عن طريق الأمر regsvr32 AccessibleLine.ocx .

بعد تسجيله في النظام يمكن تضمينه في VB عن طريق الأمر Components من القائمة Project ثم تحديد البند AccessibleLine (غالباً ستجده في البداية).

* و هذا مثال كود لتحريكه:
كود :
Private StartX As Single
Private StartY As Single

Private Sub TLineWithEvents1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton Then
        StartX = X
        StartY = Y
    End If
End Sub

Private Sub TLineWithEvents1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton Then
        TLineWithEvents1.Left = TLineWithEvents1.Left + X - StartX
        TLineWithEvents1.Top = TLineWithEvents1.Top + Y - StartY
    End If
End Sub

*** نرجو الاستفادة و السلام.


الملفات المرفقة
.rar   AccessibleLineOCX.rar (الحجم : 14.19 ك ب / التحميلات : 41)
.rar   AccessibleLineSource.rar (الحجم : 18.62 ك ب / التحميلات : 41)
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
طلب حول sstab - بواسطة AEDC_mybb_import5693 - 01-07-13, 06:31 PM
طلب حول sstab - بواسطة ALBRNS - 04-07-13, 05:16 AM
طلب حول sstab - بواسطة AEDC_mybb_import5693 - 05-07-13, 07:14 PM
طلب حول sstab - بواسطة asto - 11-07-13, 02:01 AM
طلب حول sstab - بواسطة VB_Coder - 12-07-13, 01:08 AM
طلب حول sstab - بواسطة asto - 12-07-13, 02:25 AM
طلب حول sstab - بواسطة ناجي إبراهيم - 12-07-13, 04:18 AM
طلب حول sstab - بواسطة asto - 12-07-13, 11:31 PM
طلب حول sstab - بواسطة 3amo - 13-07-13, 12:55 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم