11-10-13, 06:33 PM
السلام عليكم...
في المرفقات وحدتان نمطيتان (Class Modules) من أجل القيام بتحريك الكائنات و تغيير حجمها أثناء التشغيل. و الوحدتان هما: CChangeableControlHolder.cls و CChangeableControlManager.cls
الوحدة CChangeableControlHolder.cls هي التي نتعامل معها في برنامجنا، أما الوحدة CChangeableControlManager.cls فإنها تستعمل داحلياً بواسطة الوحدة الأولى.
المكونات المدعومة حالياً هي TextBox و PictureBox و Image و Label و CommandButton و Frame و ListBox (و يمكن طبعاً إضافة مكونات أخرى بتتبع الكود في الوحدة CChangeableControlManager.cls و الزيادة عليه - الكود سهل و واضح).
* للاستعمال في المشروع:
1. أضف الوحدتين المرفقتين إلى المشروع.
2. في النافذة المحتوية على المكونات المطلوب تحريكها و تغيير حجمها نصرح في القسم العام على متغير من النوع CChangeableControlHolder كما يلي:
3. في إجراء الحدث Load للـ Form نضيف الكائنات التي نريد تحريكها و تغيير حجمها باستعمال الوظيفة AddControl للكائن CChangeableControlHolder، مثلاً:
فقط! شغل البرنامج و ابدأ بالتحريك و تغيير الحجم.
*ملاحظات:
1. أثناء التشغيل، و عند النقر بالزر الأيسر على كائن مضاف إلى قائمة الكائنات المطلوب تحريكها و تغيير حجمها فإنه سيظهر مقبض تحجيم عند الزاوية العلوية اليسرى للكائن و مقبض آخر عند الزاوية السفلية اليمنى.
2. يمكن إخفاء مقابض التحجيم بالنقر على المكون بالزر الأيمن.
3. يمكن أيضاً إخفاء مقابض التحجيم باستدعاء الوظيفة HideResizeHandles للكائن CChangeableControlHolder، مثلاً من خلال إجراء الحدث LostFocus للمكون:
4. كذلك يمكن إزالة مكون من القائمة باستعمال الوظيفة RemoveControl للكائن CChangeableControlHolder، مثلاً:
5. لاحظ أن الوظائف الثلاث تحتاج إلى اسم الـ Form (كلمة Me في الأمثلة السابقة تشير إلى الـ Form الحالية)، و اسم المكون المقصود.
6. نرجو الاستفادة و السلام.
في المرفقات وحدتان نمطيتان (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. نرجو الاستفادة و السلام.