مشاهدة النسخة كاملة : سلسلة دروس في الفيجوال بيسك
الحبيب لمين
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 ß نختار reference ß ونبحث عن Microsoft word 10.0 object library ß ثم نضغط 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
هذه فكرة تعتمد على نوع البرنامج
وهل يحتاج الي تحديث مستمر مثل برامج الحماية من الفيروسات
والبرامج القوية والكبيرة
ولكن اذا وضعنا ايدينا في بعضها
يمكننا انتاج برامج ( لن تنافس الشركات الكبري لانه عمل المحترفين وليس الهوات)
ولكن يمكننا ان ننتج برامج تفيدنا بشكل كبير
جميع حقوق برمجة vBulletin محفوظة ©2025 ,لدى مؤسسة Jelsoft المحدودة.
جميع المواضيع و المشاركات المطروحة من الاعضاء لا تعبر بالضرورة عن رأي أصحاب شبكة المنتدى .