الصفحات : 1 2 3 4 5 6 7 8 9
إقتباس :بخصوص قآعدة البيانات, (لا ادري حقيقة لكن هي الشئ الوحيد الذي يقلقني)
لا تقلق، امرها سهل ان شاء الله
ليس شرطا انشاء كل الجداول الان
يمكن التعديل/التغيير فيما بعد حسب الحاجة
بعض الجداول الخاصة بالعضو يمكن وضعها بClient لتقليل الضغط على Server
خير ان شاء الله, بارك الله لك اخ عبد العزيز,
اخوآني في الحقيقة لدي سؤآل آخر ايضى بارك الله لكم,
فيما يخص التعامل مع البرنامج بطريقة ال Layers (لم اتعامل بهذه الطريقة من قبل)
هل يعني هذا انه كل شئ مثلا يخصّ ال IdTcpClient يكون في وحدة ال UClientCore ؟
للتوضيح, لو اود ان احدد ال Host و Port ومنثم عمل Connect لل كلينت, اين يتم كل هذه الأمور ؟
هل يجب مثلا عمل Procedure في uClientCore به تحدد الأمور مثل الهوست و البورت ومنثم في ال D4A_Client_Main يتم استدآء هذا ال Procedurre وبعدها عمل Connect في D4A_Client_Main؟
بارك الله لكم
السلام عليكم
التغييرات التي تمت على D4A Chat بتاريخ 28-1-2010
+إضافة نظام للكشف الذاتي عن السرفر (لا يعمل الأن بحاجة إلى نظام أخر للكشف عن الأيبيات و لكن يمكن تجربته بحال معرفة أي بي السرفر)
+إضافة بعض الخيارات (اسم السرفر)
+العمل على قاعدة البيانات قليلا (من ناحية الفتح و الإغلاق و الإنشاء)
+بناء نافذة التسجيل في الكلاينت
+بناء نافذة للسرفرات الموجودة
*القليل من التحسينات
سلامي
AL-MOB4RM3G كتب :هنا ايضى سؤآل,
فيما يخص حالة السرفر كان هناك shape يعطي الّون الأخضر او الأحمر على الفورم حسب الحآلة,
ارى انك اخي الكريم عدلت حتى يتم انشآء ال Shape في وقت التنفيذ,
السؤآل هو, هل هو افضل من النآحية العمليّة ؟
يعني اسرع بالنسبة لتنفيذ الكود مثلا ؟ ام من نآحية التنظيم ؟ او شئ آخر؟
لأني اضطررت لوضع ال TShape في ال StatusBar و التعليمة يجب أن تكون من ناحية ال Parent و لكن حاولت وضعها في Design Mode و لكن لم افلح هذا السبب فقط
AL-MOB4RM3G كتب :بخصوص قآعدة البيانات, (لا ادري حقيقة لكن هي الشئ الوحيد الذي يقلقني)
لا تقلق أخي الكريم دعنا نعمل بالقاعدة التي بين أيدينا الأن و بعدها نتطور حسب الحاجة
AL-MOB4RM3G كتب :هل يعني هذا انه كل شئ مثلا يخصّ ال IdTcpClient يكون في وحدة ال UClientCore ؟
للتوضيح, لو اود ان احدد ال Host و Port ومنثم عمل Connect لل كلينت, اين يتم كل هذه الأمور ؟
يعني كل ما يتعلق بالاتصال يتم في هذه الوحدة فقط و كل ما يتعلق بالداتا يكون بوحدة الداتا و يتم التواصل بين الوحدات
يعني نحدد ال IP و ال Port في الوحدة الأساسية (أو بوحدة الكشف عن السرفر ) و عندها نرسل لوحدة الكلاينت امر الاتصال و عندها تقوم وحدة الاتصال بالاتصال
و الجواب الشافي عن أخي خالد و أخي عبد العزيز
إقتباس :أني اضطررت لوضع ال TShape في ال StatusBar و التعليمة يجب أن تكون من ناحية ال Parent و لكن حاولت وضعها في Design Mode و لكن لم افلح هذا السبب فقط
اها, طيب خير,
--
اخي الكريم o15s19, اي نسخة من الويندوز تستخدم ؟ (هل تجلس على 7؟) بارك الله لك
سأعود بعد جوآبك

تصحيح خلل في المقآرنة عند انشآء مستخدم جديد,
في الكود, في الفورم NewUserFrm
كود :
procedure TNewUserForm.SpeedButton1Click(Sender: TObject);//Register
begin
if NameEdt.Text = '' then //Check User Name
begin
NameEdt.Color := $008080FF ;
Exit ;
end;
if (PwdEdt1.Text <> PwdEdt2.Text) OR (PwdEdt1.Text = '' ) then //Check Password
begin
PwdEdt1.Color := $008080FF ;
PwdEdt2.Color := $008080FF ;
Exit ;
end;
if EmailEdt.Text = '' then //Check Email
begin
EmailEdt.Color := $008080FF ;
Exit ;
end;
// Start Registration Process Here
end;
هناك خطأ يحدث مع الألوان,
في حآلة المقآرنة التي تتم بين ال Password1 و ال Password2 ويكون هناك خلل تصبح حينها ال Edit 1 و 2 بالون الأحمر, في حآلة تصحيح الخلل من PassWord2 لا يرجع الون الى الأبيض حتى بعض الضغط على التسجيل,
الحلّ, كتآبة الكود التآلي,
كود :
procedure TNewUserForm.SpeedButton1Click(Sender: TObject);//Register
begin
if NameEdt.Text = '' then //Check User Name
begin
NameEdt.Color := $008080FF ;
Exit ;
end;
if (PwdEdt1.Text <> PwdEdt2.Text) OR (PwdEdt1.Text = '' ) then //Check Password
begin
PwdEdt1.Color := $008080FF ;
PwdEdt2.Color := $008080FF ;
Exit ;
end
else begin // ----------------- هنا كان الخلل,
PwdEdt1.Color := $00ffffff ;
PwdEdt2.Color := $00ffffff ;
end;
if EmailEdt.Text = '' then //Check Email
begin
EmailEdt.Color := $008080FF ;
Exit ;
end;
// Start Registration Process Here
end;
او استغلال ال PwdEdit 2 onChange ووضعه كما هو في الإدين الأول,
كود :
procedure TNewUserForm.PwdEdt2Change(Sender: TObject);
begin
PwdEdt1.Color := ClWhite ;
PwdEdt2.Color := ClWhite ;
end;
وسآمحني لآنني وضعت الحلّ هنا, لكن لا استطيع رفع المشروع الى المنتدى حآليّا, والسبب ستعرفه في سؤآلي في المشآركة السآبقة,
بالتوفيق اخوآني,
السلام عليكم
مرفق مثال لبرنامج مقسم إلى عدة طبقات أو واجهات.
المثال مبني على مشروع برنامج المحادثة، الذي نحن بصدده، وقد تم تقسيمه كالتالي:
طبقة العرض Presentation و المتمثلة في واجهات الشاشة Forms ،
وهي مسئولة فقط عن استقبال المدخدلات من المستخدم و عرض البيانات له. مثال لها نموذج frmChatServer .
طبقة التطبيق Application و هو مسئول عن قيود ومنطقيات البرنامج Business Rules
وهو عادة الحلقة الرئيسية التي تربط بين مكونات البرنامج، و يمثلها في مثالنا هذا وحدة : uAppManager .
طبقة الشبكات أو الاتصال، وهي مسئولة عن كل ماله علاقة بالاتصالات في البرنامج وقد تم
التعبير عنها في الوحدة: uNetManager . ولأنني افترضت احتمال استخدام أكثر من تقنية
في الاتصال أو تغييرها مستقبلا فإن هذه الوحدة تحوي فقط الاستدعاءات العامة الخاصة
بالاتصال، أما التفصيلات الفنية الخاصة بالتعامل مع كل تقنية؛ فيتم تفويضها لوحدات خاصة
بها، و في مثالنا هذا ستكون الوحدة: uNet_INDY مختصة باستخدام مكونات Indy بينما
الوحدة: uNet_Socket تختص باستخدام مكونات Internet التي تأتي مع دلفي. ومع كل تقنية
إضافية أو باقة أخرى من مكونات الاتصال يفرد لها وحدة خاصة بها.
لم أتطرق لقواعد البيانات في هذا المثال، ولكن تنفيذها سيكون على نفس منوال طبقة الاتصال.
**** أن يكون هذا واضحا لشرح الفكرة.
عفوا، المرفق السابق بصيغة zip ، فقط غير اسم امتداد الملف.
طيب جميل اخي الشقروني, اطلعت على المثآل الذي ارفقته, وأظن انني في الطريق الصحيح,
في الحقيقة اوآجه صعوبة (عآمة وليس فقط في هذا المشورع) من فهم افكآر الآخرين :unsure:, ربما لقلّة خبرتي والله اعلم, + انني لست معتاد على التنظيم, ففي مشروعاتي كلها يكون ال buttons على شكل Button 1,2,3,,, , و الى آخره,
امّا بخصوص سؤآلي عن النظام اخي o15s19 فهو بسبب ال encoding لملفّات ال Pas, لذلك لا استطيع ان ارى الأحرف العربيّة بها, ان كنت تعمل على ويندوز 7 فهي سهلة التصليح,
بالتوفيق,
السلام عليكم
التغيرات الحاصلة على البرنامج بتاريخ 31-1-2010
+تم تحويل السفر بكامله ليصبح 100% معتمدا على الطبقات(ألف شكر لأخي خالد)
+تم توسيع خيارات السرفر و أصبح بالأمكان ربط السرفر بأي بي معين
+تم دعم نظام الكشف التلقائي (أصبح يعمل الأن من ناحية السرفر)
+وضع ألية لكشف الأي بيات تلقائيا و كشف اسم الجهاز ليستخدم كاسم للسرفر
+القليل من التحسينات المرئية
قائمة الامور الواجب عملها أولا
1)دعم الكلاينت ليستخدم الأي بي المكتشف من نظام الكشف التلقائي
2)وضع نظام لحفظ الإعدادات لكلا السرفر و الكلاينت
3)تجهيز قاعدة البيانات
سلامي
الصفحات : 1 2 3 4 5 6 7 8 9