مشروع برنامج محادثة, باستخدام مكونات indy
#31
جميل اخي o15s19, بارك الله لك على تصحيحي, Smile

طيب اظن بما انه العمل الأكبر هو تقربا من جهة الكلينت و الله اعلم,

اقترح وصل قآعدة البيانات بالسرفر,

ما هي الأمرور التي يجب ان تكون بالنسبة للمعرفات,Users

UserId
UserName
UserPassword
UserDisplayName
UserStatus
UserEmail


هل من شئ ناقص الآن ؟
هل يجب وضع مثلا UserIP , UserPort في قاعدة البيانات وتعديلها عند عمل LogIn للمستخدم ؟

بارك الله لكم
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#32
يجب أن نتفق بالبداية على المتغير الأساسي بالبرنامج (اسم - أي بي - كود - ايميل)و هو الحاكم بحال التشابه مثلا لا يجوز العمل بنفس الايميل أو الاسم أو ال ID من جهاز أو أكثر من جهاز

بالنسبة للمعلومات الأخرى فهي حسب حاجتنا و حسب الخيارات التي يمكننا وضعها بالبرنامج مثلا (على سبيل المثال نقوم بأخذ Mac Address و ذلك للاستفادة من ميزة ال WOL أو Wake on Lan ) و هلم جرا...
الرد
#33
الإسم طبعا هو الأساس والله اعلم, وكذلك الميل,
يعني, لا يمكن الدخول بنفس الإسم مرتين, ولا يمكن التسجيل بنفس الميل مرّتين,

حسناً, صممت قآعدة بيانات, ووصلتها بالمشروع, يمكن طبعا اضآفة المزيد من الأمور فيما بعد,
سأجري بعض التحسينات و ارفع المشورع من جديد ان شاء الله تعالى, (ان لم يكن اليوم, فغداً ان شاء الله)

ما قول الأخ الشقروني؟ هل من شئ يجب اخذه بالإعتبار؟ (فخبرتك ما شاء الله عليها, اللهم بارك)

بارك الله لكم,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#34
اخوآني الكرام, في المرفقات المشورع,

التعديلات هي,
اضآفة UClientCore للمشروع,
اضآفة sqlite3_db_core للمشورع, (وحدة قآعدة البيانات)
حاولت وصل قآعدة البيانات من خلال Layers لكن لم افلح كثيرا, هناك خلل, ربما احد الإخوة يدلّني عليه ان تمكن منه,,

استخدمت مكونات ال DISQLite3 موجودة هنا,, يمكن تغيّيرها ان اردتم, لكن هذا ما استطعت عمله Smile

بالتوفيق,


الملفات المرفقة
.rar   Delphi4arab_Chat_03.rar (الحجم : 12.92 KB / التحميلات : 167)
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#35
مرحبا ,
اخواني انا جديد بالبرمجة بأستخدم دلفي ولكن لدي خبرةطويلة بالبرمجة بأستخدم برامج اخرى كــ C# و PHP و JAVA
لكن اصبحت اميل لأستخدام دلفي لأنة لا يحتاج الى فريم ورك
وانصحكم هنا بأستخدام MYSQL و PHP للتحكم بالبرنامج خصوصا السيرفر
وهو لا يحتاج مكونات فيمكن ربط Delphi ب MYSQL دون الحاجة الى اي مكون و MYSQL بسيطة جدا
واتمنى ان اكون قد افدتكم بالمشروع
الرد
#36
اولا, اهلا وسهلا ومرحبا بك معنا اخي DaRk-StAr
جميل اخي الكريم, بالنسبة لإدخال لغة ال PHP في المشروع فلا اظنّه وآرد وإن كان ربما اسهل ولكن المشروع الهدف منه التعلم, وهذا منتدى متخصص في الدلفي, وهذا يعني انه من الوآرد جدّا ان الكثير فينا لا يعرف لغة ال php وانا اوّلهم,
إقتباس :نحاول الإلتزام بلغة الدلفي قدر المستطاع, او بالأحرى كلّيّا,

إقتباس :وهو لا يحتاج مكونات فيمكن ربط Delphi ب MYSQL دون الحاجة الى اي مكون و MYSQL بسيطة جدا
حقّا ؟ جميل,
ما رأيك ان تعمل لنا درس مستقل بهذا الشئ واكون لك من الشآكرين ؟ Smile (يمكن فتح موضوع في قسم دروس للمبتدئين)

بارك الله لك اخي الكريم وزادك من فضله,
بالتوفيق,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#37
مرحبا،

أقدر فيكم روح المبادرة و النشاط لبدء العمل.

لا يسعني تجربة الكود لأن نسخة الدلفي التي أستخدمها الآن هي رقم 6.

بعض النقاط أود سردها (بدون ترتيب):

1- يجب مداومة تنقيح التوليف = الكود و تنظيفه، خاصة و نحن في بداية المشروع ، من ذلك:
إزالة الأكواد الميتة التي ليس لها استخدام.
إزالة الإشارات لملفات INDY من الفورم الرئيسية (uses)
تسمية المتحكمات التي لم تسمى بعد، مثل عناصر لائحة الأوامر، و الفورم الرئيسية.
عند التسمية حبذا (كلما أمكن ذلك) استخدام الأساليب النمطية المتعارف في مجتمع دلفي.
كود :
http://www.econos.de/delphi/cs.html#Components_Instance
http://edn.embarcadero.com/article/10280
http://jcl.delphi-jedi.org/documents/styleguide.html
http://edn.embarcadero.com/article/27983

2- مسار قاعدة البيانات يمكن حفظه في ملف نصي خارجي. (ini أو xml)
3- ملاحظة امكانية وجود ملفات كود مشتركة بين امشروعي السيرفر و الكلاينت.
4- لا ننسى إنهاء الكينونات التي يتم إنشاؤها بالأمر Create.
5- خلق الكينونات قبل إستخدامها : مثلا DISQLite3Database1 لا يوجد ما يشير إلى إنشائها.

6- تحاشي المخاطر مبكرا:
هل تم تجربة الاتصال الفعلي بين السيرفر و أكثر من محطة و تبادل البيانات بينها.
هذه التجارب تكون في بدايات المشروع؟ للتأكد من سيطرتنا على التقنية وقدرتها على تلبية ما نحتاجه،
وكذلك لترسم لنا خريطة مسبقة لكيفية تنظيم الاجرائيات في ملفات البرنامج.
يعني يجب أن نقوم منذ الآن بتجربة و تنفيذ الحالات الرئيسية في البرنامج: طلب الاتصال من الكلاينت،
تأكيد الاتصال من السيرفر، تأكيد تبادل البيانات بين كلاينت و آخر مباشرة أو عبر السيرفر، خروج الكلاينت
من خدمة السيرفر.
نفس الأمر فيما يخص قواعد البيانات، يتم تجربة الحالات التي نحتاجها مسبقا، حتى نكون متأكدين من أن التقنية
التي اخترناها ستلبي احتياجاتنا، و نتأكد أيضا من سيطرتنا عليها، و التقليل من المفاجآت غير المتوقعة .
يعني أن النقاط التي تكون حيوية وقد تشكل عناصر مخاطرة نهاجمها هي أولا.


7- بالنسبة لعزل مكونات البرنامج حسب مسؤوليتها و بناء المشروع على شكل طبقات Layers :
تخيل أننا نريد الآن في مشروعنا هذا أن تستخدم ثلاث أنواع من تقنيات التعامل مع الشبكات والاتصال،
بحيث تكون خيارا متاحا لمشغل البرنامج: الخيار الأول استخدام مكونات INDY ، و الخيار الثاني استخدام
مكونات DirectX و الخيار الثالث استخدام مكونات Internet التي تأتي مع دلفي.
بالتأكيد، سوف تعيد حساباتنا و نعيد تنظيم الكود بحيث تضمن إتاحة هذه الخيارات الثلاثة ، و سوف نجد
أنفسنا تلقائيا مضطرين لتقسيم برنامجنا إلى مناطق أو ملفات معزولة كل حسب تخصصها.

بالتوفيق.
الرد
#38
السلام عليكم

أولا ألف شكر للأخ خالد على ملاحظاته القيمة

التغييرات التي تمت على D4A Chat

*الكثير من التحسينات المرئية (ما بعرف إذا زوقي حلو :kickSmile
+العمل على قاعدة البيانات (اصبح بالإمكان انشاء و فتح و إغلاق قاعدة البيانات)
+تحسين عملية ايقاف السرفر(اتمنى أن يكون ملائما )
+بناء وحدة الكلاينت(قريبا و سيصبح جاهز للاتصال)
+وضع ايقونة للكلاينت

طبعا نظام قاعدة البيانات يحتاج للتعديل قليلا و سيعمل 100%

إن شاء الله اليوم بتصل الكلاينت مع السرفر لأول مرة في التاريخ في برنامج D4A
سلامي


الملفات المرفقة
.rar   Delphi4arab_Chat_04.rar (الحجم : 108.78 KB / التحميلات : 292)
الرد
#39
بارك الله لكم اخي الشقروني و اخي o15s19 ,,

ملاحظات جداً رآئعة وثمينة من الأخ الشقروني, وتعديل غآية في الجمال من الأخ o15s19,

بخصوص قآعدة البيانات, (لا ادري حقيقة لكن هي الشئ الوحيد الذي يقلقنيSad)

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

إقتباس :الجدول الأول يخص الأعضاء Users :
رقم العضو
اسم المستخدم
كلمة المرور
تاريخ التسجيل
البريد الالكتروني
حالة الاتصال (نعم/لا)

الجدول الثاني لقائمة الأصدقاء:
رقم العضو
رقم الصديق
صديق (نعم/لا)

الجدول الثالث للشات :
رقم المرسل
رقم المرسل إليه
تاريخ الارسال
نص الرسالة
وصلت(نعم/لا)

جدول اختياري معلومات Profile :
رقم العضو
العمر
الصورة
الجنس
البلد
الاهتمامات

بالنسبة للأصدقاء يمكن البحث عنهم في قائمة الأصدقاء حسب رقم العضو ثم التأكد من حالة العضو هل هو صديق =نعم اذا كان لا فهو في قائمة الحظر
وهنا فان تكوين هذا الجدول سيسهل كثيرا عملية البحث عن الأصدقاء وكذلك عملية الحذف والحظر

على كل حال, كنت مشغولا في اليومين المآضيين, وربما غداً وبعد غد ايضى,
لكنني سأحاول التطوير ولو بشئ بسيط ان شاء الله,

هنا ايضى سؤآل,
فيما يخص حالة السرفر كان هناك shape يعطي الّون الأخضر او الأحمر على الفورم حسب الحآلة,
ارى انك اخي الكريم عدلت حتى يتم انشآء ال Shape في وقت التنفيذ,
السؤآل هو, هل هو افضل من النآحية العمليّة ؟
يعني اسرع بالنسبة لتنفيذ الكود مثلا ؟ ام من نآحية التنظيم ؟ او شئ آخر؟

بالتوفيق اخوآني,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#40
al-mob4rm3g كتب :حالة السرفر كان هناك shape يعطي الّون الأخضر او الأحمر على الفورم حسب الحآلة
السلام عليكم
لماذا لا تستعمل أيقونات أخي؟
الرد


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


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف