تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
منع إهتزاز الشّاشة
#1
السّلام عليكم و رحمة الله و بركاته

إخواني الأفاضل لو تكرمتم فضلاً لا أمرًا و إذا كان ذلك ممكنًا .. مساعدتي بكيفية منع إهتزاز شّاشة الفورم

حاولت إضافة ببداية الكود و آخره هذا الجزء لكن دون جدوى :

كود :
Application.ScreenUpdating = False  
Application.ScreenUpdating = True    
المشروع بالمرفقات
بارك الله فيكم و جزاكم خير الجزاء
فائق إحتراماتي


الملفات المرفقة
.rar   تغيير لو ن الليبل.rar (الحجم : 1.68 ك ب / التحميلات : 45)
الرد }}}
تم الشكر بواسطة:
#2
وعليك السلام ورحمة الله وبركاته , أهلا أخي عبدالعزيز , حاولت لكن دون فائدة أعتقد أن المشكلة أن أداة الـ Label تبدأ في تغيير لون النص من أعلى النص إلى أسفله وأعتقد ذلك ما يسبب ماتراه وكأنه أهتزاز , لذلك توجد أداة Label رائعة وهي تدعم خاصية قلب النص الموجود فيها بعدة درجات ومبرمجها عضو رائع من أعضاء هذا المنتدى , قمت بتجربة هذه الأداة على مثالك فكانت النتيجة رائعة على ما أعتقد , قمت بوضع ملف الأداة في مجلد المثال إنسخها في مجلد السيستم32 ثم سجلها قبل فلتح المثال .


الملفات المرفقة
.rar   Change_Label_ForeColor.rar (الحجم : 24.25 ك ب / التحميلات : 42)
الرد }}}
#3
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك أستاذي الحبيب " أحمد منصور " على المساعدة و على الأداة الفعالة في تغيير لون النصوص
جزاك الله خير الجزاء و زادها بموازين حسناتك
بقيت مشكلة واحدة أخي الغالي و هي أنّ الحروف لا تظهر بصورة طبيعية لاحظ الصورة لو تكرمت
فائق إحتراماتي
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor , Ahmed_Mansoor
#4
وعليك السلام ورحمة الله وبركاته , أهلا أخي عبدالعزيز , غير خاصية الـ Script للخط المستخدم في الليبلات إلى العربيه أو إختر الخط الأول الموجود في مثالك الأصلي وأيضاً إفحص قيمة خاصية الـ Script له لابد أن تكون العربيه , كما في الصوره التاليه :

الرد }}}
#5
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك أخي الفاضل " أحمد منصور " على التّوضيح
معذرة ..صدّقني لم أجد هذه الخاصيّة .. لو سمحت فضلا لا أمرًا أين أجد السكريبت ؟؟
بارك الله فيك مرة أخرى مقدمًا و جزاك الله خير الجزاء
خالص تحياتي
الرد }}}
تم الشكر بواسطة:
#6
وعليك السلام ورحمة الله وبركاته , أهلا أخي عبدالعزيز , إذا لم تجدها في صندوق خصائص الخطوط , فقم بتغييرها بالكود حيث رقم اللغة العربيه هو 178 ضع كود تغيير اللغة في حدث الـ Form_Load للفورم بهذا الشكل :

PHP كود :
Private Sub Form_Load()

Label1.Font.Charset 178
Label2
.Font.Charset 178
Label3
.Font.Charset 178

End Sub 

أهلا , قبل ذلك قم بتغيير لون النصوص في الليبلات إلى اللون الأسود لكي لاتظهر في البداية وهي بالشكل الغير مفهموم .
الرد }}}
#7
أهلا أخي الحبيب ..
معذرة أتعبتك معي ..
طبقت سيّدي المحترم ما ذكرته لي بالضبط لكن للأسف لم تضبط معي و بقيت الكتابة تظهر بهذه الرموز الغريبة
بارك الله فيك و جزاك الله خير الجزاء على حسن المتابعة
فائق إحتراماتي
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم و رحمة الله و بركاته...

عندما يتطلب الأمر تغيير النصوص و الألوان و الرسومات على الشاشة بشكل متكرر فإن استعمال أوامر الرسوميات (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
Col2Col3 As Integer
    Static c1
c2C3 As Integer
    If 
(Col1 Or Col1 250) And (Col2 Or Col2 250_
    And 
(Col3 Or Col3 250Then
    c1 
Int(Rnd 3)
 
   c2 Int(Rnd 3)
 
   C3 Int(Rnd 3)
 
   End If
 
   If c2 And Col2 <> 0 Then Col2 Col2 10
    If C3 
And Col3 <> 0 Then Col3 Col3 10
    If c1 
And Col1 <> 0 Then Col1 Col1 10
    If c1 
And Col1 <> 250 Then Col1 Col1 10
    If C3 
And Col3 <> 250 Then Col3 Col3 10
    If c2 
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 

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
#9
السّلام عليكم و رحمة الله و بركاته
ألف شكر أستاذنا الغالي " ناجي إبراهيم " على الشّرح و التّوضيح
بارك الله فيك و لك وبأوقاتك و أعمالك
الحمد لله .. هذا ما أريده بالتّمام و الكمال ..
الكود شغّال بطريقة أكثر من رائعة
جزاك الله خير الجزاء و نفع بك الاسلام و المسلمين و حشرك يوم الدين مع الشّهداء و الصّالحين
الشكر و الدّعوات موصولة لأستاذنا المحترم " أحمد منصور "
بارك الله فيكما و لكما
فائق تحياتي و إحتراماتي
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم