منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
اداة picture - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94)
+--- قسم : قسم Visual Basic 6 وما قبله (http://vb4arb.com/vb/forumdisplay.php?fid=167)
+--- الموضوع : اداة picture (/showthread.php?tid=7985)



اداة picture - القناص المحترف - 15-03-13

1- ممكن كود لتوسيط اداة الصور في وسط الفورم
2- ممكن كود لجعل الصورة بحجم الاداة وليس الاداة بحجم الفورم


اداة picture - ناجي إبراهيم - 16-03-13

السلام عليكم...

1. السؤال الأول حول التوسيط:
* إذا كنت تريد فقط توسيط مكون واحد (مثلاً Picture1) في Form واحدة فاكتب السطرين التاليين في الحدث Form_Resize:
كود :
Private Sub Form_Resize()
    On Error Resume Next
    Picture1.Move (ScaleWidth - Picture1.Width) / 2, (ScaleHeight - Picture1.Height) / 2
End Sub

* أما إذا كنت تريد نفس الأمر مع أكثر من مكون واحد و في أكثر من Form فاكتب الإجراء التالي في Module:
كود :
Public Sub CenterControl(AForm As Form, AControl As Control)
    On Error Resume Next
    AControl.Move (AForm.ScaleWidth - AControl.Width) / 2, (AForm.ScaleHeight - AControl.Height) / 2
End Sub

ثم قم باستدعائه من الحدث Form_Resize للـ Form المعنية، مثلاً:
كود :
CenterControl Me, Picture1
حيث Me تشير دائماً إلى الـ Form التي تستدعي الإجراء.

2. السؤال الثاني حول تكبير الصورة حسب حجم المكون:
* يمكنك استعمال المكون Image مع ضبط الخاصية Stretch على True، حيث ستأخذ الصورة حجم المكون Image مهما غيرت حجمه.
* أما إذا كان من الضروري استعمال المكون PictureBox فضع الصورة في مكون Image مخفي (Visible = False) ثم اكتب الكود التالي في الحدث Paint الخاص بالـ PictureBox:
كود :
Private Sub Picture1_Paint()
    Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight
End Sub

حيث نقوم بنسخ الصورة من الـ Image إلى الـ PictureBox مع تمديدها أو تقليصها حسب حجم الـ PictureBox.

*** للفائدة: يمكننا استعمال الوظيفة PaintPicture لقلب الصورة أفقياً و / أو رأسياً و ذلك باستعمال إحداثيات النهاية كإحداثيات بداية و استعمال قيمة سالبة للأبعاد. مثلاً لقلب الصورة أفقياً:
كود :
Private Sub Picture1_Paint()
    Picture1.PaintPicture Image1.Picture, Picture1.ScaleWidth, 0, -Picture1.ScaleWidth, Picture1.ScaleHeight
End Sub

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


اداة picture - 3amo - 16-03-13

جزاك الله خيرا وزادك من علمه


اداة picture - محمود اكرم - 25-06-13

السلام عليكم المشكلة اخ ناجي إبراهيم
اذا استعملت الموديول وخاصية تحجيم الفورم فسيكون كل الادوات في الوسط
والذي اريده هو توسيط كل الادوات كجزء لا يتجزء
وشكر جزيل الشكر


اداة picture - اسلام الكبابى - 01-07-13

جزاك الله خيرا وزادك من علمه
أستاذنا الكبير ناجي إبراهيم