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

سلسله علمنى كيف اصطاد ( الفورم ) Forms


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

بسم الله الرحمن الرحيم

الاخوه الكرام

بعد فترة انقطاع عن تقديم سلسلة علمنى كيف اصطاد بسبب الانشغال من الانتهاء ببرنامج EMA بشكله الجديد

وبعد ان انتهيت منه بحمد لله 

 أقدم لكم اليوم بمشيئة الله 

شروحات عن الفورم Form 

من البدايه حتى الاحتراف بأذن الله 

الدرس الاول 

 1- الدخول الى محرر الاكواد ( Visual Basic ) بالضغط على Alt+ f11 

سيظهر معك الصوره التاليه 

large.4.png.7854c87caff5ccb9204442905199

 2- لو نظرنا الى الصوره السابقه سنجد كلمة Insert  عليها دائره حمرا قم بالضغط على كلمة Insert ستظهر لك الصوره التاليه

large.2.png.7d548bfa6f5387fa38bf0a3701ce

 3 - اضغط على UserForm  كما هو مبين بالصوره اعلاه  سيظهر لك الصوره التاليه

 

medium.6.png.d009df904e842bfba8f8eaf75ec

 

4- فى الصوره السابقه لو نظرنا لها سنجد شريط الادوات كما هو موضح بالصوره التاليه

 

large.3.png.7ae9d9bfa4d885e935d8e293c290

5-صندوق ادوات التحكم  ToolBox كما هو موضح بالصوره التاليه 

large.5.png.3a9f0ea13621b2865d3bf7d6aaad

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

اولا :- المؤشر ( Pointer ) *** تستخدم هذه الاداه فى اضافة ادوات تحكم جديده غير ظاهره بصندوق التحكم

ثانيا :- العنوان ( Lable ) *** هى أداه تستخدم لكتابه عنوان 

ثالثا :- صندوق النص ( Text Box )  *** وهى اداه تسمح للمستخدم بكتابة نص او رقم أو اى شئ بداخلها

رابعا:- أداة السرد والحوار ( ComboBox)  *** وهى أداه يمكن اضافة لها قائمة محدد يسمح للمستخدم الاختيار منها وهى مثل القائمة المنسدله بالاكسيل

خامسا :- صندوق القوائم ( ListBox ) *** وهى اداه تشبه وعاء يحتوى على بيانات يمكن اضافه هذا المحتوى من Text Box او ComboBox ثم ترحيل هذا المحتوى                                                           الى شيت الاكسيل أو رفع محتوى من شيت الاكسيل وعرضه بـ ListBox 

سادسا :- صندوق الفحص (Check Box) *** تستخدم لعمل عدة صناديق فحص واختيار واحد او اكثر منهما 

سابعا:- زر الاختيار (Option Box ) *** تستخدم هذه الاداه فى عرض عدة بدائل امام المستخدم لاختيار احدهما فقط 

ثامنا:- زر التبديل (Toggle Button) *** هى اداه تشبه المفتاح الكهربائى له خيارين أما on أو Off  ولكن بالاكسيل هذه الاداه لها خيارين أما true وأما false

تاسعا:-الاطار (Frame) *** ويستخدم لعمل اطار لمجموعه عناصر 

عاشرا:- زر الامر (Command Button) *** هو زر يتم من خلال تنفيذ الكثير من الاكواد او التعليمات البرمجيه

احدى عشر :- شريط التبويب ( Tab Strip) *** تتيح للمستخدم من عرض ادواته على شكل صفحات عرض 

اثنى عشر :- شريط الصفحات (Multi Page)*** تتيح للمستخدم من عرض ادواته على شكل صفحات عرض

ثلاثة عشر :- شريط الانزلاق (Scroll Bar) *** هى اداه لها شكلان شكل عمودى واخر افقى وهى تشبه بحد كبير الاداه Spin Button 

اربعة عشر :- زر التدوير ( Spin Button) *** هى اداه تستخدم لزياده قيمة معينه او نقصانها ويتم تحديد قيمة عليا وقيمة سلفه ومقدار هذه القيم

خامس عشر :- صوره( Image) *** وهى اداه تتيح للمستخدم من ادراج صوره بداخلها

وان شاء الله كما قلت سوف نقوم بشرح كل جزء بدرس خاص 

****************************************************************************************************

5- خصائص الفورم ( Properties Window)

انظر للصوره التاليه

large.12.png.55532905d85e1398ca6ef9be819

 

 

الان نقوم بشرح أول جزء من عناصر التحكم فى صندوق التحكم 

أولا : -

المؤشر ( Pointer )  تستخدم هذه الاداه فى اختيار ادوات تحكم اخرى غير ظاهره بصندوق التحكم من خلال الضغط كليك يمين على السهم سيظهر لك

Additional Controls كما هو مبين بالصوره التاليه 

large.7.png.59c52b60440e77bd0dafb280f94e

وعند الضغط على Additional Controls ستجد الصوره التاليه 

large.8.png.1d81f3ad3044bdcb9f486d3bf6c9

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

large.9.png.db31fb87d159859eff93936bcf3b

فى الصوره السابقه خامس خيار ضع علامه صح Calendar Control 12.0  ثم اضغط اوك ستجد ان عنصر التحكم  Calendar Control 12.0 موجود بصندوق عناصر التحكم كم هو موضح بالصوره

large.10.png.613b3993059c7aed46c46d0eb3c

 

فى الصوره السابقه لو نظرت الى صندوق التحكم ستجد ان عنصر Calendar Control 12.0 ظاهر كما هو موضح بالدائره الحمراء الصغيره اضغط على هذه الايقونه ثم اذهب الى الفورم وقم بالرسم التقويم ستجده كما هو محاط بالدائره الاحمراء الكبيره فى الصوره السابقه 

وبكدا يبقى عرفنا ازاى انضيف عنصر تحكم جديد الى صندوق التحكم 

 

والى لقاء اخر بأذن الله فى سلسه علمنى كيف اصطاد

تقبلوا تحياتى

*********************************************

الاخوة الكرام

اليوم بمشيئة الله نواصل شروحات عن الـ  Label   

بناء على طلب استاذى الفاضل ابويوسف ( يرجى التعريج على بعض الخصائص الأخرى مثل Auto size حجم تلقائي .. و Control Tip Text حيث نقوم بكتابة نص داخله ليعطينا تعليقاً على عمل الـ Label )

الخاصيه Auto size :- هى خاصيه تحمل خيارين true و  False  

عن اختيارك true  فأن عرض الـ Label  سوف يكون تلقائى حسب محتوى النص بداخله 

وعند اختيارك False  فأنه يتم توقف خاصيه عمل عرض تلقائى حسب طول النص للـ Label  وبالتالى لابد من  تحديد العرض اثناء التصميم او من خلال البرمجه كما سنرى لاحقا

الخاصيه Control Tip Text :- هذه الخاصيه عند كتابى اى شئ بداخلها فأنها تعرض النص كتلميح عند وقوف الماوس على الـ Label  

ملحوظه ( عدم شرحى للخاصيه  Control Tip Text  فى السابق لانى لا ارى فائده لها فوظيفة الـ Label  هى عنوان لشئ فى الفورم فأنت لا تحتاج عمل تلميح ) عموما تم التنويه عنها

انت بس تأمر يا ابويوسف

************************************************************************************

اليوم بمشيئة الله هنتكلم عن المحور الثالث وهو

استخدام البرمجه الخاصه بالـ  Label  

عند عمل Label جديد على الفورم كما هو ظاهر بالصوره التاليه

large.13.png.702eaca2b792994927716986891

انظر الى المربع الاحمر الكبير على يسار الصوره والمكتوب عليه رقم 3 هذه هى خصائص الـ Label  عند التصميم من شاشة الخصائص فماذا لو حبينا نعمل الخصائص من خلال الاكواد

مثال:-

اضغط دبل كليك على الفورم  وهنعمل كود فى حدث فتح الفورم 

اتبع الصوره التالية

large.25.png.a1f5bdbc1aae7e0cffd0ea36f0c

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

large.26.png.2f4cb207b8bc8562bf7ce9507a9

فى الصوره السابقه المربع الاحمر هو مكان كتابه الاكواد

أول شئ عايزين نجعل  Label 

Back color  لونه اصفر

هنكتب التالى 

label1.b

مجرد كتابة ليبل 1 وبعدها نقطه ( تكتب من خلال جعل لغه الكيبورد انجليزى ثم الضغط على حرف ز ) ستظهر لك قائمة عند كتابة حرف B سوف يتم فلترة القائمه طبقا للحرف المكتوب 

شاهد الصوره

large.27.png.870049b2f3509e2e33cb4ba5f29

ثم نقوم باختيار BackColor 

Label1.BackColor = 65535

كتبنا اسم الـ Label1 وبعدها (.)  ثم اسم الخاصيه ثم (=) ثم النتيجة المطلوبه

255 تشير الى جعل خلفية الـLabel  لونه اصفر

اليك صوره بارقام الالوان فى الفيجوال بيسك

large.28.png.008967eff15acaf7c6be5f9194e

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولو عايزين نعمل نص للـ Label هيكون كالتالى

Label1.Caption = "بسم الله الرحمن الرحيم"

لو لاحظنا جعلنا النص بين علامتى تنصيص وتكتب من خلال (shift+حرف ط )

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولو حابين نحدد حجم الخط هيكون كالتالى 

Label1.Font = 20

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولوحابين نحدد سماكة الخط هيكون كالتالى  بعد يساوى ستجد خيارين أما True أو False  على سبيل المثال هنختار True  لجعل سماكه الخط ثخين

Label1.Font.Bold = True

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولو حابين نجعل تاثر للـLabel بشكل خاص ممكن كالتالى 

Label1.SpecialEffect = fmSpecialEffectRaised

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولو حابين نخلى النص داخل اللـLabel  فى المنتصف كالتالى (تحديد محازاة النص داخل الـ Label )

 

Label1.TextAlign = fmTextAlignCenter

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولتحديد ارتفاع الـlabel كالتالى

Label1.Height = 50

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

ولو حابين نحدد عرض الـ label كالتالى

Label1.Width = 150

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

هذا هو الكود بشكله النهائى

Private Sub UserForm_Initialize()
Label1.BackColor = 65535
Label1.Caption = "بسم الله الرحمن الرحيم"
Label1.Font = 20
Label1.Font.Bold = True
Label1.SpecialEffect = fmSpecialEffectRaised
Label1.TextAlign = fmTextAlignCenter
Label1.Height = 50
Label1.Width = 150
End Sub

 

اضغط Run أو اضغط F5 شاهد الفورم وشوف الـ  label ازاى شكله ستجده كالتالى

 

large.29.png.c4fbbaa3f0a41727510f6a5dcb5

هل يوجد طريقه اخرى لكتابه الكود بشكل ابسط نعم يوجد طريقه اخرى من خلال استخدام With

شاهد الكود كالتالى

Private Sub UserForm_Initialize()

With Label1
.BackColor = 65535
.Caption = "بسم الله الرحمن الرحيم"
.Font = 20
.Font.Bold = True
.SpecialEffect = fmSpecialEffectRaised
.TextAlign = fmTextAlignCenter
.Height = 50
.Width = 150
End With

End Sub

هنا استخدمنا with وطبعا لازم نقفل with  ب End with

ثم تكتب ( . ) وبعدها اسم الخاصيه ثم (=) 

جرب بنفسك وحاول اكتب الكود واى استفسار انا تحت امرك

والى لقاء اخر مع درس جديد من دروس علمنى كيف اصطاد ( TextBox) انتظرونا

تقبلوا تحياتى

*********************************************

بسم الله الرحمن  الرحيم

الاخوه الكرام اليوم موعدنا بمشئية الله عن شرح TextBox

كما قلنا من قبل ان TextBox هو صندوق ادخال يتم ادخال فيه نص او رقم من المستخدم اثناء العمل على الفورم

أن شاء الله هيتم تناول الموضوع على اربع مراحل

1- كيفية انشاء TextBox على الفورم  اثناء عملية التصميم

2- التعرف على خصائص الفورم من شاشة الخصائص اثناء عملية التصميم

3-وقت تنفيذ الكود الخاص بالـ TextBox

4-التعامل مع الـ TextBox فى لغة البرمجه 

5-كيفية عمل تنسيقات للقيم المدخله 

نبدأ بسم الله

أولا :- كيفية انشاء TextBox على الفورم  اثناء عملية التصميم

من صندوق التحكم أضغط على الايقونه المشار لها بحرف ِabl  ثم اذهب الى الفورم وقم برسم TextBoxعلى الفورم بالابعاد اللى المناسبه لك من عرض وارتفاع شاهد الصوره التاليه توضح لك الامر

large.30.png.4b822534f5cd29d4604f2f956e8

فى الصوره السابقه يوجد  Label1 و textBox1  هذه هى العناصر اللى موجوده على الفورم 

لو حابين نعمل Label و textBox ممكن يكون من خلال الطريقه السابقه وهى اضغط على العنصر المراد اضافته الى الفورم من صندوق التحكم  ثم قم برسمه على الفورم

وممكن من خلال الوقوف على العنصر يعنى تحديده ثم كليك يمين ستظهر قائمه اختر منها Copy 

دلوقتى انا عايز اعمل  Label و textBox  قم بتحديد Label1  واضغط على زر Ctrl من الكيبورد واستمر بالضغط عليه ثم بالماوس حدد textBox1   ثم اضغط كليك يمين بالماوس ستظهر قائمه اختر Copy

ثم اذهب الى اى مكان فاضى فى الفورم واعمل كليك يمين واختر Paste  او من خلال الكيبورد الضغط على زر Ctrl +زر حرف V  ستجد انه تم انشاء  Label2 و textBox2 وطبعا هيكون بنفس تنسيق خصائص   Label1 و textBox1 

شاهد الصوره

large.31.png.4ff8054eef03e2c898b07dadcd0

---------------------------------------------------------------------------------------------------------------------------------------------

ثانياً :-  التعرف على خصائص الفورم من شاشة الخصائص اثناء عملية التصميم

شاهد الصوره التالية لخصائص الـ TextBox

large.32.png.c6018f29af1b7e81cf13de0feb9

 

هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل

 الخاصيه (Name) :-

Name  هو اسم الـ  TextBox المستخدم فى الاكواد 

وعند انشاء اى TextBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى  له TextBox1 واذا قمنا بعمل TextBox  ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى TextBox2 

وانا افضل عدم تغيير اسماء TextBox الافتراضيه التى عرفها الفيجوال بيسك 

فعندما نريد كتابه كود خاص بالعنصر TextBox1  فى حدث Change على سبيل المثال 

يكون بداية الكود كالتالى

Private Sub TextBox1_Change()

فأذا قمنا بتغيير اسم TextBox1   كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name  وليكن مثلا غيرناه الى (Nomber )

فهنا عند كتابة كود فى حدث Change يكون كالتالى

Private Sub Nomber_Change()

ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error

------------------------------------------------------------------------------------------------------------------------------------------------

الخاصيه ( Back Color)

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

large.33.png.39903f138d9b0bf7059f3b99073

----------------------------------------------------------------------------------------------------------------------------------------------

 

الخاصيه ( Control Source)

وهذه الخاصيه تتيح للمستخدم تحديد خلية محدده تظهر محتواها فى TextBox1    عند عرض الفورم والعكس صحيح 

بمعنى ان اى ادخال فى TextBox1    يظهر مباشره فى الخليه التى قمت بكتابتها فى الخاصيه Control Source 

فعلى سبيل المثال لو كتبنا ان Control Source هو محتوى الخليه A1 فعند عرض الفورم ستجد ان محتوى الخليه ظاهر فى الـ  TextBox1    

ولو قمت بتعديل المحتوى الموجود فى TextBox1     وضغط انتر سوف يتغير مباشره فى الخليه A1  

الخلاصه انه يجعل خلية محدده مربوطه بالـ TextBox1     

شاهد الصوره

large.34.png.474ec4428917c725b6c7a2fe73c

---------------------------------------------------------------------------------------------------------------------------------------

الخاصيه ( Enabled )

هذه الخاصيه تحمل خيارين true و False 

عند اختيار true سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1     

وعند اختيار False  لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1     

شاهد الصوره عند اختيار  False

large.35.png.9d262018161cfe54047c2996d52

----------------------------------------------------------------------------------------------------------------------------------------

 الخاصيه (Font) :-

وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ  TextBox1     

الافتراضى فى الفيجوال بيسك نوع الخط هو Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8)

 الخاصيه (Font Color) :-

وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ  TextBox1    

مثال عند اختيار نوع الخط (Traditional Arabic) والسماكه ( Bold ) وحجم الخط (18)

شاهد الصوره

large.36.png.b737011231b10c126a817437f31

------------------------------------------------------------------------------------------------------------------------------------------

 الخاصيه ( Height )

وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ  TextBox1     

فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ TextBox1     أو كتابة رقم للارتفاع فى الخاصيه Height

------------------------------------------------------------------------------------------------------------------------------------------

 

الخاصيه ( Width)

هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ TextBox1

كما يمكن ايضا التحكم فى عرض الـ TextBox1 من خلال التصميم على الفورم بالماوس

------------------------------------------------------------------------------------------------------------------------------------------

 

 الخاصيه (Left) :-

وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ  TextBox1     عن الضلع الايسر للفورم

الخاصيه (Top) :-

وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ  TextBox1     عن الضلع الاعلى للفورم
مثال لو وضعنا قيمة Left 126 *** وقيمة Top 90 ستجد الصوره التالية
large.37.png.19b6261a3b2496cb0dc57cf2a2c
-----------------------------------------------------------------------------------------------------------------------------------------------

الخاصيه ( Locked )

هذه الخاصيه تحمل خيارين true و False 

عند اختيار False  سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1     

وعند اختيار True  لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1     يعنى هيكون فى حمايه على  TextBox1

----------------------------------------------------------------------------------------------------------------------------------------

الخاصيه ( Maxlenght )

هذه الخاصيه يمكن من خلالها التحكم فى عدد الاحرف او الارقام المدخله بالـ TextBox1 

لو حضرتك عايز تجبر المستخدم على ادخال وليكن عدد 8 أحرف فقط 

اكتب فى خاصيه Maxlenght  رقم 8 فلو حب المستخدم يكتب ( محمد خالد ) فأنه لا يستطيع الا كتابة (محمد خال) لماذا لانه تم تحديد عدد الادخال 8 فقط

واحد هيقولى محمد خالد عددها 8 حروف هقوله ان الفيجول هيقوم بعد الفاصله اللى بين محمد وبين خالد وبالتالى (محمد 4 حروف + 1 فاصله + خال 3 حروف كدا =8)

شاهد الصوره

large.38.png.7bf973729bda53e6372663cbfc8

 

------------------------------------------------------------------------------------------------------------------------------------------

 

الخاصيه ( Multiline )

هذه الخاصيه تحمل خيارين true و False 

عند اختيار False  سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1     على سطر واحد فقط 

وعند اختيار True  سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1     على عدة اسطر ويجب مراعاة تعديل

ارتفاع TextBox1 ليظهر اكثر من سطر

شاهد الصوره

large.39.png.f01b467177faec58159e17fbb0f

 

------------------------------------------------------------------------------------------------------------------------------------------

 

 

الخاصيه ( Password char )

هذه الخاصيه يمكن من خلالها التحكم فى طريقة أظهار القيم  المدخله بالـ TextBox1 

لو حضرتك عايز تجعل القيم المدخله فى  TextBox1  على شكل (  * )  مثلا شاهد الصوره التالية

 

large.40.png.a62ec5d966ab2f1f49dddf59dba

 

------------------------------------------------------------------------------------------------------------------------------------------

 

الخاصيه ( ScrollBars )

هذه الخاصيه تحمل اربع خيارات ويبدأ العدد من 0 الى 3

0- FMScrollBarsNone  ( هذا يعنى الغاء خاصيه ScrollBars )

1-FMScrollBarsHorizontal ( هذا يعنى عمل ScrollBars للـ TextBox1   بشكل أوفقى )

2-FMScrollBarsVertical      ( هذا يعنى عمل ScrollBars للـ TextBox1   بشكل رأسى )

3-FMScrollBarsBoth          ( هذا يعنى عمل ScrollBars للـ TextBox1   بشكل أفقى و رأسى مع بعض )

 

*** الاختيار رقم 1 وهو عمل ScrollBars للـ TextBox1   بشكل أوفقى لابد من جعل خاصيه Multiline  تكون False يعنى يكون الكتابه على سطر واحد وبكدا يعمل سكرول بار افقى للوصول الى اخر السطر

**** الاختيار رقم 2 وهو عمل ScrollBars للـ TextBox1   بشكل رأسى  لابد من جعل خاصيه Multiline  تكون True يعنى يكون الكتابه على عدة أسطر  وبكدا يعمل سكرول بار رأسى للوصول الى اخر السطر

**** الاختيار رقم 3 وهو عمل ScrollBars للـ TextBox1   بشكل رأسى واخر افقى بصراحه حاولت استخدمه لكن لم يظهر معى بشكل افقى وراسى وتفسير ذالك هى الخاصيه  Multiline   لانها تحمل خيارين اما الادخال يكون على سطر واحد وبالتالى فان الاسكرول بار الرأسى لا يوجد له فائده  وأما الادخال على عدة اسطر متتاليه وبالتالى ان الاسكرول بار الافقى لي له فائده هذا والله اعلم ( مش عايز افتى فى شئ لا اعلمه واترك الامر للخبراء )

شاهد الصوره 

large.41.png.766881b3b54700049d155bde58f

--------------------------------------------------------------------------------------------------------------------------

الخاصيه (Visible )

وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور TextBox1   عند عرض الفورم 

وعند الضغط على السهم المجاور لها ستجد لها خيارين True  و  False

عندد اختيار True سوف يظهر الـ TextBox1   على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك )

وعند اختيار False ٍسوف يختفى الـ TextBox1   على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم

--------------------------------------------------------------------------------------------------------------------------

الخاصيه (Tab index )

وهذه الخاصيه تتيح للمستخدم ترتيب التنقل بين الازرار على الفورم بعد الخروج منها من خلال الزر انتر  ويمكن تعطيل هذه الخاصيه من خلال استخدام الخاصيه Tab stop = True

الخاصيه (Tab Stop )

وهذه الخاصيه تحمل خيارين  True  و  False 

عندد اختيار True يتم تعطيل خاصيه Tab index

وعند اختيار False ٍسوف تفعل خاصيه Tab index للتنقل بين الازرار حسب الترتيب الذى ترغب فيه

------------------------------------------------------------------------------------------------

الخاصيه (Text Align) :-

وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه بداية النص داخل الـ  TextBox1   
هل يكون يميناً أو يساراً أو وسط TextBox1   
لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى
 fm Text Align Left  -1      عند الاختيار ستجد ان اتجاه النص داخل TextBox1     يبداء من اليسار
 fm Text Align Center  -2    عند الاختيار ستجد ان اتجاه النص داخل TextBox1     فى المنتصف
 fm Text Align Right  -3        عند الاختيار ستجد ان اتجاه النص داخل TextBox1     يبداء من اليمين
-------------------------------------------------------------------------------------------------------------------------

رقم 20 الخاصيه ( ٍِSpecial Effect )

هذه الخاصيه من الخصائص الهامه للـ TextBox1  وهى تعطى اشكال مبهره ومميزه للـ TextBox1  ولها خمس اشكال

شاهد الصوره التاليه

large.42.png.7055501353d5fb309b860f8f1d7

 

كما تشاهدون فى الصوره على اليسار دائره حمرا وبداخلها سهم يمكنك الضغط على السهم سيظهر لك قائمة الخيارات للاشكال اخترمنها الشكل المناسب لك 

جرب كل الاشكال واطلع علىها واختر ما يناسب زوقك

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

كدا الحمد لله انتهينا من المحور الاول وهو عملية التصميم ورسم TextBox وايضا انتهينا من المحور
 
الثانى وهو اهم خصائص الـ TextBox
 
ان شاء الله المره القادمه نتكلم عن المحور الثالث وهو وقت تنفيذ الكود الخاص بـ TextBox
 
ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع
 
تقبلوا تحياتى

*********************************************

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

  • الردود 61
  • Created
  • اخر رد

Top Posters In This Topic

السلام عليكم أخي الصقر

شكراً أيها الصياد البارع 

جزاكم الله خيراً....هكذا سيكون للعلم معنى

حيث تتواصل سلسلة العلم فلا تقف عند أحد

لأن الله تعالى قد ذم من كتم العلم ورفع درجات العلماء

اللهم اجعلنا ممن ترتفع درجاتهم ...والسلام عليكم.

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

اخى الصقر

مجهود كبير

ومعلوامت مفيده

فى انتظار المزيد

ونرجو الا تتهم بقلة المشاهده

او قلة الردود

ولكن الاهم هو

تقديم شيئا مفيدا

تقبل تحياتى

 

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

استاذى وحبيبى ابويوسف

والله انا تلميذ مثلك ومازلت اتعلم وخبرتى بسيطه ولكن حبيبت انى المعلومه اللى اعرفه يشاركنى فيها غيرى ويعرفها زى مش اكتر وهذا والله العظيم ليس تواضع منى ولكن هى الحقيقه التى لا يعرفها الا الله حتى لقب عضو خبير

( والله لا استحقه) انا عضو عادى بين الاعضاء اتعلم من الاساتذه فأنا لست دارساً للبرمجه وانما هى هوايه  

تقبل تحياتى

************************************

الاخ ابونبا

جزاكم الله خيرا

تقبل تحياتى

*****************************************

الاخ الفاضل

ابراهيم ابوليله

جزاكم الله خيرا على مرورك العطر 

ودعنى اقولها لك بصراحه ان قله الردود تعنى ان الموضوع غير مفيد وغير مهم ويحبط كل من يريد ان يقدم شئ لا أتكلم عن نفسى ولكن اتكلم بشكل عام الدرس السابق جلست حوالى 5 ساعات لتجهيزه وتصميم الصور ثم رفعها على الموقع وكتابه الشرح وتنسيقاته 

فى حين ان الرد على الموضوع لا يحتاج سطر فى ظرف دقيقه الخلاصه لا احتاج انا او غيرى كلمة شكر او أشاده ولكن نحتاج معرفه ما مدى اهميه وقيمة ما نقدمه وهل هو مفيد أم لا

تقبل تحياتى

******************************************

استاذى الفاضل

ابوسليمان

الشرح اعتقد ان بسيط للغايه ومصحوب بالصور 

ولكن اعدك فى الدرس القادم شروحات اكثر تفصيلا وابسط عرضا

تقبل تحياتى

تم تعديل بواسطه الصـقـر
  • Like 2
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته أخي الصقر حسام

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

قد لا يبدو لك أن أحداً ما استفاد مما كتبت ولكن في الحقيقة لكل صوت صدى مهما بلغت دقته ..فإن أردت معرفة الاستجابة والاستيعاب عليك بالتغذية الراجعة أو كما قام أخونا الحبيب أبو البراء في أحد مشاركاته بوضع صورة مرفقة مع ملف طلب منا إدراجها ضمن يوزر فورم Sign in  وأجبناه وذلك ليس عيباً ..بل يحقق مردوداً يرضي خاطرك ..هكذا كنا نعمل معشر المعلمين..

تقبل تحياتي..السلام عليكم.

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

الاخوة الكرام هل الشرح معقد ؟ هل الشرح غير كافى ؟ يرجى وضع تقيمكم للشرح ووضع اى ملاحظات علي الشرح للعمل على تعديله فى المرات القادمه تقبلوا تحياتى

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

السلام عليكم و رحمة الله و بركاته

بارك الله فيك أستاذنا العزيز حسام .. جزاك الله خيرا و زادك من علمه و فضله

بساطة و سلاسة في الشرح و دقّة في تسمية المصطلحات

واصل وفّقك الله وسدّد خطاك لما يحبّه و يرضاه

كملاحظة أستاذنا لماذا لا تظهر عندي خاصية calendar control ..ألف شكر مسبّقا

                                      خالص تحيّاتي

images.jpg

1.png

تم تعديل بواسطه عبد العزيز البسكري
  • Like 1
رابط هذا التعليق
شارك

السلام عليكم أخي العزيز حسام..

بصراحة شرح ولا أروع ...من قال أن شرحك غير واضح بل قمة في الوضوح ..أحسنت التعبير عن كل فكرة طرحتها مع الصور واﻷسهم لترسخ في الذاكرة حيث جمعت بين الحس والذاكرة وهذا هو الأسلوب الناجع والناجح للانطلاق نحو أفكار أكبر حيث ننطلق من المحسوس بالرؤية إلى المجرد...وفقك الله إلى كل خير والسلام عليكم.

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

اخى حسام

جزيت خيرا على شروحاتك

شرح جميل ومفيد

اخوانى أعضاء المنتدى

نرجو التجاوب مع الشارح لان ذلك فيه افاده

تحياتى لمشرفنا ياسر خليل

فقد قدم الحلول المشروحه وافرد لنا شروحات فجزاه الله خيرا

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

السلام عليكم

أخى العزيز الصقر .... شرحك جميل ... استمر 

وثق ان العبرة ليست بكثرة الردود بل على العكس فأنا أتمنى ان يكون الموضوعات التى تتناول الشرح مثل موضوعك متتالية بدون تعليقات ويكفى ان يضع متابعيك نقطة إعجاب فقط الا اذا كان يسأل عن نقطة معينة فى الشرح مثل المشاركة رقم 9 ..... وفى هذة الحالة فقط يمكن ان ترد عليه قبل البدء فى الشرح التالى

وسيفيد تسلسل الموضوعات بدون قصائد الشكر فى استفادة كل متعلم يبدأ الموضوع ثم يتابع قراءة باقى الشرح متصلا بدون ان تقطعه التعليقات

اتمنى منك الاستمرار لكى يستفيد الجميع  .... فالمبتدئ سيجد ضالته اما الذى يعلم مسبقا سيزيد معلوماته ويعززها

 

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

السلام عليكم و رحمة الله و بركاته

بارك الله فيك أستاذنا العزيز حسام .. جزاك الله خيرا و زادك من علمه و فضله

بساطة و سلاسة في الشرح و دقّة في تسمية المصطلحات

واصل وفّقك الله وسدّد خطاك لما يحبّه و يرضاه

كملاحظة أستاذنا لماذا لا تظهر عندي خاصية calendar control ..ألف شكر مسبّقا

                                      خالص تحيّاتي

 

 

السلام عليكم

Calendar Control قد لا تنزل مع بعض اصدارات الأوفيس مثل اوفيس 2010

لكن يمكن الاستعاضة عنها باحد الادوالت التالية

 Microsoft Date  and Time Picker Control 6.0

Microsoft Month View Control 6.0

calender.jpg

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

السلام عليكم و رحمة الله و بركاته

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

جزاك الله خيرا.gif

 

تم تعديل بواسطه عبد العزيز البسكري
  • Like 1
رابط هذا التعليق
شارك

الاخوه الكرام 

أقدم كل التحيه والتقدير للاستاذ الفاضل اسامه البراوى

واشكره من كل قلبى لاهتمامه بالموضوع 

الاستاذ اسامه الفاضل الخلوق له اضافه وتعليق على ما ذكر ومعه كل الحق فمن كرم اخلاقه ومعدنه الاصيل فضل ان يكتبها برساله خاصه وودت ان انقلها لكم لكى تعم الفائده

.... يمكن اضافة ادوان تحكم جديدة بالضغط على الزر الايمن فى اى مكان فاضى او مليان فى التول بوكس

.... استعمال هذة الاداة ليتيح لك الانتقال الى مود الاختيار ما بين عناصر التحكم الموجودة على الفورم لتحريكها او التحكم فى حجمها .. هناك بعض اصدارات من الاكسيل عندما تختار ان تضيف زر مثلا ... يبقى المؤشر على الفورم فى وضع الاضافة/ فكلما ضغطت على الفورم بعد ذلك يضيف زر جديد وهكذا .... والحل عندها الضغط على المؤشر للهروب من هذة الدائرة المفرغة

كل الشكر والتحيه والتقدير الى الاستاذ الفاضل اسامه البراوى واحب اقول لحضرتك لا حياء فى العلم فأنا مازلت تلميذ أرتوى من بحر علمكم الفياض

تقبل تحياتى

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

السلام عليكم ورحمة الله

اخي الفاضل حسام

بداية موفقة وشرح رائع وفقك الله وفي ميزان حسناتك

لي طلب بسبق الاحداث بخصوص التايمر

في الفيجول بيسك نستطيع وضع تايمر ككائن ونجعل الليبل يومض

لكن في   Exell Vba لاتوجد تلك الاداه

فكيف استطيع اجعل الليبل يومض

آسف جدا علي دخولي عرضيا وإستباقي للاحداث مبكرا. فأنا محتاجة ومستعجل علية

أبو الحسن والحسين

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

السلام عليكم أخي حسام شكراً جزيلاً على هذا العرض الرائع 

حيث تدرّجت من خاصة إلى أخرى مستعيناً بالله أولاً ثم بالرسوم المرفقة كإيضاحات مما يشد انتباه المشاهد

يرجى التعريج على بعض الخصائص الأخرى مثل Auto size حجم تلقائي .. و Control Tip Text حيث نقوم بكتابة نص داخله ليعطينا تعليقاً على عمل الـ Label 

فالمبتدئون أمثالي بحاجة ماسة لدراسة مثل هذه الخصائص  .

نحن معك نسير قدماً خطوة خطوة لنصل إلى هدف سامٍ كما حضنا نبينا الكريم صلى الله عليه وسلم بقوله:(ليس مني إلا عالم أو متعلم) أو كما قال...

نحن نتعلم إذاً نحن أحياء.... لن نسمح لأنفسنا أن نكون جهلة رعاع عالة على موائد الأمم الأخرى.

تقبل تحياتي العطرة .

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

السلام عليكم ورحمة الله

اخي الفاضل حسام

بداية موفقة وشرح رائع وفقك الله وفي ميزان حسناتك

لي طلب بسبق الاحداث بخصوص التايمر

في الفيجول بيسك نستطيع وضع تايمر ككائن ونجعل الليبل يومض

لكن في   Exell Vba لاتوجد تلك الاداه

فكيف استطيع اجعل الليبل يومض

آسف جدا علي دخولي عرضيا وإستباقي للاحداث مبكرا. فأنا محتاجة ومستعجل علية

أبو الحسن والحسين

أضف ليبل label1 و جرب هدا الكود في UserForm Module

Option Explicit

Private Enum BackForeColor
    Background
    ForeGround
End Enum
Private Enum FlashSpeed
    Slow
    Fast
End Enum

Private bExiting As Boolean
Private lLabelBackColor As Long
Private lLabelForeColor As Long

Private Sub UserForm_Activate()
    lLabelBackColor = Me.Label1.BackColor
    lLabelForeColor = Me.Label1.ForeColor
    Flash Obj:=Me.Label1, What:=Background, Speed:=Fast, FlashColor:=vbGreen
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    bExiting = True
End Sub

Private Sub Flash( _
    ByVal Obj As Object, _
    ByVal What As BackForeColor, _
    ByVal Speed As FlashSpeed, _
    ByVal FlashColor As Long _
    )
    
    Dim sProperty As String
    Dim iSpeed As Integer
    Dim lInitialColor As Long
    
    sProperty = IIf(What = Background, "BackColor", "ForeColor")
    lInitialColor = IIf(What = Background, lLabelBackColor, lLabelForeColor)
    iSpeed = IIf(Speed = Slow, 4, 2)
    Do
        If Int(Timer) Mod iSpeed And CallByName(Obj, sProperty, VbGet) <> FlashColor Then
            CallByName Obj, sProperty, VbLet, FlashColor
        End If
        If Int(Timer) Mod iSpeed = 0 And CallByName(Obj, sProperty, VbGet) <> lInitialColor Then
            CallByName Obj, sProperty, VbLet, lInitialColor
        End If
        DoEvents
    Loop Until bExiting
End Sub

ال Flash Sub  هي ماكرو عامة تتقبل أي كونترول و تتقبل تغيير ال BackColor  او ال  ForeColor  كما تحدد لون و سرعة الفلاش

تم تعديل بواسطه جعفر الطريبق
  • Like 2
رابط هذا التعليق
شارك

السلام عليكم جزاكم الله خيراً أستاذ طارق المحترم

لقد أعطانا ليبل وامض باللون الذي نختاره ...ولكني أظنها الألوان الرئيسية فحسب.

نقبل تحياتي.

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

السلام عليكم ورحمة الله

 اخي الفاضل جعفـــــــــــــــــــــــــــــــــــــر

نعم جربت ال ForeColor وال BackColor شغًـال تمام

لكن حاولت ان يعمل علي اكثر من ليبل ما استطعت هل هناك إمكانية ليعمل الكود علي اكثر من ليبــــل للعلم فقط

انا الحمد لله اكتفيت بما طلبت

جزاك الله خير وفي ميزان حسناتك

تم تعديل بواسطه KHMB
رابط هذا التعليق
شارك

تفضل هدا الكود بال SeTimer API ..  الكود يجعل كل الكونترولات على الفورم  تومض و ليس الليبل فقط

 

ملف للتحميل : https://app.box.com/s/v1bq7azcpdyf53ghc1j77mg62obarw7i

 

1 - كود في Standard Module :

Option Explicit

Public oUf As Object

#If VBA7 And WIN64 Then ' 64-bit Office
    Public Sub TimerRedirect(ByVal hwnd As Longlong, ByVal nIDEvent As Longlong, ByVal uElapse As Longlong, ByVal lpTimerFunc As Longlong)
#Else ' 32-bit Office
    Public Sub TimerRedirect(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
#End If
    CallByName oUf, "TimerProc", VbMethod, hwnd, nIDEvent, uElapse, lpTimerFunc
End Sub

 

2 - كود في موديول الفورم UserForm Module :

Option Explicit

Private Enum BackForeColor
    Background
    ForeGround
End Enum


#If VBA7 And WIN64 Then
    Private Declare PtrSafe Function SetTimer Lib "user32" ( ByVal HWnd As LongLong, ByVal nIDEvent As LongLong, ByVal uElapse As LongLong,ByVal lpTimerFunc As LongLong) As LongLong
    Private Declare PtrSafe Function KillTimer Lib "user32" (ByVal HWnd As LongLong,ByVal nIDEvent As LongLong) As LongLong
    Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As LongPtr)
#Else
    Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
#End If
        
        
Private Sub UserForm_Initialize()
    Set oUf = Me
    Call Flash(Me.Label1, Background, 1, vbRed)
    Call Flash(Me.Label2, ForeGround, 2, vbRed)
    Call Flash(Me.Label3, Background, 1, vbYellow)
    Call Flash(Me.TextBox1, Background, 3, vbGreen)
    Call Flash(Me.CommandButton1, Background, 1, vbMagenta)
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Dim oCtl As Control
    For Each oCtl In Me.Controls
        KillTimer Application.hwnd, ObjPtr(oCtl)
    Next
    Set oUf = Nothing
End Sub



Private Sub Flash( _
    ByVal obj As Object, _
    ByVal What As BackForeColor, _
    ByVal FlashesPerSecond As Long, _
    ByVal FlashColor As Long _
        )
    
    obj.Tag = IIf(What = Background, "BackColor", "ForeColor") & "*" & FlashColor & "*" & _
    IIf(What = Background, obj.BackColor, obj.ForeColor)
    
    Call SetTimer(Application.hwnd, ObjPtr(obj), FlashesPerSecond * 1000, AddressOf TimerRedirect)
 End Sub


#If VBA7 And WIN64 Then ' 64-bit Office
    Public Sub TimerProc(ByVal hwnd As Longlong, ByVal nIDEvent As Longlong, ByVal uElapse As Longlong, ByVal lpTimerFunc As Longlong)
#Else ' 32-bit Office
    Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
#End If
        Dim obj As Object
        Dim FlashCl As Long
        Dim sProp As String
        Dim initColor As Long
        
        CopyMemory obj, uElapse, 4
        sProp = Split(obj.Tag, "*")(0)
        FlashCl = Split(obj.Tag, "*")(1)
        initColor = Split(obj.Tag, "*")(2)
        If CallByName(obj, sProp, VbGet) <> FlashCl Then
            CallByName obj, sProp, VbLet, FlashCl
        Else
            CallByName obj, sProp, VbLet, initColor
        End If
        CopyMemory obj, 0&, 4
End Sub

 

تم تعديل بواسطه جعفر الطريبق
  • Like 1
رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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



×
×
  • اضف...

Important Information