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

ممكن مساعدة عاجلة

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

اريد امر لختصار مجموعة الاوامر التالية:

If A1.Left >= 208 Then A1.Move A1.Left + 1, A1.Top + 1.85

If A2.Left >= 208 Then A2.Move A2.Left + 1, A2.Top + 1.85

If A3.Left >= 208 Then A3.Move A3.Left + 1, A3.Top + 1.85

If A4.Left >= 208 Then A4.Move A4.Left + 1, A4.Top + 1.85

If A5.Left >= 208 Then A5.Move A5.Left + 1, A5.Top + 1.85

If A6.Left >= 208 Then A6.Move A6.Left + 1, A6.Top + 1.85

If A7.Left >= 208 Then A7.Move A7.Left + 1, A7.Top + 1.85

If A8.Left >= 208 Then A8.Move A8.Left + 1, A8.Top + 1.85

If A9.Left >= 208 Then A9.Move A9.Left + 1, A9.Top + 1.85

If A10.Left >= 208 Then A10.Move A10.Left + 1, A10.Top + 1.85

If A11.Left >= 208 Then A11.Move A11.Left + 1, A11.Top + 1.85

If A12.Left >= 208 Then A12.Move A12.Left + 1, A12.Top + 1.85

If A13.Left >= 208 Then A13.Move A13.Left + 1, A13.Top + 1.85

If A14.Left >= 208 Then A14.Move A14.Left + 1, A14.Top + 1.85

If A15.Left >= 208 Then A15.Move A15.Left + 1, A15.Top + 1.85

ارجو الرد سريعا وشكرا

#2

رغم أن الكود الذي كتبته فيه بعض الغموض إلا أنه من الواضح أن A1,A2 ... هي عبارة عن أدوات , و إذا كانت هذه الأدوات من نفس النوع فإنني أنصحك أن تعتمد الـ Control Array مصفوفة الأدوات بدلا من ذلك ومن ثم الدخول في حلقة For لترتيبهم. و إذا كانت الأدوات من أنواع مختلفة أو لا تريد استعمال مصفوفة الأدوات يمكنك عمل ما يلي:

لنفترض مثلاً أنه لديك 4 أداة عنوان , 4 أزرار , 4 أداة نص اسمائها كما هي موضحة

'in General Declaration
Dim Col As Collection

Private Sub Form_Load()
Set Col = New Collection
Col.Add Command1
Col.Add Command2
Col.Add Command3
Col.Add Command4
Col.Add Text1
Col.Add Text2
Col.Add Text3
Col.Add Text4
Col.Add Label1
Col.Add Label2
Col.Add Label3
Col.Add Label4

End Sub

Private Sub ArrangeTools()
Dim Obj As Object
For Each Obj In Col
    If Obj.Left >= 208 Then Obj.Move Obj.Left + 1, Obj.Top + 1.85
Next Obj
End Sub

ثم استدعاء الإجراء ArrangeTools في المكان الذي تريد.

أرجو أن أكون قد لبيت ما تريد.

#3

مشكور على سرعة الرد

#4

الa1عبارةshape

#5

الامر لا يعمل يقول لي expected end sub

#6

أخي abasy الكود صحيح , كل ما عليك فعله هو نسخ الكود و لصقه الفورم بعد أن تضيف 4 أزرار و 4 أداة عنوان و 4 أداة نص .

ثم أنني طرحت فكرة عليك فهمها و حسب دون التقيد حرفياً بما كتبت . إنك مبتدأ في الفيجوال. أليس كذلك؟

#7

ياريت لو تفهمنا شو بدك تعمل بالضبط مشان نساعدك بالفكرة بس على كل إذا إنتا بدك بس هيك تعمل ماعليك عير إنك توخد هاد الفنكشين

private function Any(obj as object)
If obj.Left >= 208 Then obj.Move obj.Left + 1, obj.Top + 1.85

end function

ولإستدعاء هاد الفانكشين بتكتب

any shape1

هاي هيه المشكله :)

بسام

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

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

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