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

معرفة ما إذا كان الفورم مفتوح

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

ببساطة أردت أن أعمل زي برنامج الشات

يعني لما تجي رسالة من عند واحد يتكلم معي اذا كان النافذة بتاعو مفتوحة يعمل عليها تحديد واذا لم تكن يقوم بفتحها

#2

راجع مشروعى : Yomna File Association Example

الجزء الخاص بالـ Mutex

تم تعديل هذه المشاركة بواسطة msayed2004 في 3 مايو 2007 في 23:57

#3

ياعمي الطلب بسيط جدا لا يحتاج الى كل هذه الأكواد :P

لو تكرمت تشرحنا جزئية الMutex

وكيف استفيد منها في حل مشكلتي

#4

وبنظرة بسيطة أبسط من الطلب كنت هتعرف أنك مش محتاج غير الـ Class اللى أسمه clsMutex وهو فيه طريقة الأستخدام :rolleyes: ;) :P (h) .

Mutex

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

#5

لا أملك الفيجوال بيسك على الجهاز ده بس

بالقاء نظرة على الكلاس رأيت أنها تتعلق بالتطبيقات أليس كذلك؟

يعني حل مشكلة App.PrevInstance

لكني بالنسبة لحالتي فأنا لدي فورم أساسي أشتق منه جميع الفورمات اللي راح تظهر لما يجي private message عند العميل

فأردت كيف أعلم أن فورم معين مفتوح لكي لا أعيد فتح نسخة جديدة فقط

نسيت تقلنا شئ عن الmutex

تم تعديل هذه المشاركة بواسطة Xpert2005 في 4 مايو 2007 في 18:30

#6

يعنى تقصد مش البرنامج كله ؟

أعمل متغير عام من نوع Boolean و لما الفورم تفتح أعمله True و لما تقفل أعملة False

تعديل :

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

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

#7

انت مفهمتنيش لسه

مهو فورم واحد يتغير فقط حسب اسم العميل يعني راح أكتب بالcaption اسم العميل لكن الفورم في المشروع واحد للprivate msg

#8
Option Explicit

Private Sub Command1_Click()
MsgBox CaptionPresent("My Client # 1")
End Sub

Private Function CaptionPresent(sCaption As String) As Boolean
Dim Frm As Form
For Each Frm In Forms
	If Frm.Caption = sCaption Then CaptionPresent = True: Exit For
Next
End Function

هو ده المطلوب ؟

تم تعديل هذه المشاركة بواسطة msayed2004 في 4 مايو 2007 في 19:27

#9

بدون ماجرب الدالة مش راح تنفع

#10

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

لو صح , أنت قلت أنك بتديها أسم ( Caption ) العميل طب ما نستغل النقطة دى !

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

#11

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

أظن أن msayed2004 قد أصاب لكن يجب اضافة بعض الأشياء المهمة هنا لكي يكتمل الحل

المشكل هنا هو التعرف على الفورم مااذا كان قد تم انشاء نسخة منه أو لا

لذلك نصرح بمتغير مصفوفة من الفورم الذي سيتم انشاء نسخ منه

Private oMsgWnd() As Form2

ثم نبحث داخل هذه المصفوفة باستعمال الدلة التالية

Private Function GetMsgWindow(ByVal sUser As String) As Form2
	Dim lCount As Long, lNumWindows As Long
	On Error Resume Next
	lNumWindows = UBound(oMsgWnd)[code][code]
	If Err = 0 Then
		For lCount = 0 To lNumWindows
			If sUser = oMsgWnd(lCount).CaptionThen
				Set GetMsgWindow = oMsgWnd(lCount)
				Exit Function
			End If
		Next
		ReDim Preserve oMsgWnd(UBound(oMsgWnd) + 1)
		Set oMsgWnd(UBound(oMsgWnd)) = New Form2
		Set GetMsgWindow = oMsgWnd(UBound(oMsgWnd))
	Else
		ReDim oMsgWnd(0)
		Set oMsgWnd(0) = New Form2
		Set GetMsgWindow = oMsgWnd(0)
	End If

	   End Function

تم تعديل هذه المشاركة بواسطة DreamNet في 6 مايو 2007 في 01:49

#12

في الرابط مشاركة للأخ عبد العزيز اليوسفي

بإظهار وميض في شريط المهام

أتمنى أن تفيدك

كيف أتمكن من اظهار ضوئ أصفر على شريط المهام للتنبيه عند حدوث تغيير ما كما في بعض البرامج

بالتوفيق

ألا بذكر الله تطمئن القلوب

#13

شكرا جزيلا dream لقد حلت

مشكور أخي المزمجر على الاضافة الجميلة

أكيد أحسن من setfocus

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

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