اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تجديد / تحديث النموذج Me.Painting


jjafferr

الردود الموصى بها

السلام عليكم :rol:

 

اعتقد مهم ان اعطيكم مثال على Me.Painting ، فالتوضيح في الرابط التالي يحتاج الى توضيح :wink2:

http://www.officena.net/ib/topic/67464-المساعدة-في-فتح-صورة-من-listbox/?do=findComment&comment=438833

 

النموذج Form1 ، كل ثانية ، اللون الاصفر ينزل الى الحقل التالي (اي بمعنى ان النموذج يجدد شكل النموذج باستمرار ، وعليه نرى الالوان تنتقل من حقل الى آخر):

الكود:



Function Change_Colors(F)
        
    Me(F).BackColor = RGB(225, 225, 0)    'yellow
    Me(F) = F
    DoEvents

    PauseTime = 1    ' Set duration.
    Start = Timer    ' Set start time.
    Do While Timer < Start + PauseTime
        DoEvents    ' Yield to other processes.
    Loop

    Me(F).BackColor = RGB(255, 255, 255)    'white
    Me(F) = ""
    
End Function

Private Sub cmd_Start_Coloring_Click()
       
        Call Change_Colors("q1")
        Call Change_Colors("q2")
        
        Call Change_Colors("q3")
        Call Change_Colors("q4")
    
        Call Change_Colors("q6")
        Call Change_Colors("q7")
    
End Sub

.

والنتيجة:

297.1.gif.66e493b262c74793d7b2d4abb14d36

.

اما النموذج Form2 ، فهو نسخة من النموذج السابق Form1 ، إلا اني طلبت في الكود ان:

اللون الاصفر يلون الحقل الاول والثاني ، ثم اعطيت الامر بعدم تجديد شكل النموذج بالامر Me.Painting=False

فاللون الاصفر ظل على الحقل الثاني للنموذج ، بينما الكود استمر في عمله في تلوين الحقل الثالث والرابع ، ولكن دون ان يُظهر لنا النتيجة على النموذج ،

ثم اعطيت الامر Me.Painting=True ، فاللون الاصفر اختفى من الحقل الثاني ، وظهر لآخر حقلين ،

والكود هو:



Function Change_Colors(F)
        
    Me(F).BackColor = RGB(225, 225, 0)    'yellow
    Me(F) = F
    DoEvents

    PauseTime = 1    ' Set duration.
    Start = Timer    ' Set start time.
    Do While Timer < Start + PauseTime
        DoEvents    ' Yield to other processes.
    Loop

    Me(F).BackColor = RGB(255, 255, 255)    'white
    Me(F) = ""
    
End Function

Private Sub cmd_Start_Coloring_Click()
       
        Call Change_Colors("q1")
        Call Change_Colors("q2")
        
    Me.Painting = False

        Call Change_Colors("q3")
        Call Change_Colors("q4")
    
    Me.Painting = True
    
        Call Change_Colors("q6")
        Call Change_Colors("q7")
    
End Sub

.

والنتيجة:

297.2.gif.d046ba31ef94a156325828350dc136

.

 

طيب ، ما الفائدة عمليا من هذا الكود؟

 

انا استخدمت هذا الامر مرات جدا قليلة في برامجي ، والبرنامج اعلاه (في تغيير اسم الملف) هو احدهم ، اما البرنامج الآخر فهو:

برنامج فيه آلاف السجلات ، وهناك صور للسجلات ،

فكنت اريد ان اعرض النموذج بطريقة معينة ، بحيث باختيار اسم الموظف تصل الى معلوماته ، ولكني اردت ان اسمح لهم ان يروا بقية السجلات ايضا ،

فالاكسس كان يعرض اول سجل وصورة ، ثم ينتقل الى السجل المطلوب ،

وانا لم ارد للمستخدم ان يرى اول سجل وصورته ، وانما اردته ان يرى سجل وصورة الموظف الذي تم اختياره ،

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

والنتيجة كانت مرضية لي :rol:

 

 

جعفر

297.Me.Paint.accdb.zip

  • Like 7
رابط هذا التعليق
شارك

4 دقائق مضت, jjafferr said:

يا واد انت :rol:

 

جعفر

استاذى الحبيب ادين لك ولك اساتذتى بالفضل بعد رب العباد فيما وصلت اليه وفيما احصله واتعلمه على ايديكم
جزاكم ربى عنى وعن كل اخوانى  كل الخير ان شاء الله
احبكم فى الله :fff:

رابط هذا التعليق
شارك

9 ساعات مضت, jjafferr said:

جعفر

ياااااااا أستاذ جعفر ... ياااااااا أستاذ جعفر ... :fff:

عاشت ايدك ... فكرة روعة ... 

ربي يزوجك اربع نسوان كل وحدة بدولة ... :biggrin:

رابط هذا التعليق
شارك

11 ساعات مضت, karrar sabry said:

ياااااااا أستاذ جعفر ... ياااااااا أستاذ جعفر ... :fff:

عاشت ايدك ... فكرة روعة ... 

ربي يزوجك اربع نسوان كل وحدة بدولة ... :biggrin:

تسلم أخي كرار ، على السطرين الاخيرين :wink2:

 

جعفر

رابط هذا التعليق
شارك

شكرا على المعلومة اخ جعفر

والحقيقة وخلال اليومين هذي بعلم الله كنت مستخدم الامر echo  لمنع تحديثات في الشاشة ولكن سيحل ماتفضلتم به ولتنفيذ المراد بالتمام !

وبعد الشكر اعتذر عن الانفطاع لانشغالي كثيرا !

وبعد الاعتذار ملاحظة : الاحظ اغلاق المواضيع بكثرة فقد يكون هناك حل رمهاني مختصر فلا مكان له والموضوع  مغلق :smile:

تحياتي :fff:

رابط هذا التعليق
شارك

4 ساعات مضت, رمهان said:

شكرا على المعلومة اخ جعفر

والحقيقة وخلال اليومين هذي بعلم الله كنت مستخدم الامر echo  لمنع تحديثات في الشاشة ولكن سيحل ماتفضلتم به ولتنفيذ المراد بالتمام !

وبعد الشكر اعتذر عن الانفطاع لانشغالي كثيرا !

وبعد الاعتذار ملاحظة : الاحظ اغلاق المواضيع بكثرة فقد يكون هناك حل رمهاني مختصر فلا مكان له والموضوع  مغلق :smile:

تحياتي :fff:

 

حياك الله أخوي رمهان :rol:

زين الحمدلله طلّيت علينا :rol:

 

انا كذلك كان عندي تجربة اخرى مع Echo ، وهي عند كتابة ملاحظات على Status Bar في اسفل النموذج ،

وكذلك استخدمت بديل له ، وهو:

DoEvents
Call SysCmd(acSysCmdSetStatus, "HI THERE!!")
DoEvents

.

و الامر DoEvents جدا مهم ، وهو لإخبار الكود بأن يعمل الامر هذا ، ويواصل العمل للخطوة التالية :rol:

 

 

اما عن اغلاق المواضيع ، فانا اقوم بإغلاق مواضيعي ، وذلك بعد ان يسأل صاحب الموضوع سؤال لا علاقة له بالموضوع ، فأضطر عمل هذا حتى لا يتشعب الموضوع:rol:

 

جعفر

  • Like 2
رابط هذا التعليق
شارك

  • 4 years later...

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information