السلام عليكم...
أعتقد أن الأخ يسأل عن كيفية إنشاء ظلال لمربعات النص. إذا كان الأمر كذلك فإن الحل يكون كالتالي:
1. ضع الكود التالي في Module:
كود :
' ترقيم لتحديد اتجاه الظل
Public Enum EShadowPosition
spRightBottom ' إلي اليمين و الأسفل
spRightTop ' إلى اليمين و الأعلى
spLeftTop ' إلى اليسار و الأعلى
spLeftBottom ' إلى اليسار و الأسفل
End Enum
' دالة خاصة لتحديد وحدة القياس
Private Function ContainerScaleMode(AContainer As Object) As ScaleModeConstants
On Error GoTo ContainerScaleMode_Err
ContainerScaleMode = AContainer.ScaleMode
Exit Function
ContainerScaleMode_Err:
Err.Clear
ContainerScaleMode = vbTwips
End Function
' إجراء إضافة الظلال - انظر شرح البارامترات فيما بعد
Public Sub AddShadow( _
AForm As Form, _
Optional AShadowColor As OLE_COLOR = &HC0C0C0, _
Optional ADistanceInPixels As Long = 2, _
Optional MakeBoxFlat As Boolean = True, _
Optional AShadowPosition As EShadowPosition = spRightBottom _
)
Dim AControl As Control
Dim Index As Long
Dim AShape As Shape
Dim ALeftFactor As Long
Dim ATopFactor As Long
If (AShadowPosition = spRightBottom) Or (AShadowPosition = spRightTop) Then
ALeftFactor = 1
Else
ALeftFactor = -1
End If
If (AShadowPosition = spLeftBottom) Or (AShadowPosition = spRightBottom) Then
ATopFactor = 1
Else
ATopFactor = -1
End If
Index = 0
For Each AControl In AForm.Controls
If TypeOf AControl Is TextBox Then
If MakeBoxFlat Then AControl.Appearance = 0 ' Flat
Index = Index + 1
Set AShape = AForm.Controls.Add("VB.Shape", "shpShadow" & CStr(Index), AControl.Container)
With AShape
.BackStyle = 1 ' Opaque
.BackColor = AShadowColor
.BorderColor = AShadowColor
.Move AControl.Left + AForm.ScaleX(ADistanceInPixels, vbPixels, ContainerScaleMode(AControl.Container)) * ALeftFactor, _
AControl.Top + AForm.ScaleY(ADistanceInPixels, vbPixels, ContainerScaleMode(AControl.Container)) * ATopFactor, _
AControl.Width, AControl.Height
.Visible = True
End With
End If
Next AControl
End Sub
* بارامترا الإجراء:
= البارامتر AForm: الـ Form المحتوية على مربعات النص. هذا هو البارامتر الوحيد المطلوب (الإجباري).
= البارمتر AShadowColor: بارامتر اختياري يحدد لون الظل. الافتراضي هو اللون الفضي.
= البارامتر ADistanceInPixels: بارمتر اختياري يحدد بُعد الظل عن مربع النص بوحدة البكسل. الافتراضي 2 بكسل.
= البارامتر MakeBoxFlat: بارامتر اختياري يحدد ما إذا سيتم جعل مربع النص يبدو مسطحاً (يجعل الظل بظهر بشكل أوضح). الافتراضي True، أي نعم.
= البارامتر AShadowPosition: بارامتر اختياري يحدد اتجاه الظل حسب القيم الواردة في الترقيم EShadowPosition. الافتراض هو spRightBottom أي نحو اليمين و الأسفل.
* يتم استدعاء الإجراء AddShadow في الحدث Form_Load للنافذة. أمثلة:
= إنشاء ظلال بالقيم الافتراضية:
كود :
Private Sub Form_Load()
AddShadow Me
End Sub
= إنشاء ظلال تبعد 6 بكسل عن مربعات النص مع استعمال بقية القيم الافتراضية:
كود :
Private Sub Form_Load()
AddShadow Me, , 6
End Sub
= إنشاء ظلال بلون أزرق داكن و تبعد عن مربعات النص بمقدار 4 بكسل في اتجاه أعلى اليسار:
كود :
Private Sub Form_Load()
AddShadow Me, &H800000, 4, True, spLeftTop
End Sub
= نرجو الاستفادة و السلام.