![]() |
|
مشروع برنامج محادثة, باستخدام مكونات indy - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي الأخرى (https://delphi4arab.net/forum/forumdisplay.php?fid=4) +--- قسم : مشاريع دلفي الجماعية (https://delphi4arab.net/forum/forumdisplay.php?fid=24) +--- الموضوع : مشروع برنامج محادثة, باستخدام مكونات indy (/showthread.php?tid=1493) |
مشروع برنامج محادثة, باستخدام مكونات indy - o15s19 - 23-03-2010 السلام عليكم التغيرات الحاصلة بتاريخ 23-3-2010 +تم الانتهاء من الكشف التلقائي للسرفر -القليل من الإصلاحات مشروع برنامج محادثة, باستخدام مكونات indy - o15s19 - 23-03-2010 السلام عليكم الجديد بتاريخ 24-3-2010 +تجهيز السرفر لاستقبال الكلاينت +خيار جديد لمعرفة الأجهزة المتصلة بالسرفر +تم اضافة مكتبة مجانية للحصول على Broadcast address المسخدم في ميزة الكشف التلقائي للسرفر -مزيد من الإصلاحات بنظام الكلاينت الأن اصبح الكلاينت قادر على الاتصال بالسرفر و بدوره اصبح السرفر قادر على معرفة الأجهزة المتصلة سلامي مشروع برنامج محادثة, باستخدام مكونات indy - shagrouni - 24-03-2010 السلام عليكم، شكرا على المجهود. مشروع برنامج محادثة, باستخدام مكونات indy - shagrouni - 24-03-2010 السلام عليكم مرحبا أخيo15s19 أشكرك على الجهد المبذول في مشروع المحادثة. لم أستطع تجربة البرنامج (بعض مكونات اندي المستخدمة في المشروع ليست متاحة لدي في دلفي 6) ولكن بالنظر إلى الكود أرى أنك تقوم بعمل مميز. لي بعض الملاحظات، أتمنى أن يتسع وقتك لها. طبعا الذي يتفرج ينظر بطريقة تختلف عن تلك التي ينظر بها المبرمج الغارقة يداه في العمل، ملاحظاتي تتركز على الناحية التنظيمية لتوليف البرنامج، وتقع في مجال ما يسمى ب، Refactory أي عمليات المراجعة والتنقيح وإعادة الضبط،والتي ينصح أن تتم بشكل دوري وفترات متقاربة: تغيير إسم الوحدة uNetManager إلى uServerNetManager أو uNetManager_Server(أعتقد الأخيرة أوضح) للتفريق مع وحدة بنفس الاسم في برنامج الكلاينت TServer تغير إلى TVirtualServerProvider ويكون إسم المتغير من نوعه ServerProvider بدلا من Server TChatServer تغير إلى ِTAppChatServer ويكون إسم المتغير AppChatServer بدلا من ChatSever في نسخة السيرفر يوجد TClient إذا كان المقصود به المتصل الحالي فأرى إعادة تسميته إلى TGuestClient أو TConnectedClient وهكذا الأمر بالنسبة لنسخة الكلاينت: uNetManage_Client TVertualClientProvider بدلا من TClient TAppChatClient بدلا من TChatClient AppChatClient بدلا من ChatClient المتغير Server والمنغير Client في نسخة الكلاينت أرى أن يعاد تسميتهم كالتالي: ServerProvider و ClientProvider حيث أنهما سيشيران إلى توع التقنية المستخدمة في كل منهما. أرى وضع المتغير Server أو ServerProvider (إذا تغير اسمه) داخل قسم private في صنفية AppChatServer فهذه الصنفية هي الوحيدة التي تستخدمه والمسئولة عن خلقه واتلافه. الوحدة uNetManager يجب أن لا تعلم بتفاصيل التقنية المستخدمة في الربط، وبالتالي يجب أن لا تكون هناك أية إشارة لملفات اندي في قسم uses لديها. ويتبع هذا أن الصنفيات في هذه الوحدة يجب أن لا تستخدم مباشرة تقنية اندي أو أية تقنية ربط أخرى، مثلما هو حاصل الآن مع صنفية TClient . إذا تمت الأمور بهذا الشكل يمكنني عندها أن أعزل الملف uNet_INDY الذي لا أملك مكوناته واستخدم أو أبرمج تقنية أخرى للربط. أيضا الوحدة uNetManager يجب أن لا تخاطب مباشرة الوحدة uAppManager ، ويجب أن لا تعلم عنها شيئا. قهي مثل العبد الأعمى ينفذ الأمر و لا يعلم من يأمره. (افترض أن هناك برنامج آخر لمبرمج آخر وبريد أن يستفيد من خدمات هذه الوحدة.) نفس الكلام ينطبق على الوحدة uAppManager ، فهي تستخدم مباشرة أوامر خاصة باندي وتتخطى الوحدة uNetManager التي يفترض أن تكون المسئول الوحيد عن أمور الربط والاتصال. كما أنها تخاطب مباشرة الشاشة الرئيسية في وحدة D4A_Serverfrm. الوحدات uNet_Broad و uMisc باعتبارهما خاصتان باندي هل يمكن ضمهما إلى وحدة uNet_INDY. طبعا نفس المبادئ السابقة تعمم على باقي الجوانب كقواعد البيانات. سؤال: هل يمكن رفع مستوى التنظيم (أو التعقيد!) بجعل أوامر وحدة uNetManager ضمن صنفية نسميها TNetManager_Server أخيرا، المبرمج هو صاحب الكلمة العليا، لتنفيذ ما يراه مناسب في الوقت الذي يراه مناسب. وتقديري مرة أخرى. مشروع برنامج محادثة, باستخدام مكونات indy - AL-MOB4RM3G - 07-04-2010 السلام عليكم, اولا, اعتذر وبشدة عن عدم مشآركتي في هذا الموضوع لفترة ليست بالقصيرة, لكن لظروف والله المستعان, ثآنيا احيّي الأخ o15s19 و الأخ الشقروني كثيرا على المثآبرة, و التقدم في المشروع, فجزآكم الله كل خير, بالنسبة لقآعدة البيانات للسرفر, عملت مثآل وضعته هنا, يمكن ان نستفيد منه في هذا المشورع ![]() ولتكن هذه مشآركة بسيطة منّي على الأقل, وعلى كل حال, فأظن انني يمكنني الآن ان اصمم قآعدة بيانات لهذا المشورع, انتظروني مسآء ان شاء الله, بالمنآسبة, ذكر الأخ عبد العزيز في مشآركة سآبقة, إقتباس :بعض الجداول الخاصة بالعضو يمكن وضعها بClient لتقليل الضغط على Serverهل هناك مثآل عن ما هي المعلومات التي يجب او يفضّل ان تخزّن عند ال كلينت ؟ بالتوفيق اخوآني, مشروع برنامج محادثة, باستخدام مكونات indy - AL-MOB4RM3G - 07-04-2010 السلام عليكم من جديد, كبدآية, تم انشآء القآعدة وتم انشآء جدول اسمه UsersTable, بدآخله تم انشآء عدة Columns لتلبية معلومات التسجيل لمعرف جديد او لمستخدم جديد, طبعا نوع ال Columns حسب الحآجة, فهناك integer و هناك Text وهناك Date وهناك ايضى image ليتم تخزين الصورة الشخصيّة فيه, امّا بالنسبة لعملية التسجيل, يعني ال Register process فلا اعلم كيف يكون, اتذكر الملف الذي ارسلته لي مرة اخي الكريم o15s19 عن كيفية عميلّة التسجيل, لكن لم اعرف في الحقيقة كيف استخدمه, بإنتظآركم جزاكم الله خيرا, مشروع برنامج محادثة, باستخدام مكونات indy - o15s19 - 12-04-2010 السلام عليكم أسف لغيابي و لتأخري بالرد بسبب المشاكل و الامتحانات المهم قمت بإعادة تنسيق السرفر وفقا لمقترحات أخي خاالد و أتمنى دائما أن يقدم لنا المزيد من هذه المقترحات و لكن لفت انتباهي شئ معين shagrouni كتب :أيضا الوحدة uNetManager يجب أن لا تخاطب مباشرة الوحدة uAppManager ، ويجب أن لا تعلم عنها شيئا. قهي مثل العبد الأعمى ينفذ الأمر و لا يعلم من يأمره. (افترض أن هناك برنامج آخر لمبرمج آخر وبريد أن يستفيد من خدمات هذه الوحدة.) إذا فرضنا أننا قمنا بهذا العمل و قام كلاينت بإرسال معلومة للسرفر و يريد السرفر عرضها و نحن لا نعلم وقت وصول المعلومة و الذي يعلم هو فقط uNet_INDY فما هي الطريقة التي سنظهر بها هذه المعلومة دون إعلام بقية الوحدات بوصول هذه المعلومة(اتمنى التوضيح و لو بكود بسيط) AL-MOB4RM3G كتب :كبدآية, تم انشآء القآعدة وتم انشآء جدول اسمه UsersTable, بدآخله تم انشآء عدة Columns لتلبية معلومات التسجيل لمعرف جديد او لمستخدم جديد, أولا الحمد لله على عودتك. و كيف الأخبار عند أخي الكريم اطلعت على الكود فلم اجدك قد غيرت بنظام قاعدة البيانات فلا اعلم هل هناك مشكلة أم ماذا و كيف قمت بإدخال الجدول ؟؟ هل قمت بعمل ذلك خارجيا أم ماذا ؟؟ التغيرات الحاصة بتاريخ 12-4-2010 -إعادة تنظيم بعض الوحدات بالسرفر -التعامل مع قاعدة البيانات بواسطة ال API سلامي مشروع برنامج محادثة, باستخدام مكونات indy - shagrouni - 12-04-2010 السلام عليكم جاري تنزيل التعديل. إقتباس :فما هي الطريقة التي سنظهر بها هذه المعلومة باستخدام Callback fuction سأحاول إيراد مثال، ولكن لا أعدك اليوم. حاول معها أخي. بالتوفيق مشروع برنامج محادثة, باستخدام مكونات indy - shagrouni - 13-04-2010 السلام عليكم مرفق تعديل لقسم السيرفر . مشروع برنامج محادثة, باستخدام مكونات indy - o15s19 - 13-04-2010 shagrouni كتب :السلام عليكم جميل جدا رائع ألف شكر لك أخي الكريم و اتمنى دائما أن تزودنا بهذه الملاحظات القيمة كما قمت بقراءة عملية ال CallBack و بالمرفقات ملف PDF لأحد المواقع يشرح بها هذه العملية (EN) جاري العمل و التعديل.......... |