السّلام عليكم و رحمة الله و بركاته
إخواني الأفاضل لو تكرمتم فضلاً لا أمرًا و إذا كان ذلك ممكنًا .. مساعدتي بكيفية منع إهتزاز شّاشة الفورم
حاولت إضافة ببداية الكود و آخره هذا الجزء لكن دون جدوى :
كود :
Application.ScreenUpdating = False
Application.ScreenUpdating = True
المشروع بالمرفقات
بارك الله فيكم و جزاكم خير الجزاء
فائق إحتراماتي
وعليك السلام ورحمة الله وبركاته , أهلا أخي عبدالعزيز , حاولت لكن دون فائدة أعتقد أن المشكلة أن أداة الـ Label تبدأ في تغيير لون النص من أعلى النص إلى أسفله وأعتقد ذلك ما يسبب ماتراه وكأنه أهتزاز , لذلك توجد أداة Label رائعة وهي تدعم خاصية قلب النص الموجود فيها بعدة درجات ومبرمجها عضو رائع من أعضاء هذا المنتدى , قمت بتجربة هذه الأداة على مثالك فكانت النتيجة رائعة على ما أعتقد , قمت بوضع ملف الأداة في مجلد المثال إنسخها في مجلد السيستم32 ثم سجلها قبل فلتح المثال .
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك أستاذي الحبيب " أحمد منصور " على المساعدة و على الأداة الفعالة في تغيير لون النصوص
جزاك الله خير الجزاء و زادها بموازين حسناتك
بقيت مشكلة واحدة أخي الغالي و هي أنّ الحروف لا تظهر بصورة طبيعية لاحظ الصورة لو تكرمت
فائق إحتراماتي
وعليك السلام ورحمة الله وبركاته , أهلا أخي عبدالعزيز , غير خاصية الـ Script للخط المستخدم في الليبلات إلى العربيه أو إختر الخط الأول الموجود في مثالك الأصلي وأيضاً إفحص قيمة خاصية الـ Script له لابد أن تكون العربيه , كما في الصوره التاليه :
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك أخي الفاضل " أحمد منصور " على التّوضيح
معذرة ..صدّقني لم أجد هذه الخاصيّة .. لو سمحت فضلا لا أمرًا أين أجد السكريبت ؟؟
بارك الله فيك مرة أخرى مقدمًا و جزاك الله خير الجزاء
خالص تحياتي
وعليك السلام ورحمة الله وبركاته , أهلا أخي عبدالعزيز , إذا لم تجدها في صندوق خصائص الخطوط , فقم بتغييرها بالكود حيث رقم اللغة العربيه هو 178 ضع كود تغيير اللغة في حدث الـ Form_Load للفورم بهذا الشكل :
PHP كود :
Private Sub Form_Load()
Label1.Font.Charset = 178
Label2.Font.Charset = 178
Label3.Font.Charset = 178
End Sub
أهلا , قبل ذلك قم بتغيير لون النصوص في الليبلات إلى اللون الأسود لكي لاتظهر في البداية وهي بالشكل الغير مفهموم .
أهلا أخي الحبيب ..
معذرة أتعبتك معي ..
طبقت سيّدي المحترم ما ذكرته لي بالضبط لكن للأسف لم تضبط معي و بقيت الكتابة تظهر بهذه الرموز الغريبة
بارك الله فيك و جزاك الله خير الجزاء على حسن المتابعة
فائق إحتراماتي
السلام عليكم و رحمة الله و بركاته...
عندما يتطلب الأمر تغيير النصوص و الألوان و الرسومات على الشاشة بشكل متكرر فإن استعمال أوامر الرسوميات (Graphics) يعطي نتائج أفضل من استعمال المكونات مثل الـ Label و الـ Image لأن كل مكون يتم تحديثه على حدة ما يتسبب في ظهور الوميض (أو ما يعرف بالـ flicker) على الشاشة.
1.
(مهم) اضبط الخاصية
AutoRedraw للـ Form على
True. هذا سيجعل كل أوامر الرسوميات توجه إلى صورة من سطح النافذة في الذاكرة (in-memory image) و هي صورة يستخدمها النظام Windows لتحديث صورة النافذة على الشاشة كلما لزم الأمر. ضبط الخاصية AutoRedraw على True سيمنع الوميض لأنه سيتم تحديث كل المناطق المتغيرة دفعة واحدة.
2. احتفظ بمكونات الـ Labels الثلاثة للاسترشاد بخصائصها في طباعة النصوص على الـ Form، مع ضبط الخصائص التالية للـ Labels الثلاثة:
أ. الخاصية AutoSize على True.
ب. الخاصية Visible على False (حتى لا تظهر أثناء التشغيل).
* اضبط مواقع الـ Labels حيث تريد ظهور النصوص.
3. اكتب الكود التالي في حدث الـ Timer بدل الكود السابق:
PHP كود :
Dim OldFont As StdFont ' للاحتفاظ بالخط الحالي للنافذة
Dim OldColor As OLE_COLOR ' للاحتفاظ بلون النص الحالي للنافذة
Static Col1, Col2, Col3 As Integer
Static c1, c2, C3 As Integer
If (Col1 = 0 Or Col1 = 250) And (Col2 = 0 Or Col2 = 250) _
And (Col3 = 0 Or Col3 = 250) Then
c1 = Int(Rnd * 3)
c2 = Int(Rnd * 3)
C3 = Int(Rnd * 3)
End If
If c2 = 1 And Col2 <> 0 Then Col2 = Col2 - 10
If C3 = 1 And Col3 <> 0 Then Col3 = Col3 - 10
If c1 = 1 And Col1 <> 0 Then Col1 = Col1 - 10
If c1 = 2 And Col1 <> 250 Then Col1 = Col1 + 10
If C3 = 2 And Col3 <> 250 Then Col3 = Col3 + 10
If c2 = 2 And Col2 <> 250 Then Col2 = Col2 + 10
' الاحتفاظ باللون السابق ثم تغيير اللون
OldColor = Me.ForeColor
Me.ForeColor = RGB(Col1, Col2, Col3)
' الاحتفاظ بالخط السابق ثم تغيير الخط
Set OldFont = Me.Font
Set Me.Font = Label1.Font
' مسح الرسوميات السابقة من النافذة
Me.Cls
' تحديد موقع النص الأول و طباعته
Me.CurrentX = Label1.Left
Me.CurrentY = Label1.Top
Me.Print Label1.Caption
' تحديد موقع النص الصاني و طباعته
Me.CurrentX = Label2.Left
Me.CurrentY = Label2.Top
Me.Print Label2.Caption
' تحديد موقع النص الثالث و طباعته
Me.CurrentX = Label3.Left
Me.CurrentY = Label3.Top
Me.Print Label3.Caption
' استعادة الخط و اللون الأصليين للنافذة
Set Me.Font = OldFont
Me.ForeColor = OldColor
نرجو الاستفادة و السلام.
السّلام عليكم و رحمة الله و بركاته
ألف شكر أستاذنا الغالي " ناجي إبراهيم " على الشّرح و التّوضيح
بارك الله فيك و لك وبأوقاتك و أعمالك
الحمد لله .. هذا ما أريده بالتّمام و الكمال ..
الكود شغّال بطريقة أكثر من رائعة
جزاك الله خير الجزاء و نفع بك الاسلام و المسلمين و حشرك يوم الدين مع الشّهداء و الصّالحين
الشكر و الدّعوات موصولة لأستاذنا المحترم " أحمد منصور "
بارك الله فيكما و لكما
فائق تحياتي و إحتراماتي