المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سلسلة دروس في الفيجوال بيسك



الحبيب لمين
29-07-2006, 10:35 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif



http://www.moudir.com/vb/images/smilies/salam.gif


http://www.shazly.net/~freehosting/1/tpqcc5tw_b180.gif






مقدمة



مرحباً.. أنت هنا لأنك بالتأكيد سمعت عن شهرة الفيجوال بيسك

و تريد أن تدخل عالم البرمجة من أمتع أبوابه و أسهلها على الإطلاق ..

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

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

لقد قامت شركة مايكروسوفت بتصميم فيجوال بيسك بناءً على لغة البرمجة بيسك .
هذه اللغة (بيسك ) مصممة خصيصاً للمبتدئين في البرمجة نظراً لسهولتها على عكس اللغات
التي كانت متوفرة حينذاك مثل الكوبول و فورتران و لغة التجميع Assembly .

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

رغم أن لغة بيسك مصممة للمبتدئين إلا أن برامجها تحتاج لبعض الدراسة لفهمها و هي تعتمد
على النصوص بشكل تام لذا فإن البرامج التي تكتب بلغة بيسك تنتج ناتجاً نصياً أيضاً
و لا تظهر في نوافذ كما هو حال برامج الويندوز الحالية .

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

مرت عملية تطوير لغة البيسك بعدة مراحل قبل أن تصل إلى لغة الفيجوال بيسك الحالية
فقد قامت شركة ميكروسوفت بتطوير لغة البيسك إلى إصدارة جديدة أسمتها
MBasic -M ترمز لمايكروسوفت - ثم إلى GWBasic
و لغة BasicA -A ترمز لـ Advanced أي متقدم -
و لغة QuickBasic و لغة Qbasic .

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

بعد تطور نظام التشغيل ويندوز و زيادة شهرته ،رأت ميكروسوفت أن
لغة QBasic المعتمدة على النصوص لن تكون مناسبة على الإطلاق للعمل داخل النوافذ
في هذه المرحلة ، قامت شركة ميكروسوفت بتطوير لغة الفيجوال بيسك التي تتناسب مع طبيعة
العمل داخل النوافذ إذاً لابد أنك استنجت أن لغة الفيجوال بيسك لا تعتمد على النصوص بصورة
كبيرة بل على العكس هي لغة رسومية أو مرئية استنتاجك صحيح يا صديقي

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

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

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

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

http://www.w6w.net/album/35/w6w200504132213576f20887a6.gif

إذاً أنت الآن جاهز لاقتحام هذا العالم الرائع عالم الفيجوال بيسك و لديك الأسلحة
اللازمة أقصد الإصدارة السادسة من برنامج الفيجوال بيسك

سوف اقدم انشاء الله شرح كامل للبرنامج
بمعدل درس كل يوم

كونوا معي الله يخليكم
لكي نرقي في البرمجة
ونرقي بالمنتدي ليكون منتدانا مميز داخل موقع المنتدي
ويكون موقع المنتدي مميز عن بقية المنتديات
غدا نبدا ان شاء الله

الحبيب لمين
30-07-2006, 11:04 AM
السلام عليكم


لا احد يريد ان يتابع معي هذه السلسلة الشيقة :( :( :(


:wow: :wow:
شكــــــرا


لكن مع هذا


راح استمر

الحبيب لمين
30-07-2006, 11:29 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif


http://www.w6w.net/album/35/w6w_w6w_20050426094204d842874d.jpg


استخدام معالج البرامج لإنشاء أول برنامج لك -الجزء الأول


لكتابة برنامج في فيجوال بيسك لديك خياران : إما أن تبدأ من فراغ و تقوم بكتابة البرنامج من الألف إلى الياء
أو أن تستخدم معالج البرامج ليقوم بإنشاء أساسيات البرنامج و تقوم أنت بملء النواقص فيما بعد ..

المعالج برنامج صغير يسألك عدة أسئلة و بناء على إجاباتك يتولى هو القيام بالمهام الصعبة عنك




http://www.0zz0.com/2006/07/30/306455436.gif (http://www.0zz0.com/2006/07/30/306455436.gif)


إذاً فلنبدأ قم بتشغيل برنامج الفيجوال بيسك سيظهر لك مربع حوار ، تفحص هذا المربع ،




إنه يحتوي على ثلاث تبويبات و هي :




-new :


لإنشاء برنامج جديد .


-Existing :


لفتح أحد البرامج الموجودة على جهازك .


- Recent :


لفتح البرامج التي استخدمتها مؤخراً



http://www.c4arab.com/images/lessons/programming/visualbasic/Image3.gif



فلنعد لموضوعنا هل خمنت كيف نستطيع تشغيل معالج البرامج ؟


نعم بالتأكيد نقوم بالنقر المزدوج على رمز


http://www.c4arab.com/images/lessons/programming/visualbasic/vb8.jpg


من التبويبة


بالطبع بعد أن تنقر نقراً مزدوجاً على الرمز السابق فإن المعالج سيبدأ بالعمل و يظهر مربع
ترحيبي انقر رمز التالي لتبدأ بالعمل أول مربع حوار سيواجهك يسألك عن نوع الواجهة
التي تريدها لبرنامجك . أمامك ثلاث خيارات


(-Multiple Document Interface MDI):


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


(-Single Document InterfaceSDI):


لإنشاء برنامج يحتوي على نافذة واحدة فقط


-Explorer Style :


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


قم باختيار الخيار الأوسط [خير الأمور أوسطها :) ] ثم اختر اسماً لبرنامجك و اكتبه
في المستطيل المسمى


?What name do you want for the application


اختر الاسم FirstApp


لاحظ أنه يجب أن لا تترك مسافات بيضاء في الاسم المختار ثم انقر التالي


Next .


المربع الحالي يطلب منك اختيار القوائم التي تريد إضافتها إلى شريط القوائم في برنامجك ..
اترك جميع الخيارات كما هي ثم انقر زر


Next .


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


Next .


المربع الحالي يسألك هل يضع موارد البرنامج


Resources


في ملف منفصل أم يضعها في نفس الملف .اختر


No


ثم انقر Next


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


انقر زر Next


دون تغيير الخيارات الافتراضية .


http://www.0zz0.com/2006/07/30/306455436.gif (http://www.0zz0.com/2006/07/30/306455436.gif)


في الدرس القادم سنتعلم بعض الخيارات المتقدمة في معالج البرامج و سنشرح مانحصل عليه باستخدامه بشكل أوسع إن شاء الله ..فإلى هناك
{لمن لم يظهرو له الصور في المرفقات }

ملاحظة :-

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

Argonaut
30-07-2006, 02:17 PM
و عليك السلام والرحمة
ههه
بارك الله في عملك << تمنيت لو كان عل vb8
و موضوع جميل من الجميل (:
وشكرا"

Argonaut
30-07-2006, 02:25 PM
و عليك السلام والرحمة

جزاك الله خيرا"
وشكرا"
(:

الحبيب لمين
30-07-2006, 03:32 PM
و عليك السلام والرحمة
ههه
بارك الله في عملك << تمنيت لو كان عل vb8
و موضوع جميل من الجميل (:
وشكرا"


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

الحبيب لمين
30-07-2006, 03:42 PM
و عليك السلام والرحمة

جزاك الله خيرا"
وشكرا"
(:
الله يجبر بخاطرك

فرحتني والله اه فيه حد يقرا كلامي هذا
:silly: :silly: :D :silly: :silly:
بارك الله فيك على مرورك المشرف هذا

wellknownQ8
31-07-2006, 10:57 AM
و عليكم السلام و رحمة الله و بركاته

فعلا .. بارك الله فيك أخوي لمين ..
و نتمنى استمرارك و تواجدك المثمر معنا دائما

و شكرا لك

الحبيب لمين
31-07-2006, 11:16 AM
و عليكم السلام و رحمة الله و بركاته

فعلا .. بارك الله فيك أخوي لمين ..
و نتمنى استمرارك و تواجدك المثمر معنا دائما

و شكرا لك

بصراحة انا فرحان جدا انه فيه حد من الاعضاء الكرام يتابغ مواضيعى

وبجد سعيد انك انت والاخ Argonaut

تتنا بعون كلامي

واتشجعوني عيى الاستمرار

وطالما ان هدفي هو ايصال المعلومة راح استمر

انشاء الله

وما راح انتضر ردود مع انها مهمة

خاصة منكم انتم الاثنين

اخوكم لمين

الحبيب لمين
31-07-2006, 12:27 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif



http://www.moudir.com/vb/images/smilies/salam.gif







http://www.l22l.com/l22l-up-4/056d685f14.gif






اخوتي الاعضاء للحصول على اكبر جزء من الافادة يجب ان نبابع الدروس الاول فالاول

نتابع الدروس ونطبقها ولا نكتفي بالنظر الي الصور

http://www.l22l.com/l22l-up-4/a0c97dc8f5.gif

نبدا درس اليوم

في هذا الدرس سوف نفهم كيف نتصل في قاعدة البيانات ونسحب المعلومات منها .



اخوتي الاعضاء بعد ان طبقنا الدرس الاول تظهر لنا هذه الشاشة



http://www.l22l.com/l22l-up-4/d5275a421e.gif







كما هي موضحة في صورة 1 :



http://www.l22l.com/l22l-up-4/39972cb284.jpg












http://www.l22l.com/l22l-up-4/d5275a421e.gif










نقوم بفتح Form1 كما يظهر في الصورة 1 ,





واضافة زر واحد Command و نقوم باضافة : Listbox :

صورة 2 :









http://www.l22l.com/l22l-up-4/8c22580953.jpg






http://www.l22l.com/l22l-up-4/d5275a421e.gif


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

صورة 3







http://www.l22l.com/l22l-up-4/dbe3571722.jpg






http://www.l22l.com/l22l-up-4/d5275a421e.gif


نقوم بتعريف متغير من نوع Connection لكي يتكفل بالاتصال بقاعدة البيانات :

Dim Conn As New Connection

بعد ذلك نقوم بتعريف متغير من نوع Recordset لكي يقوم بالتعامل مع البيانات :

Dim Rs As New Recordset

والمتغير strSQL هو متغير نص String سوف ندخل اليه جملة SQL التي تمثل البياناتالتي نريد سحبها .
Dim strSQL As String
سوف نخرج من خلال جملة SQL اسماء المدن الموجوده في القاعدة :
strSQL = "Select CityName From Cities" << SQL
نتصل اولا بقاعدة البيانات
Conn.Open "Database" << Connection
بعد ذلك نخبر ال Rs بالمعلومات التي نريد اخراجها strSQL ونخبرهايضا باسم المتصل
Rs.Open strSQL, Conn
والان وقد فتح الاتصال واستطاع ال Rs الى المعلومات سوف نسأل اذاكان هناك معلومات اصلا :)
Rs.EOF معنى ذلك هل وصلنا الى النهاية ؟ اذا كان الجواب نعم True فليس هناك اي نتيجة وسوف اخرج رسالة No Fields
If Rs.EOF = True Then
اما اذا كان هناك معلومات فسوف نخرج الرسالة Yes .
بعد النهاية من كتابة الكود اضغط F5 لترى نتيجة العمل .
صورة 4 :







http://www.l22l.com/l22l-up-4/b635385138.jpg











http://www.l22l.com/l22l-up-4/d5275a421e.gif











نقوم بعدها باضافة زر جديد Command وسوف يكون عمله ادخال اسماءالمدن الى Listbox وهذا بعد ان قمت بادخال اسماء المدن طبعا الى قاعدة البيانات






صورة 5 :


http://www.l22l.com/l22l-up-4/e462378ad2.jpg



http://www.l22l.com/l22l-up-4/d5275a421e.gif







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






وقم بكتابة الكود الذي يظهر بالصورة







http://www.l22l.com/l22l-up-4/ffb744a209.jpg












http://www.l22l.com/l22l-up-4/d5275a421e.gif











نفس الكود ولكن هنا نستخدم الحلقة Do Until Loop.






ما دام Rs لم يصل الى نهاية السجلات فادخل الى الحلقة .








Do Until Rs.EOF








بعد ذلك نقوم باضافة اسماء المدن الى Listbox .








List1.AddItem Rs.Fields("CityName") << Listbox








Rs.MoveNext تعني انتقل الى السجل التالي.

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


صورة 7 :







http://www.l22l.com/l22l-up-4/57f4c62df0.jpg






http://www.l22l.com/l22l-up-4/d5275a421e.gif

نتابع بقية الدرس في الغد انشاء الله

دلع لولو
01-08-2006, 09:37 AM
مشكور اخوي على مساعدتنا في تعلم الفيجول

عندي استفسار بسيط


إذاً أنت الآن جاهز لاقتحام هذا العالم الرائع عالم الفيجوال بيسك و لديك الأسلحة
اللازمة أقصد الإصدارة السادسة من برنامج الفيجوال بيسك



وين ممكن القى هذا الاصدار؟؟؟

وشكرا

الحبيب لمين
01-08-2006, 03:09 PM
مشكور اخوي على مساعدتنا في تعلم الفيجول

عندي استفسار بسيط


وين ممكن القى هذا الاصدار؟؟؟

وشكرا


اختي دلع لولو

هذا الاصدار صعب انك اتحمليه من النت

لكن تشتريه كوبي احسن

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

الحبيب لمين
01-08-2006, 04:10 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif





http://www.moudir.com/vb/images/smilies/salam.gif



http://www.l22l.com/l22l-up-4/4c7c4e2bba.gif


الان سوف نكمل الدرس السابق انشاء الله





و سنتعرف على حقيقة ماسنحصلعليه باستخدام معالج البرامج .. فلنبدا مع بعض معاً







http://www.l22l.com/l22l-up-4/9c92b1122d.gif








لقد انتقلنا سوياً إلى المربع الحالي ..



هذا المربع يسمح لك بإضافة العديدمن النوافذ الرائعة
إلى برنامجك و هي كالتالي :



* Splash screen :



و هيالنافذة التي تراها في بعض البرامج وقت تحميل البرامج و قد تحتوي على شعار البرنامج


مثلاُ أو ما شابه .







http://www.l22l.com/l22l-up-4/9c92b1122d.gif





* Login dialog :


هل يحتاج برنامجك لكلمة مرور قبلالدخول ؟ إذاً هذا هو ما تبحث عنه .








http://www.l22l.com/l22l-up-4/9c92b1122d.gif




* Options dialog :

تحتوي الكثير منالبرامج الكبيرة على مربع حوار يعطي المستخدم بعض الحرية في التصرف بشكل البرنامجوو ظائفه .. ببساطة يمكنك إضافة شيء مشابه في برنامجك باستخدام هذا الخيار .






http://www.l22l.com/l22l-up-4/9c92b1122d.gif





* About box : حاول اختيار أمر about من قائمة Help في متصفحك .. يمكنكإضافة نافذة مشابهة في برنامجك باستخدام هذا الخيار .

http://www.l22l.com/l22l-up-4/9c92b1122d.gif

و الآن من فضلك قمباختيار الخيار about box فقط و لا تضف باقي الخيارات في هذه الخطوة ثم انقر التالي next .

http://www.l22l.com/l22l-up-4/9c92b1122d.gif

انقر زر next لإن المربع الحالي يتيح لك التعامل مع قواعد البياناتو هو مالا نحتاجه في برنامجنا التجريبي الأول .

http://www.l22l.com/l22l-up-4/9c92b1122d.gif

و الآن .. والحمد لله .. لقد وصلنا إلى النهاية درس امس ..
و يمكنك أن تنقر زر Finish ليقوم الفيجوال بيسك بإنشاءالبرنامج بالمواصفات التي طلبتها .

هل تريد رؤية النتيجة ؟ ......





http://www.l22l.com/l22l-up-4/9c92b1122d.gif




إذاً فلنقم بتشغيل برنامجنا الأول و ذلك باختيار أمر start من قائمة run . انظر ما حصلت عليه .. هل حصلت على نتيجة مشابهة ؟













http://www.c4arab.com/images/lessons/programming/visualbasic/vb_les1.gif




لاتنسى أن تجرب أمر about من قائمة
Help في برنامجك هذه المرة فهو الخيار الوحيد الذييعمل بصورة صحيحة
أما الأوامر الأخرى مثل cut أو paste فإنها
تحتاج لإضافة أوامربرمجية على برنامجك حتى تعمل
بشكل صحيح ..





http://www.l22l.com/l22l-up-4/9c92b1122d.gif







إذاً تعلمنا في هذا الدرس كيف ننشأ شكلاًعاماً


للبرنامج و لكنه بالتأكيد لا يعمل بصورة كاملة إلا إذا تعلمنا إضافة الأوامرالبرمجية عليه
و هو ماسنفعله في دروس قادمة بإذن الله





http://www.l22l.com/l22l-up-4/9c92b1122d.gif







لإيقاف البرنامج قم باختيارأمر Exit من قائمة File من داخل برنامجك ثم اختر أمر


Exit من قائمة File في فيجوالبيسك و عندها سيسألك إن كنت تريد حفظ برنامجك
فإذا كنت من أولئك الناس الذين يعتزونبأول برنامج لهم فقم بحفظ البرنامج باختيار الأمرyes أو
إذا كان هذا الموضوع لايستهويك فاختر No .
http://www.l22l.com/l22l-up-4/d2109bc9f0.gif

اخواني : انا ادرك ان الامر ممل نظريا لكن

سوف تستمتعون عندما تتنتجوا برنامج

انا نتظر ارائكم

حبيبة الشيخ
01-08-2006, 08:21 PM
السلام عليكم

انا متابعة معاك الدروس

استمر في الشرح

وشكرا على الشرح الممتاز

الحبيب لمين
01-08-2006, 08:32 PM
لا شكر على واجب

انا راح استمر

انشاء الله

شكرا على المرور

الحبيب لمين
02-08-2006, 10:28 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

اليوم سوف نشرح بالتفصيل واجهة البرنامج انشاء الله


http://www.l22l.com/l22l-up-4/fe505a4995.jpg

شريط الأدوات Tool Bar

هو الجزء العلوي من الفيجوال بيسك أسفل شريط القوائم مباشرة ..

هذا هو


http://www.l22l.com/l22l-up-4/8807f33585.jpg

وهذا الشريط يتغير بحسب الوظيفة التي تقوم بها في أي وقت .

صندوق الأدوات Tool Box

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

http://www.l22l.com/l22l-up-4/af72010d3a.jpg


هذا هو صندوق الأدوات القياسي ، وبما أنه قياسي فهذا يعني أنه يمكننا أن نضيف بعض التعديلات على هذا الصندوق كما سوف نعرف.

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

نافذة البرنامج


http://www.l22l.com/l22l-up-4/e77091e356.jpg


أو مايسميه الفيجوال بيسك بالفورم (Form) و سيكون معظم عملك في الفيجوال بيسك
داخل هذه النافذة .. في الحقيقة ، هذه النافذة تمثل النافذة التي ستظهر للمستخدم عند انتهاء
برنامجك و ستتعلم كيف تضيف إليها الأدوات المختلفة لتبدو مثل نوافذ برامج ويندوز
في الدروس اللاحقة إن شاء الله .لاحظ أن برنامجك قد يحتوي على أكثر من نافذة .
نافذة المشروع


http://www.l22l.com/l22l-up-4/94456df950.jpg

تحتوي على الملفات المختلفة التي يتضمنها برنامجك .

نافذة الخصائص



http://www.l22l.com/l22l-up-4/93154804e2.jpg


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

نافذة تخطيط النوافذ :Form layout

http://www.l22l.com/l22l-up-4/542d84a5f9.jpg


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

انتها درس اليوم انشاء الله

في لنتظار اسئلتكم واستفساراتكم

amawi
02-08-2006, 12:26 PM
السلام عليكم

جميل جدا ما تطرحه اخي

اسف لتأخري

لكن والله ضروف شوية

المهم اقتراح بسيط

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

والخيار الأخير لك

اتمنى لك التوفيق

الحبيب لمين
02-08-2006, 12:42 PM
السلام عليكم

جميل جدا ما تطرحه اخي

اسف لتأخري

لكن والله ضروف شوية

المهم اقتراح بسيط

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

والخيار الأخير لك

اتمنى لك التوفيق

وعليكم السلام

اخي الكريم amawi

شكرا جزيلا على هذه الكلمات المشجعة حقا

سوف اطلب من احد المراقبين ان يجمع الموضوع

الي موضوع واحد

شكرا على الفكرة

بارك الله فيك

amawi
02-08-2006, 12:59 PM
جميل جدا

تابع

لكن في موضوع واحد ان امكن لكي يتسنى للمراقب تثبيته او نقله الى المميزة

بالتوفيق

الحبيب لمين
02-08-2006, 02:12 PM
جميل جدا

تابع

لكن في موضوع واحد ان امكن لكي يتسنى للمراقب تثبيته او نقله الى المميزة

بالتوفيق
ان شاء الله

سوف اطلب ذلك من احد المراقبين الكرام

الحبيب لمين
03-08-2006, 10:50 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

درس اليوم هو الالوان

الوان الفورم و الالوان الاخري

فلنبدا



أولاً : الألوان باستخدام QBColor :
تضم هذه الطريقة خمسة عشر لوناً تبدأ من الصفر وحتى 15 ولكل رقم لون معين ، ويمكن الحصول على الألوان من هذه القائمة بالطريقة التالية :

Picture1.BackColor = QBColor(Number)

حيث Number هو رقم بين 0 و 15 .
ثانياً : اختيار الألوان من مربعات الحوار .
مربعات الحوار أو CommonDialog تحتوي على أكثر من شاشة مثل شاشة حفظ وفتح والخطوط وغيرها ، ومن ضمنها لوح الألوان ، ويمكن الإستفادة من هذه الأداة في الألوان بالطريقة التالية :
أضف الأداة إلى النموذج ثم اكتب الكود التالي :


' لتغيير عنوان مربع الحوار
CommonDialog1.DialogTitle = "اختر اللون الذي تريد"
' لعرض مربع ( لوحة الألوان )
CommonDialog1.ShowColor
' لعرض رقم اللون في رسالة
MsgBox CommonDialog1.Color
' وتغيير لون الفورم حسب اللون المختار .
Form1.BackColor = CommonDialog1.Color

ثالثاً : معرفة رمز اللون .
بفرض أن لدينا لون هو خلفية الفورم فيمكن معرفة رمز اللون ( غير رقمه ) بالشكل التالي :


Dim MyColor
MyColor = Form1.BackColor
Dim Red_C, Green_C, Blue_C
Red_C = (MyColor And &HFF&)
Green_C = (MyColor And &HFF00&) \ 256
Blue_C = (MyColor And &HFF0000) \ 65536

Dim Color_1
Color_1 = Format(Hex(Red_C) &
Hex(Green_C) & Hex(Blue_C), "000000")
MsgBox Color_1

رابعاً : تكوين لون من تغير تركيز الألوان الأساسية ( أحمر + أخضر + أزرق ) .
اضف ثلاثة من أدوات HScrollBar واجعل خاصية Max لها = 255 ( واحدة لتغيير تركيز كل لون ) .
ثم ضع الكود التالي في حدث HScroll_Change

Form1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)


وهكذا ستجد أن لون الفورم يتغير بتغير نسبة الألوان الأساسية فيه .


TextRed.Text = (Form1.BackColor And &HFF&)
TextGreen.Text = (Form1.BackColor And &HFF00&) \ 256
TextBlue.Text = (Form1.BackColor And &HFF0000) \ 65536



خامساً : معرفة تركيز الألوان الأساسية في أي لون ، وهي عملية عكسية للعملية السابقة .
سادساً : معرفة لون النقطة التي يمر بها الماوس
اكتب أولاً الأوامر التالية في الجينرال :

' لمعرفة نقطة الماوس
Option Explicit
Private Type POINTAPI
x As Long
y As Long
End Type
' =========================================
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long

ومن ثم اكتب الأمر التالي في تايمر :


Dim tPOS As POINTAPI
Dim sTmp As String
Dim lColor As Long
Dim lDC As Long
Dim thecolor
lDC = GetWindowDC(0)
Call GetCursorPos(tPOS)
lColor = GetPixel(lDC, tPOS.x, tPOS.y)
Form1.BackColor = lColor

أكواد متنوعة تتعلق بالألوان :
* لعمل خلفية متدرجة بالأزرق مثل برامج التنصيب :

Sub Fade(vForm As Form)
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256
For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 - intLoop), B
Next intLoop
End Sub
Private Sub Form_Activate()
Fade Me
End Sub

* لعمل خلفية متدرجة بالرمادي :

Private Sub Command1_Click()
Picture1.ScaleMode = vbPixels
x = Picture1.ScaleWidth
y = Picture1.ScaleHeight
For i = 0 To y - 1
For j = 0 To x - 1
pixel = Picture1.Point(j, i)
red = pixel Mod 256
green = ((pixel And &HFF00) / 256) Mod 256
blue = (pixel And &HFF0000) / 65536
g = ((red * 30) + (green * 60) + (blue * 20)) / 100
Picture1.PSet (j, i), RGB(g, g, g)
Next
Next
Picture1.ScaleMode = vbTwips
End Sub


* لعمل فورم بلون رخامي :
اكتب الأوامر التالي في التصاريح


Private Sub GradientFill()
Dim i As Long
Dim c As Integer
Dim r As Double
r = ScaleHeight / 3.142
For i = 0 To ScaleHeight
c = Abs(220 * Sin(i / r))
Me.Line (0, i)-(ScaleWidth, i), RGB(c, c, c + 30) 'Notice the bias To blue. You can be more subtle by reducing this number (try 10). Try other colours too.
Next
End Sub


وفي حدث Form_Resize

GradientFill


* لعمل فورم بلون قوس المطر :

Option Explicit
Private Sub Form_Load()
Me.AutoRedraw = True
Me.ScaleMode = vbTwips
Me.Caption = "Rainbow Generator by " & _
"K. O. Thaha Hussain"
End Sub

Private Sub Form_Resize()
Call Rainbow
End Sub

Private Sub Rainbow()
On Error Resume Next
Dim Position As Integer, Red As Integer, Green As _
Integer, Blue As Integer
Dim ScaleFactor As Double, Length As Integer
ScaleFactor = Me.ScaleWidth / (255 * 6)
Length = Int(ScaleFactor * 255)
Position = 0
Red = 255
Blue = 1
'Purposfully avoided nested loops
'------------- 1

For Green = 1 To Length
Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
RGB(Red, Green \ ScaleFactor, Blue)
Position = Position + 1
Next Green
'--------------- 2

For Red = Length To 1 Step -1
Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
RGB(Red \ ScaleFactor, Green, Blue)
Position = Position + 1
Next Red
'---------------- 3

For Blue = 0 To Length
Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
RGB(Red, Green, Blue \ ScaleFactor)
Position = Position + 1
Next Blue

'----------------- 4

For Green = Length To 1 Step -1
Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
RGB(Red, Green \ ScaleFactor, Blue)
Position = Position + 1
Next Green

'------------------ 5

For Red = 1 To Length
Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
RGB(Red \ ScaleFactor, Green, Blue)
Position = Position + 1
Next Red
'------------------- 6

For Blue = Length To 1 Step -1
Me.Line (Position, 0)-(Position, Me.ScaleHeight), _
RGB(Red, Green, Blue \ ScaleFactor)
Position = Position + 1
Next Blue
End Sub



* سبع تدريجات مختلفة للفورم :
نكتب ما يلي في قسم التصاريح


Sub XFormBlueFade(vForm As Object)
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 - intLoop), B 'Draw boxes With specified color of loop
Next intLoop
End Sub

Sub XFormFireFade(vForm As Object)
'This code works best when called in the
'
' paint event
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(255, 255 - intLoop, 0), B 'Draw boxes With specified color of loop
Next intLoop
End Sub

Sub XFormGreenFade(vForm As Object)
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 255 - intLoop, 0), B 'Draw boxes With specified color of loop
Next intLoop
End Sub

Sub XFormIceFade(vForm As Object)
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 255 - intLoop, 255), B 'Draw boxes With specified color of loop
Next intLoop
End Sub

Sub XFormPurpleFade(vForm As Object)
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(25, 0, 100 - intLoop), B 'Draw boxes With specified color of loop
Next intLoop
End Sub

Sub XFormRedFade(vForm As Object)
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(255 - intLoop, 0, 0), B 'Draw boxes With specified color of loop
Next intLoop
End Sub

Sub XFormSilverFade(vForm As Object)
On Error Resume Next
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256

For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(255 - intLoop, 255 - intLoop, 255 - intLoop), B 'Draw boxes With specified color of loop
Next intLoop
End Sub


كل اجراء من الإجراءات السابقة يعطينا تدرجاً معينا كما يلي :
لتدرج من أزرق إلى أسود :


Call XFormBlueFade(Me) 'Makes it Fade Blue

لتدرج من الأصفر إلى الاحمر :

Call XFormFireFade(Me) 'Makes it FIRE!!

لتدرج من أخضر فاتح إلى أخضر غامق :

Call XFormGreenFade(Me) 'Makes it Fade Green

لتدرج من بني إلى أزرق

Call XFormIceFade(Me) 'Makes it Fade ICE


* لعمل 38 خلفية للفورم مشكلة من تداخل اللونين الأصفر والأحمر :


Dim FadeNumPos As Integer
'The First RGB Values
Dim R1 As Integer, G1 As Integer, B1 As Integer
'The Second RGB Values
Dim R2 As Integer, G2 As Integer, B2 As Integer
'These are the RGB values for the curren
' t line
Dim NewRed As Integer, NewGreen As Integer, NewBlue As Integer
'Easier than an array to store a color
Public FadeColors As New Collection
'The Difference
Dim OverAllDiff
'This is the long value for the line col
' or
Dim NewColor
'Gets the colors ready to draw the line
'Then calls on the effect sub to make th
' e gradient

Public Function Gradeffect(Target As Object, style As Integer)
'Clear the object
Target.Cls
'Get the fade count
FadeTimes = FadeColors.Count - 1
'Set the draw width for the line
Target.DrawWidth = 1
'Want auto redraw
Target.AutoRedraw = True
'Don't Modify these. Won't work without
' them
Target.ScaleWidth = 255 'No modifying
Target.ScaleHeight = Target.ScaleWidth 'No modifying
'do each color

For FadeNumPos = 1 To FadeTimes
'Set the Start values
R1 = R2
G1 = G2
B1 = B2
'Set the Start values for the first colo
' r

If FadeNumPos = 1 Then
R1 = FadeColors(1) Mod &H100
G1 = (FadeColors(1) \ &H100) Mod &H100
B1 = (FadeColors(1) \ &H10000) Mod &H100
End If
'Set the End values
R2 = FadeColors(FadeNumPos + 1) Mod &H100
G2 = (FadeColors(FadeNumPos + 1) \ &H100) Mod &H100
B2 = (FadeColors(FadeNumPos + 1) \ &H10000) Mod &H100
'Get the differences
RedDiff = (R1 - R2) / Target.ScaleHeight * FadeTimes
GreenDiff = (G1 - G2) / Target.ScaleHeight * FadeTimes
BlueDiff = (B1 - B2) / Target.ScaleHeight * FadeTimes
'For each line

For OverAllDiff = ((FadeNumPos - 1) * Target.ScaleWidth / FadeTimes) To (FadeNumPos * Target.ScaleHeight / FadeTimes)
'Get the new RGB values
NewRed = R1 - RedDiff * (OverAllDiff - ((FadeNumPos - 1) * Target.ScaleWidth / FadeTimes))
NewGreen = G1 - GreenDiff * (OverAllDiff - ((FadeNumPos - 1) * Target.ScaleWidth / FadeTimes))
NewBlue = B1 - BlueDiff * (OverAllDiff - ((FadeNumPos - 1) * Target.ScaleWidth / FadeTimes))
'Set the color
NewColor = RGB(NewRed, NewGreen, NewBlue)
'Do the effect
Effect Target, style
'Next Line
Next
'Next color
Next
'Done here
End Function
'The effect

Function Effect(Target As Object, kind As Integer)
'There are 36 different gradients. Try t
' hem all

Select Case kind
'Clockwork Down - Cool and New
Case 1
Target.Line (OverAllDiff + 1, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
'Clockwork Left - Cool and new!
Case 2
Target.Line (0, Target.ScaleWidth - OverAllDiff)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
'Clockwork Up - Cool and new
Case 3
Target.Line (OverAllDiff, Target.ScaleHeight - OverAllDiff)-(Target.ScaleHeight, 0), NewColor, BF
'Clockwork Right
Case 4
Target.Line (OverAllDiff, Target.ScaleHeight - OverAllDiff)-(Target.ScaleHeight, OverAllDiff), NewColor, BF
'Right to Left
Case 5
Target.Line (Target.ScaleWidth - OverAllDiff, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - 20), NewColor, BF
'Left to Right
Case 6
Target.Line (OverAllDiff, 0)-(OverAllDiff + 1, Target.ScaleWidth), NewColor, BF
'Fade Out from bottom right
Case 7
Target.Line (0, Target.ScaleHeight - OverAllDiff)-(Target.ScaleWidth, Target.ScaleHeight - (OverAllDiff + 1)), NewColor, BF
Target.Line (Target.ScaleWidth - OverAllDiff, 0)-(Target.ScaleWidth - (OverAllDiff + 1), Target.ScaleHeight), NewColor, BF
'Fade Out from bottom left
Case 8
Target.Line (0, Target.ScaleHeight - OverAllDiff)-(Target.ScaleWidth, Target.ScaleHeight - (OverAllDiff + 1)), NewColor, BF
Target.Line (OverAllDiff, 0)-(OverAllDiff + 1, Target.ScaleHeight), NewColor, BF
'Fade Out from top left
Case 9
Target.Line (0, OverAllDiff)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
Target.Line (OverAllDiff, 0)-(OverAllDiff + 1, Target.ScaleHeight), NewColor, BF
'Fade Out from top right
Case 10
Target.Line (0, OverAllDiff)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
Target.Line (Target.ScaleWidth - OverAllDiff, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - 20), NewColor, BF
'Fade Out from center
Case 11
Target.Line (Int(Target.ScaleWidth / 2 - OverAllDiff / 2), Int(Target.ScaleHeight / 2 - OverAllDiff / 2))-(Target.ScaleWidth / 2 + OverAllDiff / 2, Target.ScaleHeight / 2 + OverAllDiff / 2), NewColor, B
'Fade In from bottom right
Case 12
Target.Line (OverAllDiff, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Fade In from bottom left
Case 13
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
'Fade In from top left
Case 14
Target.Line (0, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Fade In from top right
Case 15
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Boxes 1
Case 16
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
'Boxes 2
Case 17
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (OverAllDiff, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Boxes 3
Case 18
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
Target.Line (OverAllDiff, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Boxes 4
Case 19
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
Target.Line (OverAllDiff, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Boxes 5
Case 20
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (0, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Boxes 6
Case 21
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
Target.Line (0, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Boxes 7
Case 22
Target.Line (OverAllDiff, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
Target.Line (0, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Boxes 8
Case 23
Target.Line (0, 0)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
Target.Line (OverAllDiff, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Top to Bottom
Case 24
Target.Line (0, OverAllDiff)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Bottom to Top
Case 25
Target.Line (0, 0)-(Target.ScaleWidth, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Refraction
Case 26
Target.Line (Target.ScaleWidth - OverAllDiff, OverAllDiff)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight), NewColor, BF
Target.Line (OverAllDiff, Target.ScaleHeight - OverAllDiff)-(Target.ScaleHeight, OverAllDiff), NewColor, BF
'Line through middle
Case 27
Target.Line ((Target.ScaleWidth / 2) - (OverAllDiff / 2), 0)-((Target.ScaleWidth / 2) - (OverAllDiff / 2), Target.ScaleHeight), NewColor, BF
Target.Line ((Target.ScaleWidth / 2) + (OverAllDiff / 2), 0)-((Target.ScaleWidth / 2) + (OverAllDiff / 2), Target.ScaleHeight), NewColor, BF
'Exploded
Case 28
Target.Line (Target.ScaleWidth, OverAllDiff / 2)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
'Pouring
Case 29
Target.Line (Target.ScaleWidth, 0)-(OverAllDiff, Target.ScaleHeight), NewColor, BF
Target.Line (0, Target.ScaleHeight)-(Target.ScaleWidth - OverAllDiff, OverAllDiff), NewColor, BF
'lighthouse
Case 30
Target.Line (Target.ScaleWidth, OverAllDiff / 2)-(OverAllDiff, Target.ScaleHeight - OverAllDiff), NewColor, BF
'Square
Case 31
Target.Line (OverAllDiff / 2, Target.ScaleWidth)-(Target.ScaleWidth, OverAllDiff + 1), NewColor, BF
'Ripped
Case 32
Target.Line ((Target.ScaleHeight * OverAllDiff), OverAllDiff)-(OverAllDiff, Target.ScaleWidth + OverAllDiff), NewColor, BF
'Prism
Case 33
Target.Line (Target.ScaleWidth - OverAllDiff, OverAllDiff)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight), NewColor, BF
Target.Line (OverAllDiff, Target.ScaleHeight - OverAllDiff)-(Target.ScaleHeight - OverAllDiff, 0), NewColor, BF
'Top left to bottom right
Case 34
Target.Line (0, OverAllDiff * 2)-(OverAllDiff * 2, 0), NewColor
'Fade to center from top right and botto
' m left
Case 35
Target.AutoRedraw = False
Target.Line (0, Target.ScaleHeight - OverAllDiff)-(OverAllDiff, Target.ScaleHeight), NewColor
Target.Line (Target.ScaleWidth - OverAllDiff, 0)-(Target.ScaleWidth, OverAllDiff), NewColor
'Fade to center from top left and bottom
' right
Case 36
Target.Line (Target.ScaleWidth, Target.ScaleHeight - OverAllDiff)-(Target.ScaleWidth - OverAllDiff, Target.ScaleHeight), NewColor
Target.Line (0, OverAllDiff)-(OverAllDiff, 0), NewColor
'Wow I'm finally done!
End Select
End Function

Function nolic(Target As Object)
Target.FontSize = 10
Target.ForeColor = vbBlack
Target.CurrentY = 0
Target.CurrentX = 2
Target.Print "Created With a SpiderTek Product"
Target.ForeColor = vbWhite
Target.CurrentY = 0
Target.CurrentX = 3
Target.Print "Created With a SpiderTek Product"
End Function

Private Sub Form_Click()
Static x As Integer
If x = 36 Then x = 0
x = x + 1
Gradeffect Me, x
Me.CurrentY = 200
Me.CurrentX = 3
Me.Print "You are at """ & x & """ of 36 total effects."
nolic Me
End Sub

Private Sub Form_Load()
FadeColors.Add vbBlack
FadeColors.Add vbRed
FadeColors.Add vbYellow
FadeColors.Add vbWhite
Gradeffect Me, 1
End Sub

Private Sub Form_Resize()
Gradeffect Me, 1
End Sub


الرقم ( 1 ) السابق هو الذي يحدد شكل التداخل بتغيير البارميتر المرسل إلى الإجراء ، وهو يتراوح بين 1 و 38 على الشكل التالي كمثال :

1 - 4 مثلث أصفر ، وتدرج من الأحمر إلى الأسود ( الإختلاف في جهة الملثلث )
5 تدرج من الأحمر للأصفر متقطع
6 تدرج من الأبيض للأسود مروراً بالأحمر والأصفر صافي أفقي
7 مثل السابق من زاوية
8 - 10 من زاوية مع تقطع
11 من الوسط ( نصف مقطع ونصف صافي ) .
12 - 16 من زوايا ولكن الفورم مقسوم نصفين من زاويتين
17 ليس مقسوماً من النصف ولكن من جهة واحدة
18 من ثلاث جهاتد

وهكذا انتهينا والحمد لله من كل كودات الالوان

لونو على ذوقكم

انا مشكلتي دائما في اختيار تنسيق الالوان

موفقين

نلتقي في الدرس القادم انشاء الله

حبيبة الشيخ
03-08-2006, 01:01 PM
سلسلة ممتازة لمن ياريت لو تكون في موضوع واحد

شكرا

الحبيب لمين
03-08-2006, 01:18 PM
سلسلة ممتازة لمن ياريت لو تكون في موضوع واحد



شكرا


لقد طلبت ذلك من احد المراقبين

وسوف يقوم بذلك ان شاء الله

شكرا على المرور

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

سر العرب
03-08-2006, 02:36 PM
درس كوووووووول

ممتاز

استمر انا معال على الخط طول

شكرا على هذا المجهود

الحبيب لمين
03-08-2006, 03:13 PM
درس كوووووووول


ممتاز

استمر انا معال على الخط طول


شكرا على هذا المجهود


مشكوووور اخي على المرور على الموضوع

الحبيب لمين
03-08-2006, 08:29 PM
الحمد لله

شكرا للمراقب

wellknownQ8


لقد جمع الموضوع

لكي تعم الفائدة على الجميع

شكر خاص مني له

amawi
03-08-2006, 10:04 PM
ومني لك ايضا اخي

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

الحبيب لمين
04-08-2006, 11:43 AM
ومني لك ايضا اخي
جزاك الله خيرا

بارك الله فيك

تحياتعي لك انت صاحب الفكرة

انت دائما منورنا

بارك الله فيك

الحبيب لمين
04-08-2006, 11:55 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

في بداية الدرس سوف نقوم سريعاً بتصميم قاعدة بيانات ،
وشكل الفورم الرئيسي قبل البدء في تطبيق عناصر الدرس .

في البداية قم بانشاء قاعدة بيانات تحتوي على الحقول التالية :

Nu : من النوع رقم Number ، وهو مثلاً رقم الموظف في الشركة .
Fn : من النوع ( نص Text ) وهو خاص باسم الشخص .
Te : وهو خاص برقم الهاتف ، وهو من النوع رقم Number ، وهذا الحقل أيضاً من المفضل وضعه على هيئة نص Text إلا أننا سنسخدمه على شكل رقم .
ومن ثم قم بانشاء Form وضع فيه الأدوات التالية :
* Text1,Text2,Text3 لعرض معلومات كل شخص .
* Command من 1 إلى 4 ( الأول - السابق - التالي - الأخير ) .
* Command من 5 إلى 8 ( تعديل سجل ، سجل جديد - انهاء بلا حفظ - حفظ ) . مع مراعاة أن يكون التمكين Enabled لكل من زري ( حفظ - بلا حفظ ) هو False .
* Command من 9 إلى 12 ( حذف - خروج - عرض في جدول - عدد السجلات ) .
وقم بانشاء Module ... اضغط على الفورم بزر الماوس الأيمن ، اختر Add ومن ثم Module .

والآن سننتقل لمرحلة التعامل مع قاعدة البيانات .
لبدء التعامل مع DAO لا بد من اضافة المكتبة الخاصة بالداو إلى المشروع الذي قمنا بانشاءه ، لذا من قائمة Project اختر Refrence واختر المكتبة :

Microsoft Dao 3.6 Object Library

أو أي اصدار اقدم ، إلا أن 3.6 هو الاصدار المفضل .
والآن ، تقدم لنا DAO كائنات مختلفة للتعامل مع قواعد البيانات ، فهي توفر لنا Workspace لبدء العمل مع قاعدة البيانات مع الكائن Database والمختص بالتعامل مع ملف قاعدة البيانات ، RecordSet للتعامل مع الجداول ، TableDef للقيام بانشاء جداول وقت التنفيذ - أحد تطبيقاته - .
والآن سنتعرف على Sub main() ؟

يوفر لنا الفيجوال بيسك امكانية بدء المشروع بواسطة هذه الاجراء والذي يتم تعريفه في Module ، ولذلك نقوم في هذا الاجراء بعمل المهام التي نحتاجها قبل البدء في تنفيذ الكود .
من قائمة Project اختر Project Properties ، ومن ثم اختر Sub main من القائمة Startup .
والآن سوف بتعريف عدد من المتغيرات Public وذلك بالشكل التالي :

[شفرة]

Public D1 As Database
Public T1 As Recordset
Public T2 As Recordset
Public folder As String
[/شفرة]

* المتغيرات Public هي أحد أنواع الوصول للمتغيرات حيث يتم مشاهدة المتغيرات على مستوى المشروع .

المتغير الأول خاص بقاعدة البيانات ، بينما متغيرات خاصان بالجداول ، وأخيراً متغير نصي String نخزن فيه مسار البرنامج الحالي .

والآن سوف نقوم ببرمجة الاجراء main ، وسوف يحتوي على المهام التالي مرتبة :
* معرفة مسار البرنامج .

* إذا لم تكن قاعدة البيانات موجودة فإنه يقوم باستدعاء اجراء انشاء قاعدة بيانات جديدة .
* بعد وجود قاعدة البيانات الجديدة أو الموجودة اصلاً ، القيام بازالة خاصية القراءة فقط من على الملف .
* الاتصال بقاعدة البيانات .
* اظهار الفورم الرئيسي للبرنامج .
وهذا هو الكود ، وبين كل مهمة ومهمة أخرى هناك سطر .

[شفرة]
Private Sub main()
folder = App.Path
If Right(folder, 1) <> "\" Then folder = folder & "\"
If Dir(folder & "mm.mdb") = "" Then
CreateMyDatabase folder & "mm.mdb"
End If
SetAttr folder & "mm.mdb", vbNormal
Set D1 = DBEngine.Workspaces(0).OpenDatabase(folder & "mm.mdb")
Form1.Show
End Sub
[/شفرة]

والآن سوف نقوم ببرمجة الاجراء الذي يقوم بعمل قاعدة البيانات في حالة عدم وجودها ، وهو مقسم على قسمين .

- انشاء ملف قاعدة البيانات .
- بعد انشاء الملف ، انشاء الجداول والحقول داخلها .

سنسمي المهمة الأولى CreateMyDatabase وسوف تقوم بالخطوات التالية مرتبة :
* تعريف متغير خاص لقاعدة البيانات .
* انشاء قاعدة البيانات - لاحظ تشابه الطريقة مع طريقة فتح قاعدة البيانات .
* اغلاق قاعدة البيانات .
* استدعاء الاجراء الثاني - انشاء الجداول والحقول داخلها - .
* افراغ المتغيرات Varibles حتى لا تحجز مكاناً من الذاكرة .

مجدداً هذا هو الكود :

[شفرة]
Sub CreateMyDatabase(DB_Name As String)
Dim dbsNew As Database
Set dbsNew = DBEngine.Workspaces(0).CreateDatabase(DB_Name, dbLangGeneral, dbEncrypt)
dbsNew.Close
CreateMyTableS DB_Name

Set dbsNew = Nothing
Set wrkDefault = Nothing
End Sub
[/شفرة]

المهمة الأخيرة في هذا الدرس ، هي انشاء الجداول داخل قاعدة البيانات ، وسوف تمر بالخطوات التالية .
* تعريف TableDef لانشاء جدول من خلاله . وكذلك متغير من نوع ملف قاعدة بيانات .
* فتح قاعدة البيانات التي انشأناها للتو .
* تعريف TableDef على أنه منشأ للجداول داخل قاعدة البيانات ( ربطه بقاعدة البيانات ) .
* البدء في اضافة الحقول .
* اتمام عملية اضافة الجدول .

وهذا هو الكود :

[شفرة]

Sub CreateMyTableS(DBName)
Dim dbsMyData As Database
Dim tdfNew1 As TableDef
Set dbsMyData = OpenDatabase(DBName)
With dbsMyData
Set tdfNew1 = dbsMyData.CreateTableDef("TB")
With tdfNew1
.Fields.Append .CreateField("nu", dbInteger)
.Fields.Append .CreateField("fn", dbText)
.Fields.Append .CreateField("te", dbDouble)
End With
dbsMyData.TableDefs.Append tdfNew1
End With
End Sub
[/شفرة]

في النهاية :
في هذا الدرس تعرفنا سوية على كيفية عمل كائن Dao ،

وكيفية انشاء قاعدة بيانات من خلاله وقت التنفيذ .

في الدرس القادم سوف نبدأ في التعامل مع قاعدة البيانات بإذن الله .
* في الدرس الأخـــر سوف يكون ملف مرفق على جميع العمليات خلال الدروس بإذن الله .

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

سر العرب
04-08-2006, 12:05 PM
السلام عليكم

شكرا اخي الكريم الحبيب لمين

على هذا الشرح

لكن اتمني ان اكون اقل حجم

وبارك الله فيك

ممكن سوال

هل ننتج منظومة في نهاية هذا العمل ؟؟؟

شكرا مرة اخري

amawi
04-08-2006, 12:12 PM
رائع

فعلا رائع

معلومات حلوة جدا

بعضها لم اسمع به قبلا

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

وموضوع قواعد البيانات يهمني لاني لم اتعمق به قبلا

بانتظار الدرس التالي

وفقك الله وجعله في ميزان حسناتك

سلام

الحبيب لمين
04-08-2006, 12:18 PM
السلام عليكم


شكرا اخي الكريم الحبيب لمين

على هذا الشرح

لكن اتمني ان اكون اقل حجم

وبارك الله فيك

ممكن سوال

هل ننتج منظومة في نهاية هذا العمل ؟؟؟


شكرا مرة اخري


شكرا لك اخي الكريم

سر العرب

على هذه الكلمات

نعم سوف تتنج منظومة انشاء الله

وننتج قاعدة بيانات ان شاء الله

فقط تابع معي السلسلة

الي النهااية

شكرا على المرور

الحبيب لمين
04-08-2006, 12:26 PM
رائع

فعلا رائع

معلومات حلوة جدا

بعضها لم اسمع به قبلا

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

وموضوع قواعد البيانات يهمني لاني لم اتعمق به قبلا

بانتظار الدرس التالي

وفقك الله وجعله في ميزان حسناتك

سلام


بارك الله فيك

اخي amawi

علي هذه المشارك القيمة

موضوع قاعدة البيانات سوف اشرحه بالتفصيل انشاء الله

فقط تابع معي السلسلة

شكرا على هذا التشجيع الممتاز

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

حبيبة الشيخ
04-08-2006, 01:23 PM
السلام عليكم

درس ممتاتز

انا متبعة معاك الدرس اول باول


ارجاء من الاخوة المراقبين ترشيح الموضوع

انا حاولت

لكن يطلع لي البلاغ عن مشاركة سيئة

ممكن ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

شكرا اخي الحبيب لمين على هذا الدرس

الحبيب لمين
04-08-2006, 03:48 PM
السلام عليكم


درس ممتاتز

انا متبعة معاك الدرس اول باول


ارجاء من الاخوة المراقبين ترشيح الموضوع

انا حاولت

لكن يطلع لي البلاغ عن مشاركة سيئة

ممكن ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟


شكرا اخي الحبيب لمين على هذا الدرس


لا شكر على واجب

انشاء الله استمر في الدروس

طايما اني في احلا منتدي في العالم

واحلا اعضاء

اشكرك على هذا الكلام الطيب

يا ريت لو يرشحوا هذا الموضوع

لكن انا اترك ذلك لتقييم الاخوة المراقبين

شكرا اختي العزيزة

حبيبة الشيخ

الحبيب لمين
05-08-2006, 11:26 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

في الدرس السابق تعلمنا طرق انشاء وربط قاعدة البيانات .
وسوف نستمر بإذن الله خلال هذا الدرس في اكمال التعامل مع قواعد البيانات Access من خلال DAO
الدرس :
بعد ان قمنا بربط قاعدة البيانات في الدرس السابق ، وصلنا إلى السطر Form1.Show والذي سوف يظهر الفورم الأول باطلاق الحدث Event المسمى ب Load وأحداث أخرى . إلا أن الحدث Load هو انسب الأحداث لكتابة اسطر أوامرنا بالنسبة لهذا التطبيق .
في هذا الحدث سوف نقوم بـ :
* ربط الجدول الأول بقاعدة البيانات .
* التأكد من عدد السجلات الموجودة ، فإذا كان هناك سجلات فإننا سنطلب الإجراء ShowData ، وإلا فإننا سوف نطلب الاجراء ShowNoData :

Private Sub Form_Load()
Set T1 = D1.OpenRecordset("tb", dbOpenTable)
If T1.RecordCount < 1 Then
Call shownodata
Else
Call showdata
End If
End Sub

والآن سوف نقوم بكتابة اسطر كل من حدثي
، ShowData ، و ShowNoData ، فكل ما في الإجراء Sub الأول هو
قراءة القيم الحالية للسجلات ووضعها في أماكنها بالشكل التالي

Private Sub showdata()
Text1.Text = T1!nu
Text2.Text = T1!Fn
Text3.Text = T1!Te
End Sub

فيما سيضع الإجراء الثاني قيم فارغة "" في الأماكن الخاصة بالعرض .

Private Sub shownodata()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub

أوامر التنقل بين السجلات .تشترك جميع هذه الأوامر الأربعة في صيغة عامة ، فأولاً التأكد من وجود سجلات ،
ومن ثم التأكد من أنني لست في حالة تعديل أو اضافة وذلك من خلال معرفة حالة زر أمر ( حفظ )
ومن ثم التأكد من أنني لست في البداية ( لأمر السابق ) وأنني لست في النهاية ( لأمر التالي ) ،
ومن ثم تنفيذ الأمر ( MoveNext , MoveLast , MovePrevious , MoveFirst )
وأخيراً استدعاء ShowData .
وهذه هي الأوامر للاجراءات الأربعة :



Private Sub Command1_Click()
If T1.RecordCount < 1 Then Exit Sub
If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
T1.MoveFirst
Command7.Enabled = False
Command8.Enabled = False
Call showdata
End Sub

Private Sub Command2_Click()
If T1.RecordCount < 1 Then Exit Sub
If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
T1.MovePrevious
If T1.BOF Then T1.MoveFirst
Command7.Enabled = False
Command8.Enabled = False
Call showdata
End Sub
Private Sub Command3_Click()
If T1.RecordCount < 1 Then Exit Sub
If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
T1.MoveNext
If T1.EOF Then T1.MoveLast
Command7.Enabled = False
Command8.Enabled = False
Call showdata
End Sub
Private Sub Command4_Click()
If T1.RecordCount < 1 Then Exit Sub
If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
T1.MoveLast
Command7.Enabled = False
Command8.Enabled = False
Call showdata
End Sub

أوامر الإنشاء ، والتعديل ، وحفظ معلومات السجلات ، أو انهاء عملية التعديل
والاضافة بلا حفظ .
سوف نقوم في أمر انشاء سجل جديد بالتأكد أولاً أننا لسنا في حالة اضافة أو تعديل ،
ومن ثم نقوم باستخدام أمر Addnew لفتح قاعدة البيانات للاستقبال ،
ومن ثم تمكين كل من زري ( حفظ - انهاء بلا حفظ ) ومن ثم افراغ الخانات
للمستخدم لادخال البيانات المطلوبة :


If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
T1.AddNew
Command7.Enabled = True
Command8.Enabled = True

Call shownodata

وبالنسبة لأمر التعديل فسوف يزيد نقطة واحدة فقط ، وهي التأكد من وجود سجلات
أصلاً لتعديلها ، وأننا لن نقوم بافراغ مربعات النص TextBoxes ،
مع مراعاة استخدام الأمر Edit بدلاً من AddNew :


If T1.RecordCount < 1 Then Exit Sub
If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
T1.Edit
Command7.Enabled = True
Command8.Enabled = True

في الحفظ ، سوف نستخدم
الأمر Update لتحديث التغييرات سواء كانت بالاضافة والتعديل ، مع الغاء تمكين Enabled لزري الحفظ - انهاء بلا حفظ .
وأما في انهاء بلا حفظ فسوف نستخدم الأمر
.CancelUpdate
هناك اختلاف آخر وهو أننا نستخدم الدالة Val مع القيم الرقمية للتأكد
.من أن المستخدم قام بادخال أرقام وليس حروف مثلاً
:وهذه هي أوامر هذين الاجراءين


Private Sub Command7_Click()
T1.CancelUpdate
Call showdata
Command7.Enabled = False
Command8.Enabled = False
End Sub
Private Sub Command8_Click()
T1!nu = Val(Text1.Text)
T1!Fn = Text2.Text
T1!Te = Val(Text3.Text)
T1.Update
Command7.Enabled = False
Command8.Enabled = False
End Sub

*** ملاحظة هامة : من الخطأ فتح قاعدة البيانات للاضافة AddNew أو للتعديل Edit وتنفيذ أمر الحفظ Update في حدث آخر مما يجعل قاعدة البيانات في حالة انتظار تطول أو تقصر ، مما قد يتسبب بمشاكل في حالة انقطاع التيار الكهربي أو اعادة تشغيل الجهاز على سبيل المثال ، والصحيح أن تتم الاضافة والحفظ وكذلك مع التعديل في اجراء واحد ، وإنما ما قمت به هو للتسهيل فقط .
نقطة أخرى ، وهو أن الغالب أن باقي الأزرار تتعطل Enabled = False ما عدا زري الحفظ حتى تنتهي عملية الاضافة .

عرض عدد السجلات .
نستخدم لهذا الغرض الدالة RecordCount والتي تعود بعدد السجلات الحالية .
وذلك بالشكل التالي :


nom = T1.RecordCount
MsgBox "عدد السجلات الحالي هو : " & nom, vbInformation, "مثال"

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


Private Sub Command9_Click()
If T1.RecordCount = 0 Then Exit Sub
If Command8.Enabled = True Then
s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
End If
If s = vbNo Then Exit Sub
Dim ase
aas = 1 + 16 + 256
ase = MsgBox("هل تريد بالتأكيد حذف السجل الحالي ؟؟؟", aas + 524288 + 1048576, "مثال")
If ase = vbNo Then Exit Sub

T1.Delete
If T1.RecordCount <> 0 Then
T1.MoveNext
If T1.EOF Then T1.MoveLast
Call showdata
Else
Call shownodata
End If
End Sub

في نهاية الدرس :
في هذا الدرس تعرفنا سوية على كيفية التعامل واجراء عمليات قواعد البيانات المختلفة
من خلال DAO .
في الدرس القادم سوف نتعرف بإذن الله على كيفية التعامل مع الجداول من نوع MSFlexGrid .
* في الدرس الأخـــر سوف يكون ملف مرفق على جميع العمليات خلال الدروس بإذن الله .
والسلام عليكم ورحمة الله وبركاته .

amawi
05-08-2006, 12:42 PM
رائع فعلا رائع

لم سعني الوقت لقرائة الدرس كاملا

لكن حين ارجع سأقرأه باذن الله

شكرا جزيلا لك

بالتوفيق

الحبيب لمين
05-08-2006, 01:51 PM
رائع فعلا رائع

لم سعني الوقت لقرائة الدرس كاملا

لكن حين ارجع سأقرأه باذن الله

شكرا جزيلا لك

بالتوفيق


شكرا على المرور

انا مستيك لما تقرا الموضوع

سر العرب
05-08-2006, 02:02 PM
السلام عليكم

بارك الله فيك على هذا الموضوع


درس مفيد افادك الله

الحبيب لمين
05-08-2006, 02:29 PM
السلام عليكم


بارك الله فيك على هذا الموضوع



درس مفيد افادك الله


شكرا

على هذا الرد الجميل

يا اخي سر العرب

لتمني ان تستفيد من الموضوع

حبيبة الشيخ
05-08-2006, 03:14 PM
السلام عليكم

انا اسفة على التاخر

لكن درس رائع

انا الان اطبقه على الجهاز عندي

بارك الله فيك

الحبيب لمين
05-08-2006, 03:17 PM
وعليكم السلام

شكرا جزيلا على هذا الرد

اتمني انك تطبقيه زين

شكرا على المرور

الحبيب لمين
08-08-2006, 11:58 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

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

الدرس :
في هذا الدرس سوف نتعامل مع أحد أشهر أنواع الجداول لعرض البيانات وهو MSFlexGrid .
للوصول اليه اضغط Ctrl+T واختر (Microsoft FlexGrid Control 6.0 SP3)
والآن إلى أهم خصائص properties وطرق methods هذه الأداة :

Clear : مسح كامل بيانات الجدول .

Cols : عدد الأعمدة الاجمالي في الجدول ، في مثالنا هو 3 ( الرقم - الاسم - الهاتف ) .
Rows : عدد الصفوف ، وهو في مثالنا ( عدد السجلات ) + 1 الخاص بالصف الرئيسي .
Fixed Col : عدد الاعمدة الثابته ، وتعرض هذه الخاصية الأعمدة بصورة دائمة مهما كان عرض الجدول .
Fixed Rows : نفس الخاصية السابقة ولكن بالنسبة للصفوف .
Row : الصف الحالي ، وذلك لتحديد الطرف الأول للخلية Cell .
Col : العمود الحالي ، وذلك لتحديد الطرف الثاني للخلية Cell .
ومن تقاطع قيمتيهما نستطيع اجراء أغلب العمليات الرئيسية .
Text : النص ، وهو النص المعروض في الخلية التي يقف عندها المؤشر ( تقاطع خاصيتي Row ، Col ) .
Text matrix(r,c) : لوضع - قراءة نص في مكان غير المكان الذي يقف عنده مؤشر ( Col , row ) نستخدم هذه الطريقة ، ونرسل للدالة صف وعمود الخلية Cell المطلوبة .
Col Aligment(c) : محاذاة العمود الذي يتم ارسال قيمته .
Col Width(c) : عرض العمود المحدد بقيمة c .
Row Height(r) ارتفاع الصف المحدد بقيمة r .
Back Color : لون خلفية الجدول .
Back Color Fixed : لون خلفية العناصر الثابتة .
Cell Back Color و Cell Fore Color : لون خلفية الخلية Cell والخط بداخلها على الترتيب .
Sort : تحدد طريقة ترتيب بيانات العمود الحالي ، وتأخذ قيم من 0 وحتى 9 .
0 : بدون ترتيب .
1،2 ترتيب تصاعدي وتنازلي على الترتيب .
3و4 : ترتيب تصاعدي وتنازلي بدلالة الارقام .
5و6 : ترتيب تصاعدي وتنازلي بالحروف دون النظر إلى حالة الحرف A=a .
7و8 : ترتيب تصاعدي وتنازلي بالحروف مع النظر إلى حالة الحرف A<>a .
9 ترتيب مخصص .
أول خطوة هي عمل اتصال بين قاعدة البيانات المؤقتة T2 والجدول :

Set T2 = D1.OpenRecordset("tb", dbOpenTable)





سوف نقوم الآن بعمل اجراء باسم fill_Table مهمته رسم الجدول ووضع بيانات T2 في داخله .


Private Sub fill_Table()
End Sub

ونستدعيه من خلال زر الأمر السابق بكتابة fill_Table .
في هذا الاجراء ومهمتنا الأولى قبل ادخال البيانات هي تصميم الشكل العام للجدول ، فإذا اردنا الكتابة في مربع 0 و 0 مثلاً ، فإننا نقوم بالتالي :





MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "القيمة"



وكذلك مع أي صف في أي عمود ، بشرط أن يكون هذا العمود موجوداً أصلاً .
في بداية تشكيل الجدول ، فبعد مسح الجدول بالكامل ، سوف نجعل عدد الصفوف = 1 وهو صف العنوان فقط ، وعدد الأعمدة 3 ( الرقم - الاسم - الهاتف ) :




MSFlexGrid1.Clear
MSFlexGrid1.Cols = 3
MSFlexGrid1.Rows = 1



ومن ثم ننتقل بين الأعمدة في الصف الأول لوضع رؤوس الجداول :




MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "الرقم"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "الاسم"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "الهاتف"



والآن جاء دور العمل مع قاعدة البيانات ، لا تنس أننا سوف نتعامل الآن مع T2 لأننا سوف نتنقل بينها دون أن نؤثر على العرض الرئيسي للبرنامج .
الخطوة الأولى هي معرفة عدد السجلات ، وهو عدد الصفوف في الجدول + 1 ( من أجل صف العنوان ) .




If T2.RecordCount < 1 Then Exit Sub
T2.MoveLast
T2.MoveFirst
N = T2.RecordCount

MSFlexGrid1.Rows = N + 1


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



For i = 1 To N
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = T2!nu
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = T2!Fn
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = T2!Te
T2.MoveNext
Next i


أخيراً سوف نقوم بتعديل عرض العمودين الأول والثاني
ليستطيعا استيعاب مزيد من البيانات :


MSFlexGrid1.ColWidth(0) = 500
MSFlexGrid1.ColWidth(1) = 1500

تابع للجدول MSFlexGrid .
بالنسبة لأحداث Events الجدول MSFlexGrid فأغلبها مثل الأدوات العادية
مثل الحدث Click و DblClick ، ولعرض محتوى الخلية عند الضغط عليها مرتين
بالماوس نكتب :



Private Sub MSFlexGrid1_DblClick()
MsgBox MSFlexGrid1.Text
End Sub


وهناك بعض الأحداث الجديدة مثل EnterCell ، وينطلق هذا الحدث في كل مرة
تضبط فيها خاصيتي Col , Row ليشكل تقاطعهما خلية جديدة سواء أكان ذلك
من خلال الماس أو من خلال أوامر الكود ، ومقابلة الحدث LeaveCell وهو يحدث
عندما تترك خلية .
أحداث أخرى مثل GetFocus و lostFocus تنطلق عندما يصل التركيز ( التحديد )
إلى الاداة أي بمعنى ان تصبح الأداة نشطة سواء من خلال استخدام مفتاح Tap
أو من خلال اختيار الأداة بالماوس . أيضاً حدث RowColChange عند تغيير الصف
أو العمود ، و SelChange عند تغيير التحديد . Scroll عند استخدام ال Scroll للتنقل
بين صفوف الجدول أو اعمدته .
هناك أحداث Drag وهي مشتركة بين اغلب الادوات وهي الخاصة بعمليات
سحب الأدوات أو السحب عليها ، أحداث الماوس Mouse أيضاً مشتركة وهي
الخاصة بمرور الماوس أو الضغط - الرفع بأزراره المختلفة .
مثال : كيفية تلوين صف بكامله في الجدول :
لعمل ذلك نستخدم الخاصية Cellbackcolor ،
فمثلاً لو اردنا تحديد الصف رقم 2 باللون الأحمر ، فإننا نكتب الأمر التالي :



MSFlexGrid1.Row = 2
For i = 0 To 2
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = QBColor(12)
Next i


وفي زر الامر الخاص بالتلوين ، سوف نقوم بقراءة رقم الصف المطلوب
من خلال Input Box ، ونتأكد من أن الرقم لا يتجاوز الحد الأقصى من الصفوف ،
ومن ثم نكتب الأوامر السابقة ، وبذلك يصبح الكود الاجمالي بالشكل التالي :



Dim x As Integer
x = Val(InputBox("ادخل رقماً يتراوح بين 0 و " & MSFlexGrid1.Rows - 1, "تحديد باللون الأحمر"))
If x < 0 Or x > (MSFlexGrid1.Rows - 1) Then
MsgBox "قيمة صف خاطئ !!!"
Exit Sub
End If
MSFlexGrid1.Row = x
For i = 0 To 2
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = QBColor(12)
Next i


وبنفس الطريقة إذا اردنا تحديد عمود ، حيث سنتقل بين الصفوف المختلفة .

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

سر العرب
08-08-2006, 12:07 PM
بارك الله فيك اخي الحبيب لمين على هذا الجهر الرائع والمشرف

اتمني من الاخوة الكرام المراقبين تثبيت هذا الموضوع

انا من الحاضرين المتابعين لهذه السلسلة

القيمة

الحبيب لمين
08-08-2006, 12:15 PM
بارك الله فيك اخي الحبيب لمين على هذا الجهر الرائع والمشرف


اتمني من الاخوة الكرام المراقبين تثبيت هذا الموضوع

انا من الحاضرين المتابعين لهذه السلسلة


القيمة


اهلا اخي سر العرب

اشكرك على هذه المشاركة

انشاء الله يكون فيه المزيد من الدروس

الاكثر افادة

حبيبة الشيخ
08-08-2006, 12:17 PM
فعلا درس ممتاز

جعله الله في ميزان حسناتك

وانا ايضا مع سر العرب في رايه

اتمني ان يتم تثبيت الموضوع

شكرا على الشرح المميز هذا

الحبيب لمين
08-08-2006, 01:25 PM
فعلا درس ممتاز


جعله الله في ميزان حسناتك

وانا ايضا مع سر العرب في رايه

اتمني ان يتم تثبيت الموضوع


شكرا على الشرح المميز هذا



بارك الله فيك على هذا الكلام

اتمني ان تحافظي على نشاطك

ونتتابعى بقية الدروس

انشاء الله

الحبيب لمين
09-08-2006, 11:56 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif




http://www.moudir.com/vb/images/smilies/salam.gif




في الدروس السابقة تعلمنا كيفية فتح قاعدة البيانات والتعامل معها ، العرض في الجدول MSFlexGrid ، والآن سوف نقوم بالبحث من خلال احدى جمل الاستعلام ،
من المفضل مراجعة دروس TSQL في الموسوعة إذا لم تكن قد تعرفت على جملة Select
من جمل الاستعلام قبل البدء بقراءة هذا الدرس .




تذكير سريع بجملة Select .



من أشهر جمل الاستعلامات هي الجملة التي تستخدم الكلمة المفتاحية Select . وصيغتها القياسية هي :





select field(s) form table(s) where conditon




حيث أن Fields تعني الحقول التي تظهر نتيجتها في البحث ،
وقد تكون اسماء حقول مثل name,tele أو قد تكون * لعرض الكل ،
وقد تكون نواتج عملية حسابية مثل( Maxnumber) أو Count(*) .
أما Tables فهي اسماء الجداول ، والشروط فهي مثل name='ahmed' و age>5 ، مع استخدام معاملات اخرى مثل between و Like ، وبارميترات Parmeters مختلفة مثل ? و - وغيرها .
وأخيراً اذكرك بأنه عند التعامل مع النصوص فإنه لا بد من وضع ''
حول الاسم ، ومع التواريخ يتم وضع ## حول التاريخ وهما النوعان
الأكثر استخداماً ، أما الارقام فلا تحتاج إلى اي شيء .


والآن إلى بداية الدرس .
سوف نضيف أولاً الجزء الخاص بشاشة البحث ، سوف يكون بالشكل التالي :



البحث عن الأشخاص الذين لديهم ( ComboBox1 ) ( ComboBox2 ) ( searchText )


إذا لم تظهر الجملة السابقة مرتبة فهذا راجع إلى اتجاه الكتابة .


حيث سيحتوي ComboBox1 على ( الرقم - الاسم - الهاتف ) أما الثاني فيحتوي على ( = - > - < ) ، وتوضع كلمة البحث في ال searchText .
ومن ثم يوضع زر أمر بعرض نتائج البحث في الجدول .
في حدث Form_Load سوف نضيف العناصر المطلوبة للقائمتين :



Combo1.AddItem "الرقم"



Combo1.AddItem "الاسم"

Combo1.AddItem "الهاتف"

Combo1.ListIndex = 0
Combo2.AddItem "="
Combo2.AddItem ">"
Combo2.AddItem "<"
Combo2.ListIndex = 0








ولا بد من التحكم في القائمة الثانية ، حيث لا يمكن التحكم بها إلا عند اختيار الرقم ، أما الاسم والهاتف فلا يمكن البحث ب < أو > في مثالنا هذا - يمكن استخدامها ولكن ليس في مثل هذا المثال - . ويتم ذلك من خلال الحدث Click للاداة Combo1 :





Private Sub Combo1_Click()
If Combo1.ListIndex <> 0 Then
Combo2.Enabled = False
Else
Combo2.Enabled = True
End If
End Sub



في بداية زر الامر سوف نتأكد من أنه ادخل كلمة للبحث عنها :




If searchText.Text = "" Then
MsgBox "نص البحث فارغ"
Exit Sub
End If



لاحقاً سوف نشكل جملة الاستعلام ، وذلك بالشكل التالي :




Dim fldname As String
Dim op As String
Dim lst As String
If Combo1.ListIndex = 0 Then
fldname = "nu"
op = Combo2.Text
lst = ""
ElseIf Combo1.ListIndex = 1 Then
fldname = "fn"
op = "='"
lst = "'"
Else
fldname = "te"
op = "="
lst = ""
End If
Dim sql As String
sql = "select * from tb where " & fldname & op & searchText.Text & lst



حيث نخزن في fldname الحقل الذي نبحث عنه ، op معامل البحث ، واخيراً lst تحدد إذا ما كنا سوف نضيف ' من أجل النصوص .
والآن جاء دور تنفيذ جملة الاستعلام على قاعدة البيانات D1 ومن خلال الجدول الاضافي T2 :




Set T2 = D1.OpenRecordset(sql, dbOpenDynaset)
وأخيراً سوف نقوم بملء الجدول من خلال استدعاء Fill_Table .
fill_Table



خاتمة :



بنهاية هذا الدرس نكون قد تعلمنا إحدى جمل الاستعلام وهي جملة Select ،

لا زلت افضل ان تتم مراجعة دروس الاستعلام في الموسوعة .
وبقي أن اذكرك بإن جمل الاستعلام لا تعمل جميعها على هذه الطريقة من الاتصال بقاعدة البيانات
بنفس الطريقة ، جرب مثلاً استخدام جمل مثل جمل Delete وستظهر لك رسالة خطأ .
Invalid Operation


في هذا السلسلة البسيطة من الدروس تعرفنا على اساسيات التعامل مع Dao
من خلال فيجوال بيسك Visual Basic مع قواعد بيانات Access .


وهذا هو ملف العمل ، الحجم التقريبي = 7 kb على هذا الرابط (http://www.c4arab.com/images/lessons/programming/visualbasic/daoexample.zip)
أسأل الله أن أكون قد وفقت في هذا الشرح البسيط ، فما كان فيه من صواب فمن الله ،

وما كان من خطأ فمن نفسي والشيطان ، والله الهادي إلى سواء السبيل .



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

سر العرب
09-08-2006, 04:25 PM
السلام عليكم

بارك الله فيك اخوي الحبيب لمين

على هذا الدرس

وجاري تحميل الملفات

شكرا جزيلا

الحبيب لمين
09-08-2006, 05:35 PM
شكرا اخي سر العرب

بس انا ابي اسئلة

ليش ما تسالوني؟؟؟؟؟؟؟

حبيبة الشيخ
09-08-2006, 11:28 PM
السلام عليكم


شكرا الحبيب لمين

على هذا المجهودك الرائع

الحبيب لمين
10-08-2006, 12:55 PM
السلام عليكم



شكرا الحبيب لمين

على هذا المجهودك الرائع


السلام عليكم

شكرا على ردك الجميل والمشجع

سر العرب
10-08-2006, 06:05 PM
السلام عليكم

اخي الحبيب لمين

اين الدرس ؟؟؟؟؟؟؟؟

اتمني ان السلسلة ما تكون انتهت

اتمني ان تجيبني في اسرع وقت

اخوك سر العرب

amawi
10-08-2006, 11:55 PM
السلام عليكم

مرحبا اخي

فعلا اسف لتأخري

ولكن شغلت بعض الوقت وظروف الدنيا كما تعرف

الآن اخي

اود ان اعبر لك عن مدى امتناني الشديد لك

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

لكن اعذرني اود سؤالك بما هو خارج عن هذا

انا الآن بدأت ببرنامج او فكرته على الأقل تعتمد على قواعد البيانات بشكل كبير

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

ولنفرض ان هذا المسار هو

C:\Program Files

المهم انا اود معرفة الكود الذي يقوم باستخلاص الملفات الموجودة في هذا المسار ووضعها في جدول في قاعدة البيانات او وضعها في list

2- اريد طريقة استخلاص ملفات الورد على فرض ان المسار هو نفسه وطرقة وضع اسماء هذه الملفات في قاعدة بيانات او list

اعتذر جدا لانني خرجت عن الدرس

لكن قلت أسألك يمكن تعرف

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


بالتوفيق

واسفين على الازعاج والتأخير :)

الحبيب لمين
11-08-2006, 12:29 PM
السلام عليكم


اخي الحبيب لمين

اين الدرس ؟؟؟؟؟؟؟؟

اتمني ان السلسلة ما تكون انتهت

اتمني ان تجيبني في اسرع وقت


اخوك سر العرب


السلام عليكم

اخي العزيز سر العرب

اشكرك على حرصك على الدروس

وانا بجد اسف اسف اسف اسف على درس امس

اقد اسفي لك والي كل الاعضاء المتابعين للدروس

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

سوف اعوض الدرس اليوم انشاء الله

الحبيب لمين
11-08-2006, 12:35 PM
السلام عليكم

مرحبا اخي

فعلا اسف لتأخري

ولكن شغلت بعض الوقت وظروف الدنيا كما تعرف

الآن اخي

اود ان اعبر لك عن مدى امتناني الشديد لك

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

لكن اعذرني اود سؤالك بما هو خارج عن هذا

انا الآن بدأت ببرنامج او فكرته على الأقل تعتمد على قواعد البيانات بشكل كبير

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

ولنفرض ان هذا المسار هو

C:\Program Files

المهم انا اود معرفة الكود الذي يقوم باستخلاص الملفات الموجودة في هذا المسار ووضعها في جدول في قاعدة البيانات او وضعها في list

2- اريد طريقة استخلاص ملفات الورد على فرض ان المسار هو نفسه وطرقة وضع اسماء هذه الملفات في قاعدة بيانات او list

اعتذر جدا لانني خرجت عن الدرس

لكن قلت أسألك يمكن تعرف

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


بالتوفيق

واسفين على الازعاج والتأخير :)

السلام عليكم

اخي الكريم amawi

انا اشكرك على سوالك

لا اتمني ان ردك ما ينحذف من الوضوع

مادام في الفيجوال بيزك لا مشكلة

لكن سوالك يحتاج لشرح طويل

يوف احاول ان اختصره في اقل ما يمكن

وارد عليك انشاء الله اليوم

وانا بجد احب اني اقول لك ان كل حرف تكتبهلى يكون

وسام شرف لى

انتضر الرد اليوم انشاء الله بعد الدرس

شكرا على هذا السؤال الي عن جد فرحني

انا كنت منتظره :D

الحبيب لمين
12-08-2006, 11:04 AM
السلام عليكم


انا اسف على التاخر


لكن انا مشغول هذه الايام بسبب عملي


واليكم درس اليوم



كيفية إدراج نص في Microsoft Word عن طريق الفيجوال بيسك

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

1- فتح برنامج فيجوال بيسك واختيار Standard Exe .
2- احضار المكتبة الخاصة بتطبيق مايكروسوفت ورد : من قائمة project &szlig; نختار reference &szlig; ونبحث عن Microsoft word 10.0 object library &szlig; ثم نضغط OK.
3- سنضيف Command لشاشة البرنامج وقمت بتسميته Cmdok ستتم هنا عمليات البرمجة الرئيسية وبداية لا تحتاج الى أكثر من ذلك اذا كان برنامجك بسيط ويعمل على عملية ادراج النصوص فقط.
4- في القسم العام للبرنامج سنعرف المتغير wrdapp من نوع Word.Application عن طريق الأمر التالي :



Dim wrdapp As Word.Application

وذلك للاعلان عن استخدام تطبيق مايكروسوفت ورد.
5- سنقوم بإضافة الكود التالي عن الحدث Clikc للزر الذي قمنا بإنشائه سابقا ً :

Private Sub Cmdok_Click()




1- Set wrdapp = New Word.Application
2- With wrdapp
3- Documents.Add
4.ActiveDocument.Content.Font.Bold = True
5. ActiveDocument.Paragraphs.Alignment = wdAlignParagraphLeft
6. ActiveDocument.Content.Font.Color = wdColorRose
7. ActiveDocument.Content.Font.Italic = True
8. ActiveDocument.Content.Font.Name = "Monotype Corsiva"
9. ActiveDocument.Content.Font.Size = 22
10. ActiveDocument.Content.Text = "Hi This How Insert Text In Microsoft Word" & Chr(13)
11. ActiveDocument.Content.InsertAfter Text:="GOOD BYE"
12 .Visible = True
End With
End Sub





شرح الكود


·الجملة رقم (1) وهي مهمة في عملية اسناد مرجع مايكروسوفت ورد للمتغير wrdapp وتم استخدام new ليقوم بفتح برنامج مايكروسوفت ورد.


·الجملة رقم (2) وهي جملة With الشائعة الإستخدام لتسهيل عمليات البرمجة وعدم تكرار كتابة wrdapp.


·الجملة رقم (3) لإضافة مستند جديد لبرنامج مايكروسوفت ورد .


·الجمل من (4) وحتى (5) وهي خصائص النص المراد ادراجة, وتستخدم ActiveDocument لاحداث التغيرات المطلوبة على المستند الفعال حالياً.


·جملة (4) لإعطاء النمط العريض للنص المدرج .


·جملة (5) لجعل محاذاة النص جهة اليسار.


·جملة (6) تغير لون الخط للون الوردي.


·جملة (7) النمط المائل.


·جملة (8) اسناد نوع الخط .


·جملة (9) حجم الخط . م


·ملاحظة : للإحتفاظ بنفس الاعدادت (نوع الخط , حجمه , لونه , نمطه ) الأصلية للنص يتم الإستغناء عن واحد او كل الخصائص السابقة .





·الجملة رقم (10) وهي الجملة التي يتم من خلالها إدراج النص المطلوب عن طريق الخاصية text التابعة لمحتوى المستند. وتسند للخاصية text متغير أو قيمة من نوع string.





·الجملة رقم (11) ادراج نص جديد ويلاحظ هنا استخدام الخاصية InsertAfter عوضا عن text وتم ذلك لإعلام البرنامج بالإحتفاظ بالجملة السابقة وادراج الجملة الجديدة بعدها .





·الجملة (12) لاظهار مايكروسوفت ورد ولن تتم رؤية عملية الادراج من غير هذة الجملة .





· الجملة (13) اغلاق الجملة with.





أتمنى أن يكون الدرس مفيد وسهل وواضح للجميع

سر العرب
13-08-2006, 11:35 AM
السلام عليكم

شكرا الحبيب لمين

على هذا الدرس

اتمني ان تكمل السلسلة معانا

ولا تقطع الدروس اذا كان فيه عندك وقت

شكرا مرة اخري على هذا المجهوود

amawi
14-08-2006, 12:01 AM
مشكور اخوي درس جميل جدا

الله يوفقك

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


بالتوفيق

الحبيب لمين
14-08-2006, 11:28 AM
السلام عليكم


شكرا الحبيب لمين

على هذا الدرس

اتمني ان تكمل السلسلة معانا

ولا تقطع الدروس اذا كان فيه عندك وقت


شكرا مرة اخري على هذا المجهوود


شكرا اخي سر العرب على هذا الرد الجميل

انشاء الله راح استمر

وما راح اوقف الدروس

وانا اسف على تاخر الدروس

وذلك لأسباب خارجة عن ارادتي

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

الحبيب لمين
14-08-2006, 11:35 AM
مشكور اخوي درس جميل جدا

الله يوفقك

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


بالتوفيق

شكرا اخي amawi

على هذا الرد الجميل

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

الدروس راح تستمر انشاء الله

برغم قلة الوقت

لكن انتم تستاهلوا

والله

الحبيب لمين
14-08-2006, 12:34 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif
http://www.moudir.com/vb/images/smilies/salam.gif

كيف تعمل مجلد الـSETUP لبرنامج فيجوال بيسك

درس اليوم شوية طويل وصعب
بس اتمني انكم تفهموا انا حاولة اني اسهله

يمكن عمل مجلد الـSetup الذي يحول برنامجك إلى صيغة ملف تنفيذي exe.
عن طريق أداة جاهزة موجودة مع برنامج الفجوال بيسك..
في هذا الدرس سوف نشرح بالتفصيل كيفية استخدام الأداة
Package and Deployment Wizard التي تسهل عليك عمل مجلد
الـSETUP لبرنامجك وبالتالي إمكانية تحميل البرنامج على الأجهزة
كما هو الحال في البرامج التجارية التي نقوم بشرائها وتحميلها على أجهزتنا.

خطوات العمل:
ملاحظة: تستطيع تحميل البرنامج من هذه الوصلة:

الوصلة (http://www.c4arab.com/images/lessons/programming/visualbasic/vb.zip)



لتبدأ في العمل خطوة خطوة.
أولا: بعد الانتهاء من البرنامج قم بحفظ مشروعك كاملا وذلك باختيار save project as من القائمة file
كما بالشكل التالي:
http://www.c4arab.com/images/lessons/programming/visualbasic/p1.jpg

وعملية الحفظ تتم على خطوتين:
الأولى: حفظ النماذج (Forms) الموجودة داخل برنامج. ، برنامجي هنا يحتوي على فورم واحد قمت بتسميته بالاسم formvb
الثانية: حفظ المشروع (Project) كاملا ، وليكن بالاسم projectvb

ثانيا: من قائمة File اختر Make project.exe
سوف تظهر لك نافذة كما بالشكل التالي:

http://www.c4arab.com/images/lessons/programming/visualbasic/p2.jpg
اكتب اسم الملف (File Name) (وليكن نفس اسم المشروع للسهولة projectvb) في مربع النص المعد لذلك ثم انقر OK

ثالثا:
1- من القائمة Add-In اختر Add-In manager
http://www.c4arab.com/images/lessons/programming/visualbasic/p3.jpg
2- يفتح لك نافذة اختر منها Package and Deployment Wizard بالنقر عليها مرتين ثم انقر على OK
http://www.c4arab.com/images/lessons/programming/visualbasic/p4.jpg
3- بعد ذلك اعد فتح القائمة Add_in فتجد أن Package and Deployment Wizard أصبحت من ضمن عناصر القائمة فقم باختياره.
http://www.c4arab.com/images/lessons/programming/visualbasic/p5.jpg
وسوف تظهر لك رسالة مفادها: أن هذه الأداة لن تعمل جيدا إذا لم تكن قد قمت بحفظ مشروعك كاملا، هل تريد حفظ مشروعك قبل الإكمال؟
ونحن قمنا في البداية بحفظ المشروع فاختر لا، أو نعم إذا أحببت أن تتأكد من أنك حفظت المشروع بشكل جيد.

4- بعد ذلك سوف تفتح لك أول نافذة في معالج الـPackage and Deployment ..
http://www.c4arab.com/images/lessons/programming/visualbasic/p6.jpg

طبعا أنت الآن تعمل داخل المشروع الذي تود عمل مجلد الـSetup له، فمن المؤكد إن امتداد المشروع الذي سيظهر لك داخل هذه النافذة سيكون لمشروعك الذي تود عمل مجلد setup له.
وهو في مثالنا هذا:
C:Program FilesMicrosoft Visual StudioVB98Projectvb.vbp
إذا لم يكون كذلك فقم بكتابة مسار الملف كاملا.

5- بعد ذلك اضغط على الأيقونة Package

6- تظهر لك رسالة مفادها: أنه يوجد ملف مصدري Source File أحدث من الملف الذي قمنا بعمله في الخطوة ثانيا.. أجب بـyes إذا كنت ترغب بإعادة عملية الترجمة recompile للملف الجديد أو No إذا كنت تريد استخدام الملف الموجود.

7- يتم بعد ذلك نقل الملفات.. ثم يظهر لك في النافذة التالية نوع الحزمة التي تريدها. اختر Standard Setup Package.. ثم next للمتابعة..
http://www.c4arab.com/images/lessons/programming/visualbasic/p7.jpg

8- يطلب منك تحديد مجلد folder يوضع فيه البرنامج بعد عمل الـsetup.. اختر المجلد الذي تريد وضع مجلد الـsetup فيه بعد إنشائه. ثم next للمتابعة..
(وانتبه جيدا لهذا المكان لكي تفتحه لاحقا بعد اكتمال العمل)

http://www.c4arab.com/images/lessons/programming/visualbasic/p8.jpg

ملاحظة: إذا اخترت مجلد لم تقم بإنشائه مسبقا فسوف
يتم إظهار رسالة تخبرك بان هذا المجلد غير موجود.. هل ترغب إنشائه؟.. أجب بنعم

9- بعد ذلك تظهر لك نافذة يطلب منك تحديد الأشياء التي ترغب بضمها إلى مجلد الـsetup..
قم بتحديد ما تريد أن تضيفه، انقر على الأيقونة Add إذا كنت تريد إضافة ملف آخر إلى مجلد
الـSetup كأن تضيف مستند كنت قد أعددته مسبقا لشرح خطوات تحميل البرنامج
أو مميزاته أو ما شابه ذلك، أو اجعل الخيارات كما هي.. ثم انقر next للمتابعة..

http://www.c4arab.com/images/lessons/programming/visualbasic/p9.jpg

10- في النافذة التالية يطلب منك اختيار طريقة عمل مجلد الـsetup ،
وهي طريقتين إما أن يكون مجلد كامل واحد، أو يكون مقسم بحيث يمكن وضع هذه
الأقسام داخل أقراص مرنة.
طبعا اختر الخيار الأول Single capللسهولة وهي الطريقة المفضلة والشائعة الاستخدام..
ثم next للمتابعة..

http://www.c4arab.com/images/lessons/programming/visualbasic/p10.jpg

11- في النافذة التالية حدد عنوان نافذة التحميل Installation Title ،
يمكنك أن تتأمل الصورة الموجودة في يسار النافذة،
لتعرف أين سيظهر هذا العنوان عند التحميل ..
من الأفضل كتابة اسم مشروعك.. بالعربي أو بالإنجليزي. ثم next للمتابعة..

http://www.c4arab.com/images/lessons/programming/visualbasic/p11.jpg

12- بعد ذلك يطلب منك طريقة وضع البرنامج داخل قائمة ابدأ بشكل افتراضي Default
عند تحميل البرنامج. تستطيع أن تجعلها كما هي أو تغيرها حسبما يروق لك. ثم next للمتابعة..

http://www.c4arab.com/images/lessons/programming/visualbasic/p12.jpg

13- النافذة التالية تعرض لك اسم الملف الذي تود عمل Setup له
وهو في مثالنا هذا project.exe وكذلك المسار الذي وضعت فيه هذا الملف،
وهذا لتتيح لك فرصة التأكد من الملف الذي تود عمل setup له. ثم اضغط next للمتابعة..

http://www.c4arab.com/images/lessons/programming/visualbasic/p13.jpg

14- النافذة التالية تسألك هل ترغب بمشاركة الملف projectvb.exe مع برامج.
ضع إشارة صح أمام المجلد إذا كنت تريد ذلك. (غير مهمة).. ثم next للمتابعة..

http://www.c4arab.com/images/lessons/programming/visualbasic/p14.jpg

15- آخر نافذة تخبرك بأنه تم الانتهاء من جمع المعلومات اللازمة لعمل مجلد الـsetup ،
اختر منها finish لإكمال الإعدادات المتبقية.

http://www.c4arab.com/images/lessons/programming/visualbasic/p15.jpg

عند الانتهاء سيظهر لك تقرير بعملية الـPackaging التي تمت على الملف التنفيذي projectvb.exe، احتفظ بالتقرير إذا كنت ترغب بذلك.

الآن أغلق كل شيء أمامك واتجه إلى المسار الذي قمت بوضع مجلد الـSetup فيه.
( C:Program FilesMicrosoft Visual StudioVB98Package 2)
سوف تجد بإذن الله في المكان الذي حددته في الخطوة رقم 8 المجلد الذي وضعت بداخله
ملف الـsetup..

http://www.c4arab.com/images/lessons/programming/visualbasic/p16.jpg

جرب وقم بعمل setup لبرنامجك لتشعر بمتعة حقيقة لعملك

http://www.c4arab.com/images/lessons/programming/visualbasic/p17.jpg

سر العرب
15-08-2006, 10:03 AM
السلام عليكم

بارك الله فيك على هذا الدرس الممتاز

افادك الله

فعلا هذه الطريقة صعبة

لكن الحمد الله فهمتها

شكرا على المجهود

amer2008
15-08-2006, 03:15 PM
ألف شكر ياسيدى على هذا العمل وجزاك الله خيراً
أخوك عامر .... القاهرة

amer2008
15-08-2006, 03:17 PM
كيف يتم تحميل بنامج الفيجوال نسخة متداولة ويكون لك الأجر من عند الله هو نعم المولى ونعم النصير
أخوك عامر القاهرة .

Fantasy-Reality
15-08-2006, 03:54 PM
مشكوووور على الدرووس مفيده جدا اسف ماشفت الموضوع قبل

حبيبة الشيخ
15-08-2006, 04:33 PM
السلام عليكم

شكرا على هذا الدرس

جد مفيد

بارك الله فيك

الحبيب لمين
15-08-2006, 04:38 PM
السلام عليكم


بارك الله فيك على هذا الدرس الممتاز

افادك الله

فعلا هذه الطريقة صعبة

لكن الحمد الله فهمتها


شكرا على المجهود


شكرا اخي سر العرب على

اهتمامك بالدروس

شكرا على التعليق

الحبيب لمين
15-08-2006, 04:42 PM
كيف يتم تحميل بنامج الفيجوال نسخة متداولة ويكون لك الأجر من عند الله هو نعم المولى ونعم النصير
أخوك عامر القاهرة .

شكرا اخي عامر

على تعليقك على الموضوع

بس انا ما فهمت سؤالك

اذا كنت تعني تحميل برنامج فيجوال بيزك من النت

خذ هذه الوصلة (http://www.badongo.com/file/117735)

اذا كان غير ذلك

ارجوا من ان توضح لى المعني كي اخدمك

شكرا

الحبيب لمين
15-08-2006, 04:44 PM
مشكوووور على الدرووس مفيده جدا اسف ماشفت الموضوع قبل


شكرا اخي تايتو

على هذا التشجيع

اتمني انك تكتب لى رايك دائما

خصوصا في هذا الموضوع

الحبيب لمين
15-08-2006, 04:46 PM
السلام عليكم


شكرا على هذا الدرس

جد مفيد

بارك الله فيك


شكرا اختي حبيبة

علي هذا التشجيع

وليش كل هذا الانقطاع

عسا ما شر

amawi
15-08-2006, 11:15 PM
السلام عليكم

درس رائع اخي

جزاك الله خير على مجهودك الرائع هذا

وبالتوفيق دائما يا رب

اخوك

الحبيب لمين
16-08-2006, 11:01 AM
السلام عليكم

درس رائع اخي

جزاك الله خير على مجهودك الرائع هذا

وبالتوفيق دائما يا رب

اخوك

السلام عليكم

شكرا اخي amawi

على هذا التشجيع

اتمني اك دائما تشاركنا برائك في المواضيع

وما تنقطع عنا

الحبيب لمين
20-08-2006, 12:26 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif
http://www.moudir.com/vb/images/smilies/salam.gif

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

وذلك لسببين

1- ضروف عملى لا تسمح لى بالدخول الي النت وشرح المواضيع
2- كنت احضر لكم سلسلة متخصصة في قواعد البيانات

خاصة اني لاحظت اهتمام بعض الاعضاء بهذا النوع من البرمجة

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

كيف تنشيء قاعدة بيانات في فيجوال بيسك

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

قاعدة البيانات التي سننشأها تحتوي جدول يحتوي على أسماء الطلاب و أرقامهم

الخطوة الأولى فتح فيجوال بيسك كالمعتاد و من ثم الذهاب إلى قائمة

Add-ins >> visual data manager...

http://www.c4arab.com/images/lessons/databases/pic/c2f1.gif
بعد ذلك ستفتح لك نافذة البرنامج إذهب إلى

File>>new>>microsoft access>>version 7.0 mdb..

سيظهر لك مربع حفظ حدد الموقع الذي تريد أن تحفظ فيه قاعدة بياناتك ثم إختر حفظ

بعد ذلك ستظهر لك قاعدة البيانات حدد

proprties

بالزر الأيمن ثم أختر

New Table
http://www.c4arab.com/images/lessons/databases/pic/c2f2.gif

بعد ذلك ستفتح لك نافذة تكتب فيها إسم الجدول و ثم نذهب لإضافة الحقول كما هو مبين

http://www.c4arab.com/images/lessons/databases/pic/c2f3.gif

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

name

و نوع بياناته

text

و الثاني

number

و نوع بياناته

long

ملاحظة مهمة إذا كان ماسيكتب في الحقل من أرقام خمسة أرقام أو أقل نختار نوع البيانات

integer

و للأرقام الطولية نختار

long

http://www.c4arab.com/images/lessons/databases/pic/c2f4.gif

بذلك نكون قد أنشأنا قاعد بيانات تحتوي على جدول به حقلين الإسم و الرقم

اتمني ان هذه البراية تكون مفهومة

نواصل غدا انشاء الله

سر العرب
20-08-2006, 12:59 PM
السلام عليكم

اخيرا درس

مشكور اخوي على هذا الدرس

فعلا قاعدة البيانات موضوع مهم


درس رائع

شكرا على هذا الجهد
:kiss: :silly: :kiss:

amawi
20-08-2006, 01:18 PM
مشكور اخوي

فعلا درس رائع

وطالما سمعت عن هذا الدرس لكن فعلا مثل شرحك ما شفت

اتمنى تتابع

والله يوفقك ويجعله في ميزان حسناتك

شكرا جزيلا

عماوي ;)

الحبيب لمين
20-08-2006, 01:59 PM
السلام عليكم


اخيرا درس

مشكور اخوي على هذا الدرس

فعلا قاعدة البيانات موضوع مهم


درس رائع

شكرا على هذا الجهد

:kiss: :silly: :kiss:


وعليكم السلام

اطمن اخي سر العرب

سلسلة الدوروس متواصلة انشاء الله

شكرا على تتبعك الجيد للدرس

الحبيب لمين
20-08-2006, 02:09 PM
مشكور اخوي

فعلا درس رائع

وطالما سمعت عن هذا الدرس لكن فعلا مثل شرحك ما شفت

اتمنى تتابع

والله يوفقك ويجعله في ميزان حسناتك

شكرا جزيلا

عماوي ;)

آآمين

يارك الله فيك على هذا الشعور المميز

انا راح استمر باذن الله

لك مني اسمي ايات التقدير والامتنان

حبيبة الشيخ
20-08-2006, 04:14 PM
السلام عليكم

كوووول

ممتاز

استمر على هذا النهج

مشكوووووور

الحبيب لمين
21-08-2006, 11:15 AM
السلام عليكم


كوووول

ممتاز

استمر على هذا النهج


مشكوووووور


بارك الله فيك

اتمني انك تكوني

بهذا النشاط دائما

الحبيب لمين
21-08-2006, 12:47 PM
بسم الله الرحمن الرحيم


ربط قاعدة البيانات بإستخدام الأداة data


سنقوم بربط القاعدة التي أنشأنها و التي تحتوي على حقلين هما إسم الطالب و رقمه


تفتح مشروع جديد ثم تضيف الأداة data من صندوق الأدوات كما في الصورة:


http://www.up07.com/upload-8/wh_238591655.gif (http://javascript<b></b>:vip600Foto('http://www.up07.com/upload-8/wh_238591655.gif'))


نرسم الأداة على الفورم و أيضا نرسم صندوقي نص لكي نظهر فيهما الحقول
http://www.up07.com/upload-8/wh_314782755.gif (http://javascript<b></b>:vip600Foto('http://www.up07.com/upload-8/wh_314782755.gif'))


الأن سنقوم بربط مربعات النص مع كائن البيانات و سنورد اولا خصائص كائن
من مربع الخصائص نضبط الخصائص التالية للأداة data
http://www.up07.com/upload-8/wh_180753807.JPG (http://javascript<b></b>:vip600Foto('http://www.up07.com/upload-8/wh_180753807.JPG'))


هكذا تكون قد ربطت قاعدة بياناتك في برنامج و لترى النتيجة قم بتنفيذ البرنامج و ذلك بضغط


طبعا لن يظهر لك شيء لأن قاعدة البيانات فارغة و لكي نقوم بوضع بعض الحقول قم بالتالي


شغل منشيء قواعد البيانات كما تعلمنا في الدرس السابق و إذهب إلى


File>>Opendatabase>>microsoft access


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


نلتقي غدا انشاء الله

amawi
21-08-2006, 01:20 PM
كالعادة درس في قمة الروعة

لكن اخي سؤال او ملاحظة مثل ما بدك ;) : الأداة data كما اعرف وكما جربت ودرست تستخدم في الربط مع الأكسيس القديم أي ان اكسيس xp لا ينفع معها وانما يحتاج لأداة غير هذه

اتمنى توضح لي شوي

بالتوفيق

وشكرا جزيلا

الحبيب لمين
21-08-2006, 02:15 PM
كالعادة درس في قمة الروعة

لكن اخي سؤال او ملاحظة مثل ما بدك ;) : الأداة data كما اعرف وكما جربت ودرست تستخدم في الربط مع الأكسيس القديم أي ان اكسيس xp لا ينفع معها وانما يحتاج لأداة غير هذه

اتمنى توضح لي شوي

بالتوفيق

وشكرا جزيلا

شكرا اخي amawi

على هذا السوال

صدقت فكا من اكسس xp
او اكسس 2003

يتعذر الربط بواسطتهم

الي باحدي الطريقتين
1- تعمل اوب ديت للاكسس xp
2- تلغي الاوفس الالجهاز وتنزل الاكسس ثم تعيد تازيل الحزمة كاملة في حالة الاوفس2003

شكرا على هذا السؤال

اي شيء انا في الخدمة

اتمني ان تستمر معنا

بهذا النشاط

شكرا جزيلا

سر العرب
21-08-2006, 06:36 PM
السلام عليكم

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

بارك الله فيك على هذا الدرس الممتاز

الحبيب لمين
22-08-2006, 11:14 AM
السلام عليكم

تري ليش تاخري

يا سر العرب

عسا ماشر

شكرا لحرصك على حضور كل الحصص

الحبيب لمين
22-08-2006, 11:45 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

ربط قاعدة البيانات بإستخدام المعالج السحري

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

إذهب إلىقائمة Add-ins و اختر الإختيار Add-in manager سيفتح لك نافذة
انقر نقرا مزدوجا على السطر Vb 6 Data FormWizard يجب أن تظهر العبارة التالية
بجانب السطر loaded بعد ذلك اختر موافق و اذهب الى القائمة Add-Ins اضغط على الخيار
التالي Data Form Wizard ستظهر لك نافذة المعالج السحري
قم باختيار Next اختر نوع قاعدة البيانات و هو في حالتنا Access
و اختر Next حدد موقع قاعدة البينات المراد ربطها و ذلك بالضغط على Browes بعد ذلك
اختر اسما للفورم و و حدد طريقة الربط و العرض كما قو مبين ثم اضغط على Next

http://www.up07.com/upload-9/wh_235550842.JPG (javascript:vip600Foto('http://www.up07.com/upload-9/wh_235550842.JPG'))

بعد ذلك حدد اسم الجدول المراد ربطه من الحقل Record source
والحقول المراد ظهورها من القائمة available feildsو ذلك عن طريق تحديد الحقل
و الضغط على الاسهم التي في المنتصفبعد ذلك حد الحقل الذي تريد ان يكون الفرز على اساسه
و ذلك من column to stort by بعد ذلك اضغط Next و ستأتيك نافذةلتحدد الأزرار التي تريدها
أن تظهر في مشروعك مثل حذف و اضافة و تحديث و ما شابه حدد ماتريد
ثم اختر Next ثم Finish


ستظهر لك الان النافذة التي انشأناها و لكن يجب ان بجعلها الافتراضية عند تشغيل البرنامج
و لكي تجعلها كذالك اذهب الى Project>>project1proprtis.. ثم حدد الفورم الذي تريد
ان تجعله افتراضي من القائمة Startup Object و هي في حالتنا form11



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

عمل مرضي بلا مشقة

نلتقي غدا انشاء الله

amawi
22-08-2006, 12:16 PM
ودرس رائع كالعادة

بارك الله فيك اخي

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

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


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

وبالتوفيق

اخوك

سر العرب
22-08-2006, 01:13 PM
وعليكم السلام

ماشاء الله

بارك الله فيك فعلا درس ممتاز

اتمني ان تستمر على هذا المنوال

الحبيب لمين
22-08-2006, 01:51 PM
ودرس رائع كالعادة

بارك الله فيك اخي

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

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


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

وبالتوفيق

اخوك

بارك الله فيك

وشكرا على هذا الكلام الطيب وانا انشاء الله

راح اجمع الدروس في نهاية الدورة

واحكهم في ملف وورد

لكي تسهل عليك عملية الطباعة

بارك الله فيك

الحبيب لمين
22-08-2006, 01:53 PM
وعليكم السلام




ماشاء الله


بارك الله فيك فعلا درس ممتاز


اتمني ان تستمر على هذا المنوال




اهم شيء انك تطبق الدرس وتستفيد منه


ومشكور على كلماتك الطيبة

الحبيب لمين
23-08-2006, 12:15 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

مقدمة عن ربط قاعدة البيانات بالكود

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

لكي تتمكن من ربط قاعدة البيانات لابد لك من التوفر الاتي

1- قاعدة بيانات جاهزة و يفضل ان يوجد بها بعض الحقول الجاهزة

2- معرفة جيدة بإضافة ادوات التحكم الأساسية مثل الازرار و العناوين
و مربعات النص لان الدروس لن تحتوي على هذه الفاصيل لانها من الاساسيات .

3- ان تعلم ان كل قاعدة بيانات عبارة عن سجلات وكل سجل عبارة عن حقول.

ان الشرح الذي تاقوم به الان ربما لن تفهمه بشكل صحيح لكنه مهم
حيث ستعرفه في الدوس القادمه لذا لا تهمله

الشرح

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

1- عند تنفيذ البرنامج سيذهب للموديول وسيجد متغير يحتوي على قاعدةبيانات
و سيتعرف عليها و سيجد امر يأمره بالانتقال للفورم الرئيسي


2- سيجد عند تحميل الفورم جدول يحتوي على بيانات لكن من اين هذه البيانات؟
انها من القاعدة التي تعرف عليها البرنامج في الخطوة الأولى


3- سيجد شرط يقول اذا كان الجدول يحتوي على بيانات فقم بإظهارها على مربع النص
او القائمة حسب ما حدده المبرمج ( الذي هو انت :))


هذه هي الفكرة الاساسية لاظهار البيانات أو بالأحرى عند تشغيل البرنامج
و الان كيف يقوم البرنامج بحفظ التغييرات الجديدة


1- عندما يضغط المستخدم على زر اضافه قم بإضافة سجل جديد

2- عندما يقوم المستخدم بضعط زر حفظ قم بأخذ البيانات من مربعات النص
و ضعها في الحقول الموازية لها و احفظها

نلتقي غدا انشاء الله

في الدرس القادم

سر العرب
23-08-2006, 01:57 PM
وعليكم السلام

فعلا انا دائما ما انتبه للنقاط البسيطة

راح انتبه لها

انشاء الله

شكرا على الملاحظات

بس الصدق شوقتنا للدرس الجديد

بارك الله فيك:biggthump

الحبيب لمين
23-08-2006, 03:41 PM
وعليكم السلام


فعلا انا دائما ما انتبه للنقاط البسيطة

راح انتبه لها

انشاء الله

شكرا على الملاحظات

بس الصدق شوقتنا للدرس الجديد


بارك الله فيك:biggthump


بارك الله فيك على تفهمك

فقط تابع السلسلة

انشاء الله تستفيد منها

amawi
23-08-2006, 10:05 PM
السلام عليكم

درس رائع يا اخي

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

وان شاء الله في ميزان حسناتك

فعلا درس كنت انتظره فهو الاهم بين طرق الربط

اشكرك من كل قلبي

وفي انتظارك

بالتوفيق

الحبيب لمين
24-08-2006, 12:17 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

ربط قاعدة البيانات بالكود الجزء الاول

بعد أن أخذنا مقدمة عن طريقة الربط بالكود سنأخذ الآن التطبيق الفعلي للربط بالكود ،
سيكون مشروعنا عبارة عن برنامج لحفظ اسم السلعة و سعرها ،
و كل ما نريده في هذا المثال هو ربط قاعدة البيانات بالكود و حفظ الادراجات الجديدة
و الحذف و سنأجل البحث للدروس القادمة عندما نأخذ مباديء SQL لغةالاستعلام حيث سيكون
البحث معها في اية السهولة و البساطة و الان دعونا نبدأ باذن الله الدرس

قبل أن تبدأ يجب أن تجهز قاعدة بيانات و ليكن إسمها db1 و تحتوي على جدول اسمه tb1
و هذا الجدول يحتوي على الحقول التالية :

ملاحظة:




يمكنك عمل قاعدة البيانات بواسطة Access او بواسطة فيجوال بيسك راجع الدروس السابقة



http://www.up07.com/upload-11/wh_257198886.JPG


# بعد أن تقوم بذلك إفتح مشروع فيجوال بيسك قياسي جديد ، و قبل أن تبدأ بربط قاعدة البيانات
يجب أن تحدد أي طريقة ستستخدمها للربط و في هذا المثال سنستخدم طريقة او تقنية DAO ،
و بعد ان حددنا الطريقة التي سوف تربط بها سنضيف المكتبة الخاصة بها و هي عبارة عن مكتبة
تحتوي على تعريف للأوامر التي ستستخدمها لتقنية DAO و لتضيف هذه المكتبة قم بالتالي :

اذهب الى قائمةProject > Refrence و من ثم حدد الاختيار
Microsoft DAO 3.51 Object Library بعد ذلك اختر موافق

الان سنعود لمشروعنا ، و ان كنت مازلت تتذكر ما قلنا في الدرس السابق فإن علينا اضافة موديول ،
و لتفعل ذلك اذهب لقائمة Project و اضغط على Add Module الان سنقوم بتعريف متغيرين
في الموديول واحد عبارة عن قاعدة بيانات و الاخر عبارة عن جدول و هذه صيغة تعريف المتغيرين :



Public d As Database

Public t As Recordset


كلمة Public تعني انه متغير عام في المشروع و لاحظ ان d اسنادناها كقاعدة بيانات و t كجدول
* في نفس الموديول سنقوم بإسناد قاعدة البيانات الأصلية و التي اسمها db1 الى القاعدة الوهمية ان صح التعبير و التي عرفناها قبل قليل بـ d و لعمل ذلك نكتب الإجراء التالي في الموديول




() Private Sub main
Set d = DBEngine.Workspaces(0).OpenDatabase(App.Path & "db1.mdb")

Form1.Show

End Sub




و الان دعنا نشرح هذا الاجراء ، اول شيء اسمينا هذا الاجراء باسم main
و هذا ليس فيه خيار حيث ان هذا اسم محجوز في لغة البيسك فلا تستطيع ان تستبدله بآخر
أول جملة في الاجراء هي جملة الاسناد ولقد بدأناها بأمر الاسناد المعروف Set
ثم وضعنا القيمة التي سنسند فيها
و هي d التي عرّفناها و قلنا سنسند فيها القاعدة الاصلية لكي لاتتغير قيمها اثناء المعالجة المؤقتة
ثم كتبنا كلمة
DBEngine و هي عبارة عن نوع قاعدة البيانات التي ستستخدمها و هذا هو محرك قاعدة البيانات من نوع Access ثم كتبنا( Workspaces0) و هذا نوع مجال العمل لن نتطرق له الان ،
بعد ذلك و ضعنا الامر الذي سيقوم بفتح قاعدة البيانات لكي تستطيع الوصول
الى محتواها Opendatabase ،
بعد ذلك وضعنا مسار قاعدة البيانات و لكي تتجنب مشكلة تغير المسار من جهاز
لاخرنستخدم الدالة App.path
اي مسار المحلد الذي يحتوي البرنامج و لاستخدام هذه الطريقة يجب ان تكون قاعدة البيانات
في نفس مجلد البرنامج،
ثم كتبنا اسم القاعدة و امتدادها

في السطر الثاني من الاجراء كتبنا امر لإظهار الفورم

بإختصار هذه الطريقة ثابته لإسناد اي قاعدة بيانات فقد غير اسم قاعدة البيانات

تنفيذ البرنامج

بعد قيامك بالخطوات السابقة يجب ان تنفذ البرنامج في هذه المرحلة لكي تتأكد انك تسير على الخط
الصحيح و قبل ذلك تأكد من انك قمت بجعل الموديول في بدأ التشغيل وذلك بالذهاب
الى Project > Project1.proprties.. بعد ذلك حددsub main من القائمة
المنسدلة startup object بعد ذلك شغل البرنامج بالضغط على F5 يجب ان تسير الامور
على ما يرام و ان لم تكن كذلك تأكد من الخطوات التالية :


1- أنك قمت بحفظ المشروع في نفس المجلد الذي فيه قاعدة البيانات



2- أن قاعدة البيانات ليست في قيد التشغيل



3- انك جعلت الموديول في بدأ تشغيل المشروع



4- انك كتبت اسم قاعدة البيانات صحيحا



نلتقي غدا انشاء الله

في درس اخر
:D :D

الحبيب لمين
24-08-2006, 12:29 PM
السلام عليكم





درس رائع يا اخي


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


وان شاء الله في ميزان حسناتك


فعلا درس كنت انتظره فهو الاهم بين طرق الربط


اشكرك من كل قلبي


وفي انتظارك


بالتوفيق





السلام عليكم


بارك الله فيك على شعورك العلي


التي ادخلت السرور الى قلبي


وانا والله ما كتبت هذه المعلومات


الا لسببين فقط


الاول اريد نشر العلم
الثاني لا اريد ان يلجمني الله بلجام من نار يوم القيامة


بارك الله فيك وفي الاخوة المتابعين للدورة خاصة سر العرب


لا تنسونا من صالح دعائكم

حبيبة الشيخ
24-08-2006, 02:22 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif



http://www.l22l.com/l22l-up-4/9808f0b98e.gif


ربط قاعدة البيانات بالكود الجزء الاول


بعد أن أخذنا مقدمة عن طريقة الربط بالكود سنأخذ الآن التطبيق الفعلي للربط بالكود ،
سيكون مشروعنا عبارة عن برنامج لحفظ اسم السلعة و سعرها ،
و كل ما نريده في هذا المثال هو ربط قاعدة البيانات بالكود و حفظ الادراجات الجديدة
و الحذف و سنأجل البحث للدروس القادمة عندما نأخذ مباديء SQL لغةالاستعلام حيث سيكون
البحث معها في اية السهولة و البساطة و الان دعونا نبدأ باذن الله الدرس


قبل أن تبدأ يجب أن تجهز قاعدة بيانات و ليكن إسمها db1 و تحتوي على جدول اسمه tb1
و هذا الجدول يحتوي على الحقول التالية :


ملاحظة:





يمكنك عمل قاعدة البيانات بواسطة Access او بواسطة فيجوال بيسك راجع الدروس السابقة





http://www.up07.com/upload-11/wh_257198886.JPG



# بعد أن تقوم بذلك إفتح مشروع فيجوال بيسك قياسي جديد ، و قبل أن تبدأ بربط قاعدة البيانات
يجب أن تحدد أي طريقة ستستخدمها للربط و في هذا المثال سنستخدم طريقة او تقنية DAO ،
و بعد ان حددنا الطريقة التي سوف تربط بها سنضيف المكتبة الخاصة بها و هي عبارة عن مكتبة
تحتوي على تعريف للأوامر التي ستستخدمها لتقنية DAO و لتضيف هذه المكتبة قم بالتالي :


اذهب الى قائمةProject > Refrence و من ثم حدد الاختيار
Microsoft DAO 3.51 Object Library بعد ذلك اختر موافق


الان سنعود لمشروعنا ، و ان كنت مازلت تتذكر ما قلنا في الدرس السابق فإن علينا اضافة موديول ،
و لتفعل ذلك اذهب لقائمة Project و اضغط على Add Module الان سنقوم بتعريف متغيرين
في الموديول واحد عبارة عن قاعدة بيانات و الاخر عبارة عن جدول و هذه صيغة تعريف المتغيرين :




Public d As Database


Public t As Recordset



كلمة Public تعني انه متغير عام في المشروع و لاحظ ان d اسنادناها كقاعدة بيانات و t كجدول
* في نفس الموديول سنقوم بإسناد قاعدة البيانات الأصلية و التي اسمها db1 الى القاعدة الوهمية ان صح التعبير و التي عرفناها قبل قليل بـ d و لعمل ذلك نكتب الإجراء التالي في الموديول




() Private Sub main
Set d = DBEngine.Workspaces(0).OpenDatabase(App.Path & "db1.mdb")


Form1.Show


End Sub




و الان دعنا نشرح هذا الاجراء ، اول شيء اسمينا هذا الاجراء باسم main
و هذا ليس فيه خيار حيث ان هذا اسم محجوز في لغة البيسك فلا تستطيع ان تستبدله بآخر
أول جملة في الاجراء هي جملة الاسناد ولقد بدأناها بأمر الاسناد المعروف Set
ثم وضعنا القيمة التي سنسند فيها
و هي d التي عرّفناها و قلنا سنسند فيها القاعدة الاصلية لكي لاتتغير قيمها اثناء المعالجة المؤقتة
ثم كتبنا كلمة
DBEngine و هي عبارة عن نوع قاعدة البيانات التي ستستخدمها و هذا هو محرك قاعدة البيانات من نوع Access ثم كتبنا( Workspaces0) و هذا نوع مجال العمل لن نتطرق له الان ،
بعد ذلك و ضعنا الامر الذي سيقوم بفتح قاعدة البيانات لكي تستطيع الوصول
الى محتواها Opendatabase ،
بعد ذلك وضعنا مسار قاعدة البيانات و لكي تتجنب مشكلة تغير المسار من جهاز
لاخرنستخدم الدالة App.path
اي مسار المحلد الذي يحتوي البرنامج و لاستخدام هذه الطريقة يجب ان تكون قاعدة البيانات
في نفس مجلد البرنامج،
ثم كتبنا اسم القاعدة و امتدادها


في السطر الثاني من الاجراء كتبنا امر لإظهار الفورم


بإختصار هذه الطريقة ثابته لإسناد اي قاعدة بيانات فقد غير اسم قاعدة البيانات


تنفيذ البرنامج


بعد قيامك بالخطوات السابقة يجب ان تنفذ البرنامج في هذه المرحلة لكي تتأكد انك تسير على الخط
الصحيح و قبل ذلك تأكد من انك قمت بجعل الموديول في بدأ التشغيل وذلك بالذهاب
الى Project > Project1.proprties.. بعد ذلك حددsub main من القائمة
المنسدلة startup object بعد ذلك شغل البرنامج بالضغط على F5 يجب ان تسير الامور
على ما يرام و ان لم تكن كذلك تأكد من الخطوات التالية :


1- أنك قمت بحفظ المشروع في نفس المجلد الذي فيه قاعدة البيانات


2- أن قاعدة البيانات ليست في قيد التشغيل


3- انك جعلت الموديول في بدأ تشغيل المشروع


4- انك كتبت اسم قاعدة البيانات صحيحا



نلتقي غدا انشاء الله


في درس اخر
:D :D





بارك الله فيك

هذا بالنسبة لي احسن درس

استمر

بارك الله فيك

سر العرب
24-08-2006, 02:27 PM
السلام عليكم

شكرا على هذه المواضيع

الله يثبت لك الاجر

درس ممتز

تماما مثل الدروس التي سبقته

استمر على هذا المنوال

الحبيب لمين
24-08-2006, 06:30 PM
بارك الله فيك

هذا بالنسبة لي احسن درس

استمر

بارك الله فيك


شكرا اختي حبيبة

على المرور

ليش ما تحضري كل يوم

للدوروس

الحبيب لمين
24-08-2006, 06:34 PM
السلام عليكم


شكرا على هذه المواضيع

الله يثبت لك الاجر

درس ممتز

تماما مثل الدروس التي سبقته


استمر على هذا المنوال


اهلا سر العرب

كيف الامور معاك

الدوس الباين عجبتك

شكرا على المرور

amawi
24-08-2006, 10:47 PM
بارك الله فيك

درس رائع وخفيف

مجود واضح تبذله

الله يوفقك يا رب

وفي انتظار المزيد من ابداعاتك

اخوك

الحبيب لمين
25-08-2006, 10:20 AM
بارك الله فيك على اهذا الرد الرائع

اخي amawi

:tongue1: :tongue1: :kiss:

الحبيب لمين
25-08-2006, 10:43 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif


http://www.l22l.com/l22l-up-4/9808f0b98e.gif


ربط قاعدة البيانات بالكود الجزء الثاني


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


اولا سنقوم بربط الجدول الذي في قاعدة البيانات و نخزنه في المتغير الذي أنشأناه
في الدرس السابق بإسم t علما أن الجدول الرئيسي اسمه tb1 ولكي نقوم بذلك اكتب الامر التالي
حدث التحميل للفورم load




Private Sub Form_Load()


(Set t = d.OpenRecordset ("tb1", dbOpenTable


End Sub




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

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





بعذلك و ضعنا جملة الربط للجدول و بدأنا بأمر الاسناد المعروف Set ثم اسم القيمة التي سنسند قيم



الجدول فيها و هي التي عرفناها فيما قبل باسم t بعد ذلك نكتب اسم القاعدة المستعار الذي اسندنا

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





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



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

التي سنعتمدها
http://www.up07.com/upload-11/wh_608318864.JPG (http://javascript<b></b>:vip600Foto('http://www.up07.com/upload-11/wh_608318864.JPG'))




Private Sub showdata()


If t.RecordCount < 1 Then Exit Sub ' عندما يكون الجدول فارغ اخرج من الاجراء


Text1.Text = t!Name 'نضع في مربع النص الاول قيمة حقل الاسم في الجدولt


Text2.Text = t!num ' نفس الخطوة السابقة لحقل رقم السلعة


Text3.Text = t!price 'نفس الخطة السابقة لحقل السعر


End Sub




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


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


و الان يجب أن نضيف امر استدعاء لإجراء العرض عند تحميل البرنامج فسيكون الامر في حدث التحميل هكذا :




Private Sub Form_Load()


Set t = d.OpenRecordset("tb1", dbOpenTable)


Call showdata


End Sub




نلتقي غدا انشاءالله


في درس جديد

amawi
25-08-2006, 11:20 AM
في غاية الروعة

شكرا لك لهذا المجهود الرائع بحق

وفي ميزان حسناتك

في انتظار الدرس التالي

بالتوفيق

الحبيب لمين
25-08-2006, 01:19 PM
في غاية الروعة

شكرا لك لهذا المجهود الرائع بحق

وفي ميزان حسناتك

في انتظار الدرس التالي

بالتوفيق

آمييييييييييييين

الله يبارك فيك ويحفظك ويرعاك

غدا الدرس القادم انشاء الله

سر العرب
25-08-2006, 03:05 PM
السلام عليكم

بارك الله فيك

درس ممتاز

:01: :01: :01:

استمر :footinmouth:

الحبيب لمين
25-08-2006, 06:34 PM
السلام عليكم

بارك الله فيك اخي سر العرب

اتمني تتابع معانا الدورة

الي النهاية

:أفكر: :32: :D

الحبيب لمين
26-08-2006, 10:55 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif


http://www.l22l.com/l22l-up-4/9808f0b98e.gif


ربط قاعدة البيانات بالكود الجزء الثالث


نتعلم كيفية التنقل بين السجلات و كيفية الحفظ و التعديل و الاضافة و الحذف


التنقل بين السجلات :


لن تحتاج للتنقل بين السجلات الا لـ:


السجل التالي


السجل السابق


السجل الأول


السجل الأخير


!+عريض!السجل التالي!-عريض!
ولكي تنتقل للسجل التالي سوف تحتاج لكتابة الأمر التالي في الزر المطلوب و هو في مثالنا cmd6




Private Sub cmd6_Click()
t.MoveNext
Call showdata
End Sub



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


!+عريض!السجل السابق!-عريض!
وكل ما تحتاج كتابته هذا الكود بنفس طريقة الكود السابق
( لا تنسى وضع الكود في المكان المناسب و هو هنا cmd7)



Private Sub cmd7_Click()
t.MovePrevious
Call showdata
End Sub




عريض+!السجل الأول!-هريض!
للإنتقال للسجل الأول اكتب الكود التالي في زر الامر cmd8




Private Sub cmd8_Click()
t.MoveFirst
Call showdata
End Sub




!+عريض!السجل الأخير!-عريض!
للانتقال للسجل الاخير اكتب الكود التالي في زر الامر cmd5 :




Private Sub cmd5_Click()
t.MoveLast
Call showdata
End Sub




هذه كل اوامر التنقل التي تحتاجها ، لكن لم ننتهي بعد فستواجهك مشكلة ،
فمثلا عندما تريد أن تنتقل للسجل التالي و انت في السجل الاخير طبعا لا يوجد سجل تالي
لذلك سيتوقف البرنامج ، و نفس الشيء عند الانتقال للسجل السابق و انت في السجل الاول
فلا يوجد سجل سابق فسيتوقف البرنامج ، لذلك سنقوم بإضافة جملة شرطية للتأكد اذا كان السجل
الأخير او الاول حسب الحاله ثم نقوم بوضع امر Movefirst او movelast حيث ان هذين
الامرين لا يتأثران سواء كان هناك سجل او لا و طريقة استخدامهم هكذا :


!+عريض!ملاحظة!-عريض!

!+عريض!ملاحظة!-عريض!




نستخدم الدالة EOF لمعرفة اخر سجل في الجدول ،



و نستخدم الدالة BOF لمعرفة اول سجل في الجدول





سنضع الجملة الشرطية التالية في زر الانتقال للتالي فإذا كان هذا اخر سجل اذا انتقل للسجل التالي





If t.EOF Then t.MoveLast






و كذلك في زر الانتقال للسابق نضع شرط اذا كان هذا اول سجل اذا انتقل للسجل الاول




If t.BOF Then t.MoveFirst



لذلك سنضيف الجملتين السابقتين لكود الانتقال للتالي و الانتقال للسابق فييصبح كود الانتقال للتالي هكذا :





Private Sub cmd6_Click()
t.MoveNext
If t.EOF Then t.MoveLast
Call showdata
End Sub




وكود الانتقال للسابق هكذا :




Private Sub cmd7_Click()
t.MovePrevious
If t.BOF Then t.MoveFirst
Call showdata
End Sub



!+عريض!عمليات السجلات!-عريض!

الان سنتعلم عمليات السجلات منحذف و اضافة و تعديل


!+عريض!أضافة سجل!-عريض!


الامر التالي يقوم بإضافة سجل و نضيف عليه اوامر لتمسح ما في مربعات النص لتهيئتها للإضافة:




Private Sub cmd1_Click()
t.AddNew 'اضافة سجل جديد
'الخطوات التالية لكي نقوم بمسح ما في مربعات النص لتهيئتها للإضافة و هي خطوة لتعطي طابع الاحتراف فقط
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub




!+عريض!حفظ سجل:!-عريض!








لتحفظ سجل يجب عليك أن تقوم بوضع القيم التي في مربعات النص في الحقول التي توازيها



في الجدول ، و لاحظ أنه سوف يعطيك رسالة خطأ عندما تقوم بالحفظ دون ان تقوم باختيار تعديل


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

Val عند حفظ الحقول الرقمية لتجنب المشاكل عندما يتركه المستخد فارغا ،

و ايضا يجب عليك ان تقوم بتحديث الجدول بعد عملية الحفظ لتكمل العملية بسلام
و هذا هو الكود المطلوب:




Private Sub cmd2_Click()

'نقوم في الخطوات التالية بنقل ما في مربعات النص الى الحقول التي توازيها في قاعدة البيانات
t!Name = Text1.Text
t!num = Val(Text2.Text) ' لا حظ اننا استخدمنا هذه الدالة لكي يتم قبول الحقل في حالة كونه فارغ لان هذا حقل رقمي val
t!price = Val(Text3.Text)
t.Update
End Sub




!+عريض!تعديل سجل :!-عريض!
فقط اخبر البرنامج انك تريد التعديل بهذا الكود





Private Sub cmd3_Click()
t.Edit 'تسمح هذه الخاصية بتعديل البيانات في الحقل
End Sub




!+عريض!حذف سجل :!-عريض!
عملية حذف السجل سهلة ، و لكن ماذا بعد ان تحذف السجل ؟ بالطبع يجب ان تعرض السجل التالي ، و ايضا يجب ان تراعي المشاكل التي تواجهك عند انتقالك للسجل التالي فقد لا يكون هناك سجل تالي وقد شرحنا كيف تتفادى هذه المشكلة في هذا الدرس ، و هذا هو الكود اللازم :



Private Sub cmd4_Click()
t.Delete 'لحذف سجل
t.MoveNext 'للانتقال للسجل التالي بعد الحذف
If t.EOF Then t.MoveLast ' يحل هذا الاجراء مشكلة عدم وجود سجل تالي
End Sub



النتيجة هنـــــــــــــــــا (http://www.9q9q.net/up3/index.php?f=uwt17ZZXV)


نلتقي غدا انشاء الله
في درس جديد

amawi
26-08-2006, 11:41 AM
ما شاء الله

بحق درس من اروع مايكون

استمر اخي

وجزاك الله كل الخير يا رب

بالتوفيق

سر العرب
26-08-2006, 12:32 PM
السلام عليكم

ماشاء الله

درس رائع

استمر

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

حبيبة الشيخ
26-08-2006, 02:25 PM
ماشاء الله درس ممتاز

بارك الله فيك

الحبيب لمين
26-08-2006, 05:20 PM
ما شاء الله

بحق درس من اروع مايكون

استمر اخي

وجزاك الله كل الخير يا رب

بالتوفيق

بارك الله فيك على هذا الرد

راح استمر انشاء الله

الحبيب لمين
26-08-2006, 05:28 PM
السلام عليكم


ماشاء الله

درس رائع

استمر


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


هلا سر العرب

انت بس تابع انا راح استمر في الدورة

انشاء الله

الحبيب لمين
26-08-2006, 05:32 PM
ماشاء الله درس ممتاز



بارك الله فيك


هلا حبيبة انشوفوك في السنة مرة

نورتي المنتدي

مشكورة على المرور

الحبيب لمين
27-08-2006, 01:02 PM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

لغة الإستفسارات SQL

بعد ان اخذنا قاهعدة البيانات بالتفصيل هناك شيء اخر تعمدت تجنبه وذلك
لتجنب التعقيد في الدروس انه لغة الاستفسار SQL وسوف نشرحها بالتفصيل

انشاء الله ابتداء من هذا الدرس

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

ولا مافائدة هذه اللغة ؟ كما ذكرنا في المقدمة ان فائدتها في حصر القيم التي تطابق القيم المعطاه
من قبل المستخدم و تتميز بالسهولة و الدقة و السرعة ايضا كما يمكنك التحكم بها بصوره كبيره
ويمكنك ادخال اكثر من شرط في الاستعلام الواحد، لنفرض ان لدينا جدول اسمه Tb وفيه حقلين
باسم name و number و تحتوي هذه الحقول على قيم مدخلة كما في الجدول التالي:

http://www.flashfp.net/uploader/modules/up-pic/pic/uploads/6208d0e5f4.jpg



و نريد ان نستخرج الاسماء التي ارقامها 444 فسنحتاج الى جملة استعلام بسيطة على الشكل التالي :

SQL = "select name from Tb where number = 444"


في الجملة السابقة امرنا البرنامج ان يقوم بتحديد قيم الحقل nameمن الجدول Tb عندما تكون قيم الحقل number تساوي 444 ، و وضعنا ذلك في متغير اسمه SQL

دعونا نلقي نظره على طرق الاستعلام

اذا اردت أن تستعلم عن جميع الحقول في جدول بدون شرط استخدم النجمة لتعبر عن جميع الحقول و لا تضع شرطا مثل هذا الاستعلام

SQL = "select * from Tb "



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

SQL = "select name,number from Tb "



اذا اردت ان تستفسر عن حقل معين بشرط ما استخدم الصيغة التالية:

SQL = "select name from Tb where number = 444 "



!+أحمر!يمكنك استخدام صيغ المقارنة > او < او <= او >= او <> بدلا من = !-أحمر!

عندما تريد الاستعلام و استخدام اكثر من شرط ضع بين الشرطين عبارة And او OR حسب حاجتك كالتالي:

SQL = "select name from Tb where number = 444 or number = 555 "



نلتقي غدا في درس جديد

انشاء الله

amawi
27-08-2006, 02:59 PM
رائع درس رائع بحق

بسيط وسلس ومفهوم من كل النواحي

لكن لي سؤال

هل هذه الجمل فقط من قواعد بيانات SQL ام مع اي قاعدة كانت

وشكرا جزيلا

بالتوفيق

سر العرب
27-08-2006, 03:09 PM
بارك الله فيك

الحبيب لمين
27-08-2006, 03:18 PM
السلام عليكم



هل هذه الجمل فقط من قواعد بيانات SQL ام مع اي قاعدة كانت


شكرا على السوال اخي amawi

ان هذه الجمل اذا كانت بهذا الشكل مثلا


SQL = "select name,number from Tb "


تكون خاصة بقاعدة البينات SQL

لكن يمكنك تغيير الاسم SQL الي اسم قاعدة البيانات الاخري

يشر ان تراعي شورطها من حيث علامات التنصنص او الاقتباس ...الخ


بارك الله فيك

الحبيب لمين
27-08-2006, 03:20 PM
بارك الله فيك






الله يخليك يا اخي سر العرب

جوليا بندلتون
27-08-2006, 11:42 PM
مــشكــور
مـــشكـــور
مــــشكــــور
مـــــشكـــــور
مــــــشكــــــور
مـــــــشكـــــــور
مــــــــشكــــــــور
مـــــــــشكـــــــــور
مــــــــــشكــــــــــور
مـــــــــــشكـــــــــــور
مــــــــــــشكــــــــــــور
مـــــــــــــشكـــــــــــــور
مــــــــــــــشكــــــــــــــور
مـــــــــــــــشكـــــــــــــــور
مــــــــــــــــشكــــــــــــــــور
مـــــــــــــــــشكـــــــــــــــــور
مـــــــــــــــــشكـــــــــــــــــور
مــــــــــــــــشكــــــــــــــــور
مـــــــــــــــشكـــــــــــــــور
مــــــــــــــشكــــــــــــــور
مـــــــــــــشكـــــــــــــور
مــــــــــــشكــــــــــــور
مـــــــــــشكـــــــــــور
مــــــــــشكــــــــــور
مـــــــــشكـــــــــور
مــــــــشكــــــــور
مـــــــشكـــــــور
مــــــشكــــــور
مـــــشكـــــور
مــــشكــــور
مـــشكـــور
مــشكــور
مـشكـور

الحبيب لمين
28-08-2006, 10:57 AM
مـــــــــــــــــشكـــــــــــــــــور




لا شكر على واجب اهلا وسهلا فيك بيننا
اختي جوليا

الحبيب لمين
28-08-2006, 11:36 AM
http://free.7host06.com/Hussienfun/MyFiles/GIFBasmalah.gif

http://www.l22l.com/l22l-up-4/9808f0b98e.gif

لغة الإستفسارات SQL الجزء الثاني

احبابي الاعزاء لا شك انكم اليوم تنتظروا الدرس ،
ان درس اليوم مهم لكل مبرمج يستخدم v b 6
في هذا الدرس سوف نتعلم استخدام لغة الاستفسار في تطبيق فيجوال بيسك ،
من حيث كيفية الاستفسار عن قيمة مدخلة من قبل المستخدم و كيفية وضع نتائج البحث
في listbox و combo box

كيف نتعامل مع جملة SQL في البرنامج ؟ هذا هو السؤال هو محور الدرس الذي سوف
نقوم بالإجابة عليه الان انشاء الله

يجب عليك أن تعرف الفكرة التي سنقوم بتنفيذها ، أول شيء سوف نقوم بعملية الاستعلام
و ذلك بكتابة جملة الاستعلام كما تعلمنا في الدرس السابق في المكان الذي تريده
و غالبا ما يكون في زر او عند حدث التحميل ، بعد ذلك سنحصل على نتائج الاستعلام
و لكي نقوم بقراءتها و اظهارها يجب اولا ان نخزنها في جدول ، و هنا فائدة الجدول المستعار
كما تعلمنا في الدروس الاولى حيث سنقوم بتخزين الناتج فيه ، بعد ذلك سنقوم بعرض النتائج
من الجدول ، سنفرض أن لدينا الجدول التالي :

http://www.flashfp.net/uploader/modules/up-pic/pic/uploads/a7ea274464.jpg




لكي نستعلم عن الاسماء التي ارقامها 1442 نكتب الجملة التالية :


SQL = "select name from Tb where num = 1442 "




هكذا نكون قد قمنا بالاستعلام بعد ذلك تأتي الخطوة التالية و هي تخزين النتائج في الجدول المستعار
و الذي نقوم بتعريفه ( لمزيد من التوضيح راجع الدروس السابقة) عادة في الموديول كما قمنا به
في الدروس السابقة و لنفرض أن اسمه T و ان اسم المتغير الذي قمنا بتخزين قاعدة البيانات
فيه D و التي كنا نطلق عليها القاعدة المستعارة سنكتب الامر التالي لكي نخزن نتائج الاستعلام
في الجدول :


Set T=D.openrecordset(SQL,dbopendynaset)



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

الان بعد أن قمنا بتخزين القيم في الجدول نريد ان نظهر البيانات و يمكنك اظهارها في عدة اشكال
كما تريد فيمكنك و ضعها في مربعات نص او قوائم سواء LISt او COMBO
ولكل واحد طريقة تختلف نوعا ما عن الاخر



مربع النص Text Box :

لكي تظهر النتائج في مربع النص فلن تحتاج الا لإجراء الاظهار كما تعلمنا في السابق و تقوم بكتابته بعد امر تخزين نتائج الاستعلام في الجدول

List Box :

لتضع النتائج في قائمة ListBox لن تحتاج لكثير من الخطوات فالأمر ربما أسهل مما تتصور ،

فقط تحتاج لهذا الكود :



For i = 1 To n

List1.AddItem TB!name

TB.MoveNext

Next i




قمنا بعمل تكرار بعدد الحقول لكي يتم عبئة جميع البيانات في الجدول و لقد عرفنا كيفية معرفة عدد الحقول في دروس الربط بالكود السابقة



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




ComboBox

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



استقبال المدخلات من المستخدم :



لن تستفيد حقيقيا من البرامج التي تعملها اذا لم تعرف طريقة استقبال القيم من المستخدم
ثم عمل الاستعلام عليها لانه من غير المنطقي أن يقوم المستخدم بالرجوع إليك عند كل عملية
إستعلام ،و طريقة الاستقبال هنا لها طريقة خاصة نوعا ما سنعرفها بعد قليل ، غالبا ماتقوم
باستقبال القيم من المستخدم من مربع نص Text Box و المشكلة التي تواجهنا بين المدخلات
النصية و الرقمية و يعتمد ذلك على نوع البيانات للحقل المعني دعونا نرى أمثلة على ذلك :


إفرض أنك قمت بعمل قاعدة بيانات فيها حقلين الاسم name و حددت نوع البيانات لهذا
الحقل بأنها نصية و الحقل الاخر الرقم num و حددت البيانات له بأنها رقمية ، و قمت بربط
القاعد مع البرنامج بطريقتنا التي تعلمناها و الان نريد ان نستعلم عن الرقم للشخص الذي يحدده المستخدم سنقوم في هذه الحالة بإنشاء مربع نص لكي يدخل المستخدم الاسم الذي يريده
ثم ننشأ زر يقوم المستخدم بالضغط عليه لتتم عملية الاستعلام ، و ستكون جملة الاستعلام عادية
كما تعلمنا و بدلا من ان نضع القيمة التي سنستعلم عنها سنضع القيمة التي ادخلها المستخدم
في مربع النص من المتوقع أن يكون الكود المطلوب للاستعلام في هذه الحالة التالي




SQL = "select num from tb where name = text1.text "




هذه هي الجملة المتوقعة لكنها خاطئة ، بهذه الطريقة يكون الاستعلام عن عدد لانهائي من الخانات
و هذي ان صح التعبير عيب في مربع النص و لكي نتلافى هذا الخطأ نقوم بما يسمى بالحصر على اساس نوع البيانات في name في حالتنا هذه نوع البيانات حرفية لذا تكون طريقة الحصر
على الشكل التالي:



' " & text1.text & " '


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

افرض أن المطلوب الان هو العكس ، بحيث يقوم المستخدم بإدخال الرقم و يقوم البرنامج
بالاستعلام عن الاسماء التي تحمل هذا الرقم سيكون الكود نفس السابق مع تغيير اسم الحقل
بطبيعة الحال و أيضا عدم وضع علامة التنصيص المفردة كالتالي:




SQL = "select num from tb where name = '" & text1.text & "' "



افرض أن المطلوب الان هو العكس ، بحيث يقوم المستخدم بإدخال الرقم و يقوم البرنامج
بالاستعلام عن الاسماء التي تحمل هذا الرقم سيكون الكود نفس السابق مع تغيير اسم الحقل
بطبيعة الحال و أيضا عدم وضع علامة التنصيص المفردة كالتالي:




SQL = "select name from tb where num = " & text1.text & " "



هذا كل شيء بالنسبة للجزء الثاني من لغة الاستفسار سيوضح الجدول التالي
بعض النقاط المهمة في هذا الدرس بالنسبة لإستقبال المدخلات من المستخدم ،
و في الجزء الثالث للغة الاستفسار سنتطرق لمواضيع متقدمة مثل الاستفسار من جدولين

http://www.flashfp.net/uploader/modules/up-pic/pic/uploads/59d07a0374.jpg

نلتقي غدا انشاء الله
في حلقة جديدة
من سلسلتنا

سر العرب
28-08-2006, 03:16 PM
السلام عليكم

شكرا جزيلا على هذا الجهد

:kiss: :kiss: :kiss: :kiss:

منال كمبيوتر
28-08-2006, 08:06 PM
الله يرحم والديك ::::: ؛؛؛؛؛

الحبيب لمين
28-08-2006, 08:19 PM
السلام عليكم



شكرا جزيلا على هذا الجهد



:kiss: :kiss: :kiss: :kiss:

بارك الله فيك اخي سر العرب على هذه المداخلة

الحبيب لمين
28-08-2006, 08:21 PM
الله يرحم والديك ::::: ؛؛؛؛؛

السلام عليكم

اخي ابو منال

الله يدخلك الجنة كما ادخلت السعادة الي لقلبي بهذه الكلمات

بارك الله فيك

الحبيب لمين
29-08-2006, 11:35 AM
بسم الله الرحمن الرحيم

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

لغة الإستفسارات SQL الجزء الاخير

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

افرض أن لدينا الجدولين التاليين

http://www.flashfp.net/uploader/modules/up-pic/pic/uploads/31f9aadb52.bmp

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

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




SQL = "select name from Tb1 where deptno = (select deptn form tb2 where deptname ='الهندسة') "




سؤال لماذا نقوم بهذه العملية الطويلة مع أنه بإمكاننا ان نشترط شرط على اساس رقم القسم
الذي يتوفر لدينا حيث نعرف ان قسم الهندية يحمل الرقم 1 ؟

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

في الاستعلام المتفرع من استعلام لانضع علامتي تنصيص مزدوجة على الشرط النصي بل نضع علامة تنصيص مفردة مثل هذه '


الي هنا نتتهل هذه السلسلة وسوف
نبدا في سلسلة جديدة انشاء الله في الاسبوع القادم

(ثلاثة ايام تحضير)

نلتقي غدا انشاء الله
في ملخص لكل الدروس

سر العرب
29-08-2006, 07:04 PM
السلام عليكم

بارك الله فيك

حبيبة الشيخ
29-08-2006, 09:45 PM
مـا شـاء الله

عيني بارة عليك

الحبيب لمين
30-08-2006, 11:37 AM
السلام عليكم


بارك الله فيك




بايك الله فيك على المرور الكريم هذا







مـا شـاء الله







عيني بارة عليك



شكرا حبيبة على هذه المشاركة الحاوا





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



اشكر الله واحمده قبل كل شيء لأنه هداني الي هذا المنتدي


وانا اشكر كل الاعضاء الذين شاركوا في هذه الدورة


اخبركم انه وللأسف سوف تتوقف الدروس الي حين


انتهائي من تحضير سلسلة جديدة من برنامجنا الفيجوال بيزك


و احب ان اشكر كل الاداريين في موقعنا الرائع (المنتدي)


خاصة الاخوة مراقبي المنتدي البرمجة


على كل التشجيع الوجهود من نقل / تثبيت/ تنظيم / تقييم


لاني بكل صدق اشكرهم واشكر الاعضاء الكرام الذين


ساهموا في الموضوع ولو بكلمة


ان الهدف من هذا الموضوع هو نشر العلم


اشكر الادارة على ما تبذله في سبيل نشر العام


في انتظار السلسلة القادمة


قريبــــــــــــــــــــــــــــــــــــــــــــا
انشار الله
ملاحظة : اعتذر لأني لم اذكر اسماء اعضاء او مشرفين
وذلك لعجزي عن ايجاد الكلمات المناسبة تصف حبي لهم
وامتناني لمشاركتهم او مساهمتهم في المواضيع


اخوكم الحبيب لمين

سر العرب
05-09-2006, 10:55 AM
بارك الله فيك


اتمني من الاعضاء او المشرفية


خاصة اصحاب الخبرة في هذا المجال


ان يواصلوا الدروس نيابة عن الاخ الحبيب لمين


بعد اذنة طبعا


لكي تعم الفائدة


بارك الله فيكم


خاصة اني اعتمد على هذه الدروس ( كغيري من المبتدئين)

حبيبة الشيخ
06-09-2006, 01:35 PM
السلام عليكم

يبدو انه لا يوجد تجاوب من قبل الاعضاء او المراقبين
:33: :33: :wow: :bigeyes: :33: :33:

amawi
06-09-2006, 07:00 PM
مممممممم

اسف جدا للنقطاع ولكن والله ظروف صعبة جدا

فعلا دروس روعة كالعادة اخي

يبدوا انك انت ايضا تعاني من مشاكل قاسية منعتك من الدخول

في انظارك ونتمنى انك تواصل

بالتوفيق

الحبيب لمين
07-09-2006, 12:38 PM
بارك الله فيك


اتمني من الاعضاء او المشرفية

خاصة اصحاب الخبرة في هذا المجال

ان يواصلوا الدروس نيابة عن الاخ الحبيب لمين

بعد اذنة طبعا

لكي تعم الفائدة

بارك الله فيكم


خاصة اني اعتمد على هذه الدروس ( كغيري من المبتدئين)


بارك الله فيك على حرصك على العلم

اخي سر العرب

شكرا على هذه المداخلة

الحبيب لمين
07-09-2006, 12:41 PM
السلام عليكم




يبدو انه لا يوجد تجاوب من قبل الاعضاء او المراقبين


:33: :33: :wow: :bigeyes: :33: :33:



اختي الغالية


اكيد عندهم


مثل ضروف عمل مثل ضروفي

الحبيب لمين
07-09-2006, 12:42 PM
مممممممم





اسف جدا للنقطاع ولكن والله ظروف صعبة جدا


فعلا دروس روعة كالعادة اخي


يبدوا انك انت ايضا تعاني من مشاكل قاسية منعتك من الدخول


في انظارك ونتمنى انك تواصل


بالتوفيق





الله يوفقك


مشكور على المرور

kaarouch
19-09-2006, 03:29 AM
بارك الله فيك اخي الكريم ولي عودة للموضوع ان شاء الله

الحبيب لمين
22-09-2006, 11:14 AM
بارك الله فيك اخي الكريم ولي عودة للموضوع ان شاء الله




بارك الله فيك

q8apple
07-11-2006, 08:25 PM
يعطيك العافية

تــــأخــــرت
09-11-2006, 01:06 PM
بارك الله فيك على الدروس ؟؟؟؟ بس احس اني مشتت !!!؟؟؟ مافي ترتيب للموضوع !!!

جزاك الله خير ..... وكثر الله من امثالك ...

الحبيب لمين
27-11-2006, 09:21 PM
السلام عليكم

الله يعافيك اخي q8apple
على هذا التشجيع

**************************
بارك الله فيك اخي تــــأخــــرت على هذه الكلمات الرائعة


بارك الله فيك على الدروس ؟؟؟؟ بس احس اني مشتت !!!؟؟؟ مافي ترتيب للموضوع !!!

جزاك الله خير ..... وكثر الله من امثالك ...

لكن الموضوع كان سريع شوية في التقديم

وانشاء الله راح استأنف الدروس قريبا

انا اعتذر عن هذا الانقطاع

والسبب خارج عن اردتي لأني لم اكن استطيع المشاركة في المنتي بسبب كلمة السر
التي نسيت

واقد الشكر لكل من شاعدني وخاصة حبيبة الشيخ
واكيد المشرف العام

اوعدكم بامزيد والجديد انشاء الله

بارك الله فيكم

اخوكم لمين

DR_CHANGE2000
08-12-2006, 02:09 PM
جعله الله في ميزان حسناتك

yasmenosama
08-12-2006, 07:41 PM
السلام عليكم
أخي العزيز محترف الفجيوال أريد عمل كلمة سر على قاعدة بيانات بالـ Access
وشكرا

الحبيب لمين
10-12-2006, 06:56 PM
السلام عليكم
أخي العزيز محترف الفجيوال أريد عمل كلمة سر على قاعدة بيانات بالـ Access

وشكرا




وعليكم السلام


اخي العزيز yasmenosama

لا مشكلة

انضر هذه الصورة
http://www.montada.com/attachment.php?attachmentid=270334&d=1165769743

هناك نسخة من الصورة في المرفقات

اذا واجهتك اي مشكلة انا حاضر في اي وقت انشاء الله

بارك الله فيك

Shummry
22-12-2006, 07:56 AM
أشكرك شكر جزيل اخي على سلسلة هذه الدروس
وانا جاهز لأي مساعدة في هذا الخصوص لأني تقريبا ملم ب 60% من الفجول بيسك
ولكن
لماذا لا تتحول الى لغة البرمجة الجديدة VB.Net
لأنها افضل وهي الجديدة والمطلوبة حاليا
انا اتفق معك انها الاصعب ولكن بحسب المميزات الموجودة بها فهي جيدة وافضل من ال VB6
على العموم انا عندي لك سؤال جدا صعب وراح اطرحة اذا تفاعلت معي
طبعا انا لا اختبرك لأني اساسا لم اجد جوابا له
على العموم بانتظار ردك
تقبل تحياتي

الحبيب لمين
22-12-2006, 06:19 PM
السلام عليكم


اخي الكريم SHUMMRY


انا اشكرك على مداخلتك


اما بما بخص VB.NET


فانا حضرت موضوع اكبر من هذا


لكن انتضر انه يمن عليا الله واجد احد يعطيني


برنامج بحول من امتداد DOC الي متداد PDF

ويكون يدعم العربية


واما ما يخص سؤالك فانا اقول لك بجد شوقتني


يا ريت ما تطول عليا وتعطينى السؤال


وبصدق اتمني يكون صعب


ليس تفاخر لكن احب اجرب معلوماتي


بارك الله فيك

Shummry
01-01-2007, 02:00 AM
اهلا وسهلا ومرحبا أخي الحبيب
شكر الله لك مساعدتك للشباب
وسؤالي صراحة يحتاج الى جلسة حوار وأخذ وعطاء
لذلك اذا لم يكن لديك مانع
ان تأخذ مسنجري وتضيفني منها نحاول نحل السؤال مع بعض
ومنها نتعاون في اكمال هذه السلسلة ومواضيع اخرى
اذا قبلت ذلك فإني سأرسل لك الايميل في رسالة خاصة
وتقبل فائق احترامي
اخوك أبو أشواق
عيسى الشمري

Shummry
01-01-2007, 02:11 AM
بالنسبة اخي الى طلبك انا اسف لم استطع ان اجد لك البرنامج المطلوب
وجدت عدت برامج ولكنها لا تدعم العربية
وان دعمتها فليس بشكل تام فإنها تأتي بالحروف مقلوبة واخطاء اخرى كثيرة من هذا القبيل
فإذا كان لديك اخي وثائق بالوورد فلم لا تضعها هنا مباشرة وبامتداد وورد او زيب مضغوط
وشكرا

RAAAAD
01-01-2007, 11:19 AM
برنامج بحول من امتداد DOC الي متداد PDF


إليك هذا البرنامج ... وهو مجاني .. ويدعم اللغة العربية ;)

http://www.primopdf.com/

بعد تنزيلة إذهب إلى الملف الذي تريد تحويلة .. وإضغط على print

ثم غير الـ printer name إلى PrimoPDF


ثم OK

RAAAAD
01-01-2007, 11:21 AM
نسيت أن أشكرك على الدورة .. :)

بالفعل هي جمليلة .. ومفيدة

بالتوفيق

الليدي أوسكار
17-02-2007, 07:03 PM
مجهود كبير وجميل تشكر عليه

الله يجعله في ميزان حسناتك

اختك في الله يا دوبك تفك الخط في عالم البرمجة !!

وكلي شوق دروسك على فيجوال بيسك ستديو دوت نيت ( على ما فهمت ؟ )

وان شاء الله اكون من التلاميذ المتابعين لدروسك

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

الحبيب لمين
25-02-2007, 07:21 PM
مجهود كبير وجميل تشكر عليه

الله يجعله في ميزان حسناتك

اختك في الله يا دوبك تفك الخط في عالم البرمجة !!

وكلي شوق دروسك على فيجوال بيسك ستديو دوت نيت ( على ما فهمت ؟ )

وان شاء الله اكون من التلاميذ المتابعين لدروسك

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



يارك الله فيك

وابشرك انا اليوم انشاء الله راح انواصل

دورتنا

وانا اسف على تأخري


الدرس سوف يكون اليوم انشاء الله

الحبيب لمين
25-02-2007, 08:40 PM
السلام عليكم ورحمة الله وبركاته

اخوتي الكرام

انا افضل ان نستخدم الفيحوال بيزك مباشرة


ونبتعد عن الشرح النظري

درس اليوم هو درس الالة الحاسبة

كما في الشكل

http://www.m5zn.com/uploads/61b5e3cb7c.jpg

والان

الليبل الاول اكتب فيه العنوان (الة حاسبة)


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


دعها فارغةtext من خاصية


ضع علامات الالة الحاسبة من خاصية CAPTION

وهي + - X ÷

الليبل الثاني اتركه فارغا لتظهر فيه نتائج العمليات

الان اضف كتابة الكود التالي

اذهب للفورم وانقر مرتين على ليبل اثنين والصق الكود التالي



Private Sub Label2_Click()
Label2.Caption = Val(Text1.Text) + Val(Text2.Text)
End Sub



الان انقر مرتين على زر الزائد والصق الكود التالي



Private Sub Command1_Click()
Label2.Caption = Val(Text1.Text) + Val(Text2.Text)
End Sub
انقر على زر الطرح واكتب او الصق الكود التالي



Private Sub Command3_Click()
Label2.Caption = Val(Text1.Text) / Val(Text2.Text)
End Sub

انقر على زر القسمة واكتب او الصق الكود التالي



Private Sub Command3_Click()
Label2.Caption = Val(Text1.Text) / Val(Text2.Text)
End Sub
الاخير زر الظرب انقر مرتين لتخرج صفحة الكود والصق مايل



Private Sub Command4_Click()
MuValue = Val(Text1.Text) * Val(Text2.Text)
Label2.Caption = "" + Str(MuValue)


End Sub



او اذا كنت من لا ترغب في التعب
انشا فورم جديد
ثم انشا خمسة ازرار ( لا تكتب لها اسم )

وعدد 2 ليبول
وعدد 2 TEXT

وضع الفورم هذا الكود





Private Sub Command1_Click()
Label2.Caption = Val(Text1.Text) + Val(Text2.Text)
End Sub

Private Sub Command2_Click()
Label2.Caption = Val(Text1.Text) - Val(Text2.Text)
End Sub

Private Sub Command3_Click()
MuValue = Val(Text1.Text) * Val(Text2.Text)
Label2.Caption = "" + Str(MuValue)
End Sub

Private Sub Command4_Click()
Label2.Caption = Val(Text1.Text) / Val(Text2.Text)
End Sub

Private Sub Command5_Click()
End
End Sub

Private Sub Command6_Click()
Text1 = Text
Text2 = Text
Label2 = Text

End Sub



Private Sub Form_Load()
Command1.Caption = "&+"
Command2.Caption = "&-"
Command3.Caption = "&X"
Command4.Caption = "&÷"
Command5.Caption = "&EXIT"
Command6.Caption = "&AC"
End Sub


Private Sub Label2_Click()
Label2.Caption = Val(Text1.Text) + Val(Text2.Text)
End Sub


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


نلتقي غدا انشاء الله



الدرس القادم انشاء الله

كيف تصمم متصفح خاص بيك

مثل Internet Explorer

الليدي أوسكار
27-02-2007, 02:52 PM
اخي الكريم هذا الدرس لأي أصدار للفيجوال ؟؟
لأن الاصدار اللي عندي
هو : فيجوال استديو دوت نت 2003

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

الحبيب لمين
27-02-2007, 06:30 PM
اخي الكريم هذا الدرس لأي أصدار للفيجوال ؟؟
لأن الاصدار اللي عندي
هو : فيجوال استديو دوت نت 2003

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



انا استخدم vb6

لأنه احسن من vb.net


اتمني انك تتابع معانا الموضوع

وتستفيد منه

بارك الله فيك

الحبيب لمين
04-03-2007, 01:40 PM
السلام عليكم ورحمة الله وبركاته

اليوم سوف نبرمج متصفح للأنتر نت

انشاء الله
افتح فورم جديد وضع عليه ستة ازارير كوماند ومن الخصائص سمة كما تشاهد في الصورة




http://www.7mbc.com/up/upb8/7mbc_1056595757.JPG




الخلف الامام توقف البداية تحديث اغلاق

اختر من الادوات اداة كمبو بوكس التي سنكتب فيها عناوين المواقع

ضع اداة العنوان واكتب عليها العبارة الموجودة على الصورة

اداة microsoft internet conttrols

ولكي تختارها اضغط على مفتاح ctrl+T

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

اسم الاداة microsoft internet conttrols

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

حاول ترتيب الادوات مثل الصورة

كتابة الكود
اقر على الفورم مرتين لكتابة الكود التالي في حدث عند التحميل



Private Sub Form_Load()
WebBrowser1.Navigate "www.yahoo.com"
End Sub



انقر مرتين على زر الخلف لكنابة الكود التالي



Private Sub Command1_Click()
WebBrowser1.GoBack
End Sub


انقر على زر الامام مرتين واكتب الكود


Private Sub Command2_Click()
WebBrowser1.GoForward
End Sub



وهذا كود توقف




Private Sub Command3_Click()
WebBrowser1.Stop

End Sub



وهذا كود زر البداية


Private Sub Command4_Click()
WebBrowser1.GoHome
End Sub

وهذا كود زر تحديث


Private Sub Command5_Click()
WebBrowser1.Refresh
End Sub


وهذا كود زر اغلاق المتصفح


Private Sub Command6_Click()
End
End Sub


الان انقر مرتين على الكمبو بوكس واكتب الكود التالي


Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
WebBrowser1.Navigate Combo1.Text
End If
End Sub


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

اتمني اكون وفقت في ايصال المعلومات لكم

drbmsh
08-03-2007, 05:08 PM
كيف احصل على الملف النهائي لبرنامج قمت بتصميمه

الحبيب لمين
08-03-2007, 05:57 PM
كيف احصل على الملف النهائي لبرنامج قمت بتصميمه


هل تقصد الملف التنفيذي للبرنامج

و ما يسمي exe

او السورس كال يسمنه في بعض الاحيان

ام ماذا بالتحديد
:33::33::33:

الحبيب لمين
08-03-2007, 06:34 PM
عموما شاهد المرفقات

بها جواب سؤالك انشاء الله

osamax
08-03-2007, 11:04 PM
ما صار شي عملت مثل ماقلت بس اكتب موقع google مثلا يطلع error

drbmsh
09-03-2007, 02:13 AM
الف شكر وللكن للأسف الشديد هذة الخاصية غير نشطة في قائمةfiles لدي
make project exe

drbmsh
09-03-2007, 12:11 PM
ممكن لينك مباشر لنسخة visual basic 6 كاملة

الحبيب لمين
21-03-2007, 05:40 PM
ممكن لينك مباشر لنسخة visual basic 6 كاملة

السلام عليكم

اخي العزيز

لم اتمكن من رفع نسخة من البرنامج

لكن يمكنك مراجعة هذا الموضوع (http://www.montada.com/showthread.php?t=452382)

S.N.I.P.E.R
22-03-2007, 08:00 AM
اخى العززيز "الحبيب لمين"

الصراحة فى كود مدوخنى من فترة كده

وهو كود الحفظ يعنى لما واحد يشتغل على البرنامج وقبل مايقفله البرنامج يحفظ الإعدادات اللى عملها المستخدم

ارجو انك تكون فهمتنى صح :)

والى الأمام

الحبيب لمين
22-03-2007, 07:29 PM
اخى العززيز "الحبيب لمين"

الصراحة فى كود مدوخنى من فترة كده

وهو كود الحفظ يعنى لما واحد يشتغل على البرنامج وقبل مايقفله البرنامج يحفظ الإعدادات اللى عملها المستخدم

ارجو انك تكون فهمتنى صح :)

والى الأمام

السلام عليكم

اخي العزيز

على ضوء ما فهمت

تريد كود الحفظ

جرب هذا




Private Sub Command1_Click()
'حفظ الاعرادات
SaveSetting App.EXEName, "FORMS", "WIDTH", Form1.Width
MsgBox RESULT

End Sub

Private Sub Command2_Click()
'استرجاع الاعدادات
RESULT = GetSetting(App.EXEName, "FORMS", "WIDTH", "500")
MsgBox RESULT


End Sub



اذا لم يكن هذا هو الكود المطلوب

ارجوا شرح بيسط للكود

ودقائق ويكون جاهز انشاء الله

kaarouch
22-03-2007, 10:42 PM
بارك الله فيك اخي الكريم
لكن لو تضع الدورة في ملف pdf لكان اروع اخي
الدروس في الفحة الثانية لاتعل الصور فيها
وجزاك الله خيرا

الحبيب لمين
24-03-2007, 11:33 AM
بارك الله فيك اخي الكريم
لكن لو تضع الدورة في ملف pdf لكان اروع اخي
الدروس في الفحة الثانية لاتعل الصور فيها
وجزاك الله خيرا

شكرا كل اخي العزيز على هذه الملاحظة وانا الان بصدد انشاء ملف PDF للدورة ترقبه قريبا انشاء الله

ابتسامــــــه
24-03-2007, 07:29 PM
يعطيك العافيه أخويه

و بارك الله فيك على الدروس المفيده

إن شاء الله أبدا أطبق الدروس

إذا عندي سؤال ما بتردد وبسألك ^_^


:)

الحبيب لمين
24-03-2007, 08:35 PM
يعطيك العافيه أخويه

و بارك الله فيك على الدروس المفيده

إن شاء الله أبدا أطبق الدروس

إذا عندي سؤال ما بتردد وبسألك ^_^


:)


الله يعافيك النشاء الله

انا منتظر اسئلتك

اذا احتجتي مساعدة انا جاهز

maskzorro
26-03-2007, 01:50 AM
thaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanks

الحبيب لمين
26-03-2007, 06:30 PM
not at all

majd_1232002
27-03-2007, 11:21 AM
اخي الكريم
اعرف ان الموضوع مو في محلة
ماقدرت ارسلك خاص لأن الأدارة منعت إرسال الرسائل الخاصة لمن تقل عدد مشاركاتهم عن 500
اشكرك اخي من كل قلبي:kiss: على مساعدتك لي وإن شاؤ الله ارد لك الجميل في يوم من الأيام
واتمنى ان تقوم بأرسال نوع الحماية في الكود وطريقة إستعمال الفانكشنز الي فية
والف شكر حبيبي:)

الحبيب لمين
27-03-2007, 11:40 AM
السلام عليكم ورحمة الله وبركاته




تلبية لطلب بك أخي الحبيب





والغالي على قلبي majd_123002





أقدم كودات الحماية + الشرح





فقط انتظر 30 دقيقة بينما احصر الكودات والشرح

الحبيب لمين
27-03-2007, 12:20 PM
السلام عليكم

الحمد لله انتهي عملي في الكودات

حضرت 7 اكواد

للحماية

اذا كانت لديك فكرة جديدة

ارجوك اكتبها في هذا الموضوع

وانا انشاء الله راح احولها الي كود

ملاحظة :- لقد ترجمة فكرته الالي الي كود وستجدها في فورة اسمه save_data

لدي فكرة جديدة ولكتها غير مكتملة عن الحماية

اذا اكلتها في هذه الايام سوف ارفعها لك انشاء الله

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

كل كود في فورم يحمل اسمه

اذا اردت تجريبها

انسخ كل مود في فورم جديد في عمل جديد

ولاحظ النتائج

انتمي ان اكون قدمت لك المعلومات المطلوبة

majd_1232002
27-03-2007, 09:57 PM
مشكور اخوي على تفاعلك
وعندي فكرة
برنامج يقوم بالأتصال بموقع على النت ويقراء محتوياتة التي تمثل ما يجب على البرنامج عملة
مثل الأقفال او العمل بشكل طبيعي كما يرسل بيانات خاصة بالعمليات التي قام بها لكي يتمكن الشخص
من الأطلاع عن بعد عن عمل البرنامج

majd_1232002
27-03-2007, 10:00 PM
لقد قمت بفتح موضوع جديد يختص بطرق حماية البرامج
فما هو رايك ان نقوم جميعا بطرح الأفكار والأكواد ونتناقش فيها كل بحسب خبرتة وقدرتة:)

الحبيب لمين
28-03-2007, 11:46 AM
لقد قمت بفتح موضوع جديد يختص بطرق حماية البرامج
فما هو رايك ان نقوم جميعا بطرح الأفكار والأكواد ونتناقش فيها كل بحسب خبرتة وقدرتة:)
طبعا موافق

لكن اين الموضوع انا لم اجده

الحبيب لمين
28-03-2007, 11:52 AM
مشكور اخوي على تفاعلك


لاشكر على واجب يا حبيبي



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


انت تعني بهذا البرنامج ما يعرف بــ update

هذه فكرة تعتمد على نوع البرنامج

وهل يحتاج الي تحديث مستمر مثل برامج الحماية من الفيروسات

والبرامج القوية والكبيرة

ولكن اذا وضعنا ايدينا في بعضها

يمكننا انتاج برامج ( لن تنافس الشركات الكبري لانه عمل المحترفين وليس الهوات)

ولكن يمكننا ان ننتج برامج تفيدنا بشكل كبير