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

حصر محتوى الـ Project1 الخاص بي بدالة تكرار

بدأه m_ageeb في 14 يوليو 2011 · 4 رد · 705 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد حصر كل الـform's الموجودة في الـProject1 باستخدام اي دالة للتكرار (for ...next أو Do while .....loop أو غيرها )

على سبيل المثال

اسم المشروع Project1

اسماء الشاشات الموجودة

login / frm_main / frm_bill / repot

واسماء العناوين داخل الشاشات

1- شاشة login تحتوي على العناوين التاليه :

lbl_name

lbl_password

2- شاشة frm_main تحتوي على العناوين التاليه :

Label1

Label2

Label3

3- شاشة frm_bill تحتوي على العناوين التاليه :

Label1(0)

Label1(1)

Label1(3)

4- شاشة report تحتوي على العناوين التاليه :

lbl_repo1

lbl_repo2

lbl_name1

lbl_total1

خلاصة المطلوب الوصول إلى العناوين داخل الشاشات لغرض عمل ترجمة للعناوين بحسب اللغة المطلوبة من المستخدم .

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

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

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#2

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

مثلا تبغى تحصر كل الـ Labels داخل form1

dim LbName as Control

For Each LbName in Me.controls
If typeof LbName is Label then
msgbox LbName.Caption
End if 
Next

بكذا راح يظهر لك كل الـ Caption لكل Label على ال form1 على شكل msgbox

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

(وَمَا أُوتِيتُمْ مِنَ الْعِلْمِ إِلَّا قَلِيلًا)

#3
iProgrammer كتب:

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

مثلا تبغى تحصر كل الـ Labels داخل form1

dim LbName as Control

For Each LbName in Me.controls
If typeof LbName is Label then
msgbox LbName.Caption
End if 
Next

بكذا راح يظهر لك كل الـ Caption لكل Label على ال form1 على شكل msgbox

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

مشكور على الرد لكن إجابتك هي الجزء الآخر من السؤال ، لكن ما اطلبه هو حصر الـforms داخل المشروع

اي ان يظهر لي اسماء الـشاشات التالية login / frm_main / frm_bill / repot

ومن ثم ياخذ اسم الشاشة ويبحث عن الـlabel التي بداخلها

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

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

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#4

السلام عليكم

بشكل مبسط لايوجد امر واحد يقوم بهذه المهمة لكن يمكن استخدام forms (حيث forms تحتوي على الفورمات التي تم تشغيلها اي تم عمل load لها وليس جميع الفورم في المشروع )

والكود كمايلي :

 Sub main()

Forms.Add ("Form1")
Forms.Add ("Form2")
Forms.Add ("Form3")
Forms.Add ("Form4")
Forms.Add ("Form5")
Forms.Add ("Form6")


 Dim x As Form
 For Each x In Forms
  Debug.Print x.Controls.Count
  printctls x

 Next
End Sub


Sub printctls(f As Form)

Dim LbName As Control

For Each LbName In f.Controls
    If TypeOf LbName Is Label Then
    MsgBox LbName.Caption
    End If
Next

End Sub

اما الاشياء غير الفورم مثل التقارير فلا اعرف طريق لها .

وحل آخر هو استخدام مشروع من نوع addin حيث اعتقد يمكنك الوصول الى جميع ال object في المشروع لكنه بحاجة الى خبرة اكبر .

#5

الحمد لله وجدت ما كنت ابحث عنه ، في احدى المواقع مع بعض التعديل مني

يمكنكم الأن حصر محتوى الform بكل سهولة

الكود على المرفقات

trans_form.rar

تم تعديل هذه المشاركة بواسطة m_ageeb في 21 يوليو 2011 في 14:52

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

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

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

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