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

محاولتي مع Rise Event اول محاولة ولا اعلم ما الخطأ

مغلق
بدأه مبرمج مبتدا في 23 أغسطس 2007 · 24 رد · 1,484 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

انا حاولت اسوي rise event على المسج البوكس :: اقصد المكتبة ::

بصراحة حاولت اشرح المشكلة لكن لا اعرف لكنني اريد استخدام المكتبة ولا استطيع !!!

الخطا :

Private Sub msgbox_cmdclicked()
Set msgbox = New Class1
Label1.Caption = ""
End Sub

لم يعمل ؟؟؟!!!!

msgbx.rar

startingprogremmer.jpg
#2

المشروع المرفق بدون Classes

#3

أخي الكريم ، أنا صممت مثال من قبل لإحدي أصدقائي بالمعهد عن كيفية تصميم مكتبة ( Class ) لتقليل الأعباء البرمجية وعدم التكرار داخل النماذج !!!

فهذا المثال يحتوي علي عديد من الأمثلة منها بناء حدث وإستدعائة - بناء الخصائص - الربط مع قاعدة بيانات بسيطة - طريقة ربط الفئة من داخل النماذج - ...... الي آخرة

فأحببت أن أرفق لك نفس المثال لعلي وعسي أن يفيدك بشيء

أما النسبة للمثال المرفق التابع لك فهو ناقص ملف الـ Class .

وشكراً

Project.rar

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#4

اسف اخي

msgbx.rar

startingprogremmer.jpg
#5

اتمنى تقولوا بس الخطا فين :(

startingprogremmer.jpg
#6

لست متأكد لكن حسب ماقرأت في الكود بالمفكرة

أرى أن المشكل في التسميات فأنت لا تحترم أسماء الاحداث عند استدعائها

حاول مراجعة الكود والمثال الذي أرفقته لك في المرة السابقة وستجد الخطأ لوحدك

#7

اول خطأ هو

Public Sub msgonecmd()

'msgfrm.Show vbModal

'الصح

set my_frm =new msgfrm

my_frm.show vbmodal

set my_Frm =nothing

End Sub

وبدل Public Sub msgonecmd() ووضع خاصية مرر النص في نفس الدالة

Public Sub msgonecmd(byval msg as string)

وفي كود الفورم

Private Sub msgbox_cmdclicked()

'لا اعرف سبب وجودها

'Set msgbox = New Class1

Label1.Caption = ""

End Sub

هذه الملاحظات على السريع

#8

أخي الكود أشتغل عندي تمام

بس تأكد من إرفاق المكتبة إلى مشروعك

Project>>> References

ثم أختر msgbox للي أنت عاملها

تحياااااتي

للصداقة البرمجية

pro-vb6@hotmail.com

#9
وبدل Public Sub msgonecmd() ووضع خاصية مرر النص في نفس الدالة 
Public Sub msgonecmd(byval msg as string)

وعند استخدام المكتبة ما ذا اكتب ؟؟

هل اكتب :

msg.msgonecmd

؟؟

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

startingprogremmer.jpg
#11

MsgBox.rar

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#12

اخي mma_EG_cairo

بعد تعديلك هناك خطا ::

Set msgbox = New Class1

cant creat object ....

startingprogremmer.jpg
#13

اخي الكريم ، شيء طبيعي أن يجب عليك تحميل المكتبة بمسجل النظام أولاً ،،،،

علي العموم سأرفق لك ملف آخر كي تتمكن من تحميل المكتبة بمسجل النظام ،،،،

قم بوضع الملف المرفق في مسار المكتبة msgbox.dll ، ومن ثم أنقر علية ،،،،

سيعرض لك نافذة Dos ، بعد إغلاقها قم بفتح الـ sample مرة أخري ،،

RunDll.rar

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#14

اخي لا استطيع الا ان اقول لك بان تراه المشكلة بنفسك ::::

post-103926-1188028312_thumb.gif

startingprogremmer.jpg
#16

اخي حلت المشكلة هكذا لكن هل لازم ان اجعله في قروب ؟؟

startingprogremmer.jpg
#17

أخي الكريم ( مبرمج مبتديء ) ،

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

أخي الكريم ، لا يجوز تنفيذ حدث العميل إلا بعد تحويل المكتبة الي DLL وكذلك تحويل مشروع العميل الي

EXE ،

علي العموم هذا الموضوع تم النقاش فيه علي الرابط التالي :

حاول أن تتابع الرابط صفحة بعد صفحة حتي تفهم جيداً ما تم النقاش فية !!

أما بالنسبة إذا كنت ترغب في تنفيذ حدث العميل ، فقم بإضافة مشروع المكتبة داخل مشروع

الـ EXE .

وشكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#18

أخواني ما هو Rise Event?

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#19
اقتباس
اخي حلت المشكلة هكذا لكن هل لازم ان اجعله في قروب ؟؟

لا ليس ضروريا لكن وضعته للتسهيل عليك فيمكنك الاستغناء عنها لكن في المشروع التشغيلي(exe) يجب اضافة مرجع الى المكتبة dll

اقتباس
أخواني ما هو Raise Event?

هو اطلاق حدث معين واغلب الاوقات يستخدم في صنع الادوات usercontrols وتنبيه المستخدم بهذا الحدث مثل

control_click عند عملة كبسة ماوس على الاداة تنبه المستخدم بهذه الكبسة عن طريق raisevent click والمستخدم في برنامجه يستقبلها في control_click

#20
اقتباس
لا ليس ضروريا لكن وضعته للتسهيل عليك فيمكنك الاستغناء عنها لكن في المشروع التشغيلي(exe) يجب اضافة مرجع الى المكتبة dll

ارجو الشرح لم افهم جيدا

startingprogremmer.jpg
#21

ادخل على مشروع المكتبة واعمله dll

ثم افتح المشروع الثاني وادخل على references وابحث عن ال dll السابقة

وانتهى امر ال group

#22

مرفق قديم لى هنا بالمنتدى Class Event Test

#23

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

startingprogremmer.jpg
#24

و أنت عايزة يشتغل من الهوا :lol:

طالما أنك مش هتشتغل من الـ Project Group يبقى تعمل Compiling لمشروع الـ DLL و تسجل الـ DLL و بعدين تضيفه هو كـ Reference

#25

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

لحل مشكلة المجموعة افتح مشروع المكتبة ثم على خصائص المشروع توجد تبويبات (tabs) احداها components ويوجد بها ثلاث خيارات فيجب ان تختار اخر واحدة binary compatibility وتختار ملف ال dll الذي عملته سابقا في المربع الذي اسفل هذا الخيار وبعد ذلك اعمل ملف ال dll .

بعد ذلك افتح المشروع العادي ثم على references

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

مواضيع مشابهة