منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تحريك المكونات و تغيير حجمها أثناء التشغيل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم...

في المرفقات وحدتان نمطيتان (Class Modules) من أجل القيام بتحريك الكائنات و تغيير حجمها أثناء التشغيل. و الوحدتان هما: CChangeableControlHolder.cls و CChangeableControlManager.cls

الوحدة CChangeableControlHolder.cls هي التي نتعامل معها في برنامجنا، أما الوحدة CChangeableControlManager.cls فإنها تستعمل داحلياً بواسطة الوحدة الأولى.

المكونات المدعومة حالياً هي TextBox و PictureBox و Image و Label و CommandButton و Frame و ListBox (و يمكن طبعاً إضافة مكونات أخرى بتتبع الكود في الوحدة CChangeableControlManager.cls و الزيادة عليه - الكود سهل و واضح).

* للاستعمال في المشروع:
1. أضف الوحدتين المرفقتين إلى المشروع.
2. في النافذة المحتوية على المكونات المطلوب تحريكها و تغيير حجمها نصرح في القسم العام على متغير من النوع CChangeableControlHolder كما يلي:
كود :
Private ControlHolder As New CChangeableControlHolder

3. في إجراء الحدث Load للـ Form نضيف الكائنات التي نريد تحريكها و تغيير حجمها باستعمال الوظيفة AddControl للكائن CChangeableControlHolder، مثلاً:
كود :
ControlHolder.AddControl Me, Picture1
    ControlHolder.AddControl Me, Picture2
    ControlHolder.AddControl Me, Text3
    ControlHolder.AddControl Me, Text4
    ControlHolder.AddControl Me, Frame1
    ControlHolder.AddControl Me, Image1

فقط! شغل البرنامج و ابدأ بالتحريك و تغيير الحجم.

*ملاحظات:
1. أثناء التشغيل، و عند النقر بالزر الأيسر على كائن مضاف إلى قائمة الكائنات المطلوب تحريكها و تغيير حجمها فإنه سيظهر مقبض تحجيم عند الزاوية العلوية اليسرى للكائن و مقبض آخر عند الزاوية السفلية اليمنى.
2. يمكن إخفاء مقابض التحجيم بالنقر على المكون بالزر الأيمن.
3. يمكن أيضاً إخفاء مقابض التحجيم باستدعاء الوظيفة HideResizeHandles للكائن CChangeableControlHolder، مثلاً من خلال إجراء الحدث LostFocus للمكون:
كود :
Private Sub Picture1_LostFocus()
    ControlHolder.HideResizeHandles Me, Picture1
End Sub

4. كذلك يمكن إزالة مكون من القائمة باستعمال الوظيفة RemoveControl للكائن CChangeableControlHolder، مثلاً:
كود :
Private Sub Command1_Click()
    ControlHolder.RemoveControl Me, Text1
End Sub

5. لاحظ أن الوظائف الثلاث تحتاج إلى اسم الـ Form (كلمة Me في الأمثلة السابقة تشير إلى الـ Form الحالية)، و اسم المكون المقصود.

6. نرجو الاستفادة و السلام.

السلام عليكم

- مشكور جزاك الله خير أخي ناجي . إبداع كالعاده , كود مرتب و منسق ومكتوب بإحترافيه . مفيد جدا .

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