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

أمر RaiseEvent

مغلق
بدأه MMA_EG_Cairo في 3 يوليو 2007 · 42 رد · 3,246 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#26

إخواني الكرام ، أنا ملاحظ أن طلبي بالفعل غير عادي ،

أنا آسف إخواني ولكنني بالفعل في أشد الإحتياج لحل هذه المشكلة ، فياريت حد يحاول معانيا

ويساعدني لحل هذه المشكلة ، لإنها ستفيدني كثيراً وتمنعني عن تكرار العديد من الأكواد داخل

الفيجوال بيزيك . وليس طلبي مقيد ، بل حلها بأي شكل من الأشكال.

وشكراً

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#27

إخواني ، هل أنا قد جرحت شخصٍ منكم.

أعزروني أخواني ، فأنا قد عرضت هذا الموضوع بأكثر من منتدي من قبل ، وحتي الآن لم أحصل علي حل جزري لهذه المشكلة . وأنا أيضاً أتعشم فيكم جميعا .

وشكراً

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#28

رجاء

رجاء

رجاء

المساعدة

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#29

لتنفيذ حدث ما من داخل فورم بداخل DLL أستعمل الطريقة اللى فى المشروع المرفق , و هى ليست من أبتكارى ( حصلت على مساعدة فيها سابقا ) :

Class_Event_Test.rar

تم تعديل هذه المشاركة بواسطة msayed2004 في 26 يوليو 2007 في 18:46

#30

أخي الكريم ، تحية طيبة وبعد ،

أشكرك كثراً علي إستجابتك لي ، وأشكرك كثيراً علي هذا الكود الجميل ، ولكن !!!!

وآسف من كلمة ( لكن ) ، فعند تنفيذ المشروع TestPrj ، يقوم بتنفيذ الحدث ( ShowingAboutWindow )

أما عند إغلاق الديالوج لا ينفذ الحدث ( ClosingAboutWindow ) ، أما الحدث ( ShowingAboutWindow )

فينفذ مرة واحدة أثناء فتح النموذج ، وعند الرغبة في تنفيذها مرة أخري لا تستجيب .

قمت بإضافة زر أمر داخل النموذج frmAbout ، وقمت بنسخ الكود الموجود في حدث Form_Load به ، لم ينفذ .

فما هي المشكلة ؟

وسؤالي الثاني هو عن الدالة ( ObjPtr ) ، ما هذه الدالة الغريبة ، ولماذا لم أجد لها أي مؤشرات داخل نافذة

( Object Browser ) .

الرجاء النظر الي المثال مرة أخري

ورجاء الرد علي سؤالي بسرعة

وشكراً كثيراً علي الرد

EventTest.rar

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#31

بالنسبة لحدث ClosingAboutWindow فهو بيتنفذ عندى عادى بدليل أن النافذة يعود أسمها لـ Test مرة أخرى.

بالنسبة لحدث ShowingAboutWindow فنفذه زى ما أنت عايز , لاحظ أن أسم النافذة أتغير وخلاص من أول مرة , حط مثلا Beep , هتسمعها كل مرة عادى.

بالنسبة لـ ObjPtr فهى Hidden Keyword مش هتلاقيها فى الـ Object Browser ليه بقى معرفش بس أهى تناحة من مايكروزفت.

عموما راجع Unofficial Documentation for VarPtr, StrPtr, and ObjPtr

-------------------------------------------------

بس ليا رجاء عندك و هو أنك تكبر حجم الخط اللى بتستعملة , أو تستعمل خط تانى لأنه صعب فى القرأة قوى.

#32

ها ها ها ها هااااااااااااااااة

بالفعل أخي ، هناك العديد من الأوامر المخفية داخل الفيجوال بيزيك ، وكما قلت مجرد تناحة من ميكروسوفت ، بس والنبي ياريت بلاش الأسلوب دة علشان في مصر بيقولوا الملافظ سعد !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

بس بردو أنا مقيد لكلامك الواقعي !!!!!!

أخي الكريم ، أنا جربت الكود ولم ينفذ معي ، فياريت ترفقلي مثال بسيط يوضح كيفية إستدعاء هذه الأحداث أكثر من مرة من داخل الديالوج ، ويجب أن تعلم جيداً أنني صفر في اللغة الإنجليزية ، فياريت تشرحلي هذه الدالة والدوال التي قمت بذكراها .

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

وشكراً

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#33

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

ملاحظة: أخي الكريم لا يجوز الحلف يغير الله فلوسمحت لو تترك عادة انك تحلف بالنبي وأدري أنك موقاصد تحلف بغير الله ولكن هذا يعتبر في الدين شرك أصغر أرجو تقبل النصيحة بصدر رحب.

أخوك سعد.

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#34

يا خوفى أنك تكون من محبى مايكروزفت :lol: !

عموما بالنسبة لـ ObjPtr تقدر تقول أنها أختصار لـ Object pointer طبعا الكلام ده لمبرمجى السى و الدلفى ( والباسكال ) و الأسمبلى مفهوم جدا لأن الـ Pointers جزء أساسى فى برامجهم و التعامل مع الـ Pointers عندهم مدعوم بشكل كامل فلا تتوقع أنك هتعرف الدالة دى بسهولة.

الـ Pointer بالبلدى و عموما عبارة عن متغير من نوع Long يحمل عنوان شئ ما فى الذاكرة.

دالة ObjPtr بتجيب لنا العنوان ده ( اللى هو على هيئة Long ) و الخاص بـ Object ما.

و راجع الموضوع ده كمان : How To Get the Address of Variables in Visual Basic ( أنجليزى هو كمان )

بالنسبة للمشروع أنا مش شايف فيه أى مشكلة !

عموما جربه تانى من المرفق ده ( فيه تعديل بسيط ).

Class_Event_Test.rar

#35

إخواني الكرام ، تحية طيبة وبعد ،

أنا لاحظت شيء غريب أثناء كتابة الكودين ، أي طريقة إستخدام الـ Collection أو الطريقة الطبيعية !!!!!

1- أثناء التحميل للنموذج ينفذ طبيعي .

2- أثناء إغلاق النموذج لا ينفذ.

3- أثناء النقر علي زر الأمر لا ينفذ.

مع العلم أنني قد حولت المكتبة الي DLL .

ولكن وجدت شيء غرييييييييييييييب !!!!!!!!!!!!!!

عند تحويل برنامج Standerd EXE الي ملف تنفيذي ذات إمتداد EXE ينفذ طبيعي جداً ، بمعني تنفيذ الأمر أثناء الـ Load وأثناء الـ UnLoad وأثناء النقر علي زر الأمر Button .

إخواني الكرام ، هل هذه المشكلة في برنامج الـ VB 6.0 ذاتة ، أم المشكلة في تنصيب نظام التشغيل ذاتة . مع ملاحظة أن هذه المشكلة تواجهني منذ فترة . فما هو الحل ؟

علي العموم سأرفق لكم الكود القديم والجديد ، وستجدوا ما أقولة لكم

وشكراً

***********************************************************

اقتباس
ملاحظة: أخي الكريم لا يجوز الحلف يغير الله فلوسمحت لو تترك عادة انك تحلف بالنبي وأدري أنك موقاصد تحلف بغير الله ولكن هذا يعتبر في الدين شرك أصغر أرجو تقبل النصيحة بصدر رحب.

اقتباس
يا خوفى أنك تكون من محبى مايكروزفت

يا خبر مش ولا بد ، بمجرد تهريجي معكم جعلتوني من المشركين ومن

محبي ميكروسوفت !!!!!!!!!

:wacko: :wacko: :wacko: :wacko:

أممممممممممممممممممممممممممم!!

أنا لدي قطة في منزلي ، أحب ألعب معها في بعض الأحيان ولاحظ أن

القطة روح مثلنا .

ففي يوم قرأت كتاب عن الكبائر ، فوجأت أن من إحدي الكبائر أن

تقوم بالمسح علي الحيوان ، فتعتبر من قوم لوط .

جلست لمدة أسبوعين لا أقرب منها خوفاً وفزعا من الله تعالي علي

السنوات السابقة .

فألهمني الله بشيخٍ حكيم . قال لي ما هدفك من تربيتك للقطة . قلت

له مجرد نظافة للبيت . قال لي ما هدفك بمسحك علي القطة . قلت له

حتي لا تخاف مني وأنا أيضاً أعطف عليها لأنا روح مثلي . قال لي

الأعمال بانيات وكل إمرإن ما نوي

-------------------

هناك مثل شعبي يقول : تعرف فلان ، قال نعم ، قال عاشرتة ، قال لا

، قال يبقي متعرفهوش

أتمني أن تكونون فهمت.

علي العموم هذا المنتدي منتدي لتلاقي وإكتساب العلوم ، وليس

للتهريج أو للأسف

***********************************************************

RaiseEvent.rar

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#36

أخي أرجو التوضيح جيدا أين المشكلة ومتى تحصل.

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#37

هو أنا المثال شغال عندى عادى من داخل الـ VB

بس قبل ما نحكم على نسخة الـ VB بتاعتك على أن فيها مشاكل تأكد من :

1 - أنك بتفتح ملف الـ Project Group و ليس كل Project على حده.

2- من مشروع الـ Standard EXE أختر References و تأكد من أن أسم المشروع الآخر موجود و تم أختياره ( لاحظ أنك مش محتاج تعمله DLL علشان تتأكد من شغله طالما أنك داخل الـ IDE لأن الـ VB بيظهر عنصر فى قائمة الـ References خاص بمشروع الـ DLL لوحده ).

أن كانت لسه المشاكل دى ظاهرة عندك يا أما تستحملها و تعمل Compile للـ DLL كل مرة عايز تجربه أو تجرب تنزلة تانى ( يفضل بعد أزالة النسخة المنصبه ).

-----------------------------------------------

بالنسبة لرد الأخ Saad AL.Moosa فكان فيه نصيحة و هى واجبة عليه طالما أنه أخد باله من ما يستدعى النصح و شكرا له على حرصه على أخوانه بالمنتدى.

بالنسبة لردى فمفيش مانع أن أحنا نمزح بين كلامنا عادى مش لازم يبقى كله تعليمات و وظائف و أوامر و مناقشة أخطاء طالما أن الموضوع لم يقلب بالكامل لمزاح و لم تفرد مشاركات بالكامل بغرض الفكاهة و التسلية.

عموما حصل خير و ياريت ننهى النقاش الجانبى فى الموضوع.

تم تعديل هذه المشاركة بواسطة msayed2004 في 29 يوليو 2007 في 12:22

#38

1- بالنسبة للـ Group ، استخدمته ولم يعمل معي ، ولكن يجب أن تعلم جيداً بأنني سأضع هذا الكود بداخل مكتبة DLL وليس من داخل المشروع ذاته ، أي أنني أرغب في بناء مكتبة DLL كي أستخدمه أكثر من مرة داخل مشاريع EXE . وهذه هي مشكلتي من البداية ، فقد تم حلها في بداية المشاركة ، ولكنني قمت بإعادة فتح الموضوع لهذه المشكلة ، مع العلم أنني قمت بتنصيب الويندوز والفيجوال بيزيك مرتين خلال هذه الفترة .

2- أخي الكريم ، مشكلتي ليست في الـ DLL ذاته ، ولكن مشكلتي مع الـ EXE ، فلا يتم تنفيذ أحداث المكتبة DLL أثناء تصميم مشروع جديد من نوع Standerd EXE ، ولكن يتم تنفيذ الأحداث الموجودة بداخل المكتبة بعد تحويل المشروع الي ملف تنفيذي EXE

مثال :

 

Dim WithEvents obj As Dialog

 

''هذا الحدث يتم استدعائه من داخل نموذج الديالوج الموجود بالمكتبة عند النقر علي زر الأمر.

Private Sub obj_ClickButton()

		MsgBox "EXE هذا الحدث لا ينفذ أثناء التصميم ، ولكنة ينفذ أثناء التنفيذ"

End Sub

 

Private Sub Form_Load()

	   Set obj = New Dialog

End Sub

أنظر الي المثال المرفق ، ونفذ المشروع Test علي حدة ، بحيث أن يتعامل مع المكتبة DLL ، ثم قم بتحويلة الي Exe تجد انه يعمل طبيعي ، ولكن أثناء التصميم لا يعمل .

وأشكرك كثيراً علي مساعدتك لي

أما عن الموضوع الخاص بـرد الأخ Saad AL.Moosa فصدقني أنا والله نسيت الموضوع ، وعلي العموم كلنا أخوة في هذا الوطن .

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#39

آسف أخري الكريم ، ها هو المثال مرة أخري :

 

Dim WithEvents obj As Dialogs.Dialog

 

Private Sub obj_ClickButton()

	  MsgBox "هذا لا يعمل أثناء التصميم ، ولكنة يعمل أثناء تحويل المشروع الي ملف تنفيذي"

End Sub

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#40

أنا آسف يا إخواني ، فأنا معتاد أن أكتب في NotePad ثم أنسخ هنا ، ولكنني الآن كتبت في Word ، فآسف مرة أخري ، وها هو

المثال :

 

Dim WithEvents obj As Dialogs.Dialog

Private Sub obj_ClickButton()

MsgBox "هذا لا يعمل أثناء التصميم ، ولكنة يعمل أثناء تحويل المشروع الي ملف تنفيذي"

End Sub

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#41

أنا مشعارف أية المشكلة بالضبط :

Dim WithEvents obj As Dialogs.Dialog

Private Sub obj_ClickButton()

MsgBox "هذا لا يعمل أثناء التصميم ، ولكنة يعمل أثناء تحويل المشروع الي ملف تنفيذي"

End Sub

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

#42

لا تكتب اى Tag داخل الـ Code Tag لأنه لن ينفذ , يعنى جوا الـ Code Tag لا تستعمل Right أو Left أو Center أو Font أو Color أو خلافة من الـ BBcode tags

تعديل : ولا حتى الابتسامات .

------------------------------------------

بالنسبة لمشروعك فى المشاركة 35 :

المشروع داخل المجلد Normal هو شغال من الـ VB نفسه لكن :

- أنت مكرر الأحداث يعنى حاطط نسخة من أحداث الـ Class فى الـ Form ليه :blink:

- فى مشروع الـ EXE أنت كاتب :

Dim WithEvents obj As frmDialog

يعنى عامل نسخة من الـ Form مش من الـ DLL !!!! طب ايه لازمة أنك تعمل DLL أساسا ؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

- لم تستخدم فكرة الـ Collection !

المشروع التانى ده المثال بتاعى.

تم تعديل هذه المشاركة بواسطة msayed2004 في 29 يوليو 2007 في 18:05

#43

أخي الكريم ، تحية طيبة وبعد ،

أنا أرفقت لك مثال آخر كي تتضح لك الصورة جيداً .

في المثال المرفق يحتوي علي نموذجين و فئة واحدة .

النموذج الأول هو نموذج العميل ( مشروع Standerd Exe ) تحت إسم Form1 .

النموذج الثاني + الفئة تختص بالمكتبة ( DLL ) ، تحت إسم :

Form = frmDialog

Class = Dialog

أولاً : شرح المكتبة :

-------------------

1- النموذج frmDialog : قمت بإضافة حدث ClickButton ، ثم بعد ذلك

قمت بإستدعاءة من داخل زر الأمر RaiseEvent ClickButton .

2- الفئة Dialog :

أ- قمت بإضافة كائن النموذج كما يلي :

Dim WithEvents obj As frmDialog

وذلك كي يتم التعامل مع كافة الأحداث التي قمت بإضافتها بالنموج ،

مع ملاحظة أن إذا كان النموذج لا يحتوي علي أي حدث جديد يعطي رسالة

خطأ .

ب- الحدث : Event ClickButton()

يقوم هذا الحدث ببناء حدث للعميل يراها موجودة بالفئة .

ج- الإجراء الخاص بفتح الديالوج :

Public Function ShowDialog()

Set obj = New frmDialog

obj.Show 1

End Function

يستخدم في إضافة نسخا كاملة من النموذج بالذاكرة ثم عرضة للمستخدم

كديالوج .

د- حدث الكائن obj :

Private Sub obj_ClickButton()

RaiseEvent ClickButton

End Sub

يستخدم لتنفيذ حدث العميل عند تنفيذ حدث النموذج عند النقر علي زر

أمر الديالوج .

بإختصار : النقر علي زر الأمر ( تنفيذ ) - ثم إستدعاء حدث النموذج الحالي

- ثم تنفيذ الحدث الموجود بافئة - ثم تنفيذ حدث العميل - ثم الرجوع الي نقطة

البداية .

قم بالذهاب الي النموذج frmDialog ، وفي حدث النقر علي زر الأمر قم بعمل Breake

علي إحدي سطورة ، وتتبع الكود خطوة بخطوة وستجد ما أقولة .

أتمني أن تكون وصلت لك المعلومة ، وأعزرني علي هذا الشرح البسيط

اقتباس

يعنى عامل نسخة من الـ Form مش من الـ DLL !!!! طب ايه لازمة أنك تعمل DLL أساسا ؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

أخي الكريم ، أنا لم أقصد طريقة معينة ، بل أنني أقصد طريقة تنفيذ حدث

بمشروع العميل من داخل الديالوج الموجود بالمكتبة . سواء أثناء التصميم

أو التنفيذ . والطريقتين تم تنفيذهم بالفعل . ولكن بعد تحويل المكتبة الي

DLL و المشروع التنفيذي EXE.

أخي الكريم ، في القريب العاجل بإذن الله سأدرج المكتبة ومجموعة من الأدوات

ولكن بعد الإنتهاء من حل كافة المشاكل . فأتمني مساعدتكم .

وشكراً

RaiseEventExample.rar

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

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

أنت وتصرفاتك

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

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

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

My FaceBook

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

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