delphi4arab منتديات دلفي للعرب

نسخة كاملة : خطأ في الكود ، لم أجد مكان الخطأ !!!
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
[size=medium]السلام عليكم 
من فضلكم اين الخطأ في هذا الكود
[/size]

كود :
if dbedit1.Text='' then 'Raise Exception.Create('Erreur Champ etudient est Vide); if data.etudient.State in[dsedit,dsinsert] then Data.etudient.Post; close;
[size=medium]
هذا الكود اضعه في زر "إضافة" الغرض من هذا الكود انه يمنع مستعمل البرنامج ان يحفظ تسجيل فارغ فيخبره انه يجب عليه ان يملأ الخانات اللازمة

واخبرني ايضا اين الخطأ في هذا الكود الثاني
دائما في زر "إضافة"
[/size]

كود :
try data.etudient.Edit; data.etudient.Post; Except on EDBEditError do Begin MessageBox(0,'svp le code d"etudient existe deja ou le droit d''accés est réfusé','enregistrer',mb_ok); data.etudient.Cancel; end; on EConvertError do MessageBox(0,'svp virifier l''erreur de saisie','Problème de saisie',mb_ok); end;
[size=medium]الغرض من هذا الكود يمنع مستخدم البرنامج ان يخطئ في تسجيل تلميذين بنفس الرقم
ارجو انني وضحت المشكلة
ارجو الرد فانا احتاجه
شكرا
[/size]
وعليكم السلام ،
أهلا وسهلا بك بيننا .
لم تخبرنا برسالة الخطأ التي تظهر.....
اليك رسالة الخطأ أخي في ملفات مرفقة
حاولت ادخال نفس رقم التسجيل حيث انني وضعت نفسي مكان المستخدم وأخطأت واستخدمت نفس الرقم
ارجو انني وضحت مشكلتي
السلام عليكم  اخي اليك الحل انشاء الله


كود :
if (edit1.Text='') then begin showmessage('Saisie le nom e'); end; table1.edit; table1.Post
t
السلام عليكم ،
أخي الحبيب دعنا نوضح الحل و نبسطه أكثر Cool 
1- عندما يدخل المستعمل رقم  التسجيل (أو الرقم الذي تود إدخاله)
   1-1  تتحقق من أن قيمة  Edit فارغة ، إذا كانت كذلك تخبر المستعمل أنه يجب عليه إدخال  رقم التسجيل.
   2-1 إذا كانت قيمة Edit   ليست فارغة ننتقل إلى النقطة 2
2- نبحث في قائمة التسجيلات (رقم الطالب في حالتك ) في مصفوفة الطلاب :
1-2  إذا تم العثور على الرقم في مصفوفة الطلاب هذا يعني أن الرقم موجود من قبل و عليه إدخال رقم آخر.
2-2  إذا لم يتم إيجاد رقم الطالب ، فهذا يعني أن الرقم جديد ، فيمكننا حينئذ إتمام تجسيل الطالب .
واضح أخي الحبيب . Blush 
نأتي الآن إلى التطبيق ، و أنصحك باستعمال شيئ من ال Sql.

كود :
if Edit1.Text = ''  then // edit1  فارغ begin     showmessage("لابد من إخال رقم الطالب ") end else //  edit1  ليس فارغ begin     //  نتحقق من عدم وجود نفس الرقم     // نبحث في منظومة الطلاب    Query1.close ;    Query1.Paramettr('Code1').asstring := Edit1.text;    Query1.open;    if Query1.isEmpty then // بمعنى أنه لا يوجد الرقم    begin       //  نقوم بعملية إدخال الطالب الجديد           end    else //  بمعنى أن الرقم المدخل يوجد مسبقا    begin      // نقوم بإعلام المستعمل    end end

البقية عليك .

     باستعمال الموكن  Query  
     في خاصية Sql  ل query نكتب ما يلي

كود :
     Select CodeEdtudiant      From Edudiant      Where  CodeEdtudiant = :Code1
(13-12-2015, 06:39 PM)Unprogramme كتب : [ -> ]السلام عليكم ،
أخي الحبيب دعنا نوضح الحل و نبسطه أكثر Cool 
1- عندما يدخل المستعمل رقم  التسجيل (أو الرقم الذي تود إدخاله)
   1-1  تتحقق من أن قيمة  Edit فارغة ، إذا كانت كذلك تخبر المستعمل أنه يجب عليه إدخال  رقم التسجيل.
   2-1 إذا كانت قيمة Edit   ليست فارغة ننتقل إلى النقطة 2
2- نبحث في قائمة التسجيلات (رقم الطالب في حالتك ) في مصفوفة الطلاب :
1-2  إذا تم العثور على الرقم في مصفوفة الطلاب هذا يعني أن الرقم موجود من قبل و عليه إدخال رقم آخر.
2-2  إذا لم يتم إيجاد رقم الطالب ، فهذا يعني أن الرقم جديد ، فيمكننا حينئذ إتمام تجسيل الطالب .
واضح أخي الحبيب . Blush 
نأتي الآن إلى التطبيق ، و أنصحك باستعمال شيئ من ال Sql.

كود :
if Edit1.Text = ''  then // edit1  فارغ begin     showmessage("لابد من إخال رقم الطالب ") end else //  edit1  ليس فارغ begin     //  نتحقق من عدم وجود نفس الرقم     // نبحث في منظومة الطلاب    Query1.close ;    Query1.Paramettr('Code1').asstring := Edit1.text;    Query1.open;    if Query1.isEmpty then // بمعنى أنه لا يوجد الرقم    begin       //  نقوم بعملية إدخال الطالب الجديد           end    else //  بمعنى أن الرقم المدخل يوجد مسبقا    begin      // نقوم بإعلام المستعمل    end end

البقية عليك .

     باستعمال الموكن  Query  
     في خاصية Sql  ل query نكتب ما يلي

كود :
     Select CodeEdtudiant      From Edudiant      Where  CodeEdtudiant = :Code1 شرحك مبسط وممتاز اخي بارك الله فيك  فقط اريد ان تظيف شرح العبارة 
Query1.Paramettr('Code1').asstring := Edit1.text; اريد شرحا مفصلا انا مبتدا 
(17-12-2015, 09:25 AM)awatef98 كتب : [ -> ]
(13-12-2015, 06:39 PM)Unprogramme كتب : [ -> ]السلام عليكم ،
أخي الحبيب دعنا نوضح الحل و نبسطه أكثر Cool 
1- عندما يدخل المستعمل رقم  التسجيل (أو الرقم الذي تود إدخاله)
   1-1  تتحقق من أن قيمة  Edit فارغة ، إذا كانت كذلك تخبر المستعمل أنه يجب عليه إدخال  رقم التسجيل.
   2-1 إذا كانت قيمة Edit   ليست فارغة ننتقل إلى النقطة 2
2- نبحث في قائمة التسجيلات (رقم الطالب في حالتك ) في مصفوفة الطلاب :
1-2  إذا تم العثور على الرقم في مصفوفة الطلاب هذا يعني أن الرقم موجود من قبل و عليه إدخال رقم آخر.
2-2  إذا لم يتم إيجاد رقم الطالب ، فهذا يعني أن الرقم جديد ، فيمكننا حينئذ إتمام تجسيل الطالب .
واضح أخي الحبيب . Blush 
نأتي الآن إلى التطبيق ، و أنصحك باستعمال شيئ من ال Sql.

كود :
if Edit1.Text = ''  then // edit1  فارغ begin     showmessage("لابد من إخال رقم الطالب ") end else //  edit1  ليس فارغ begin     //  نتحقق من عدم وجود نفس الرقم     // نبحث في منظومة الطلاب    Query1.close ;    Query1.Paramettr('Code1').asstring := Edit1.text;    Query1.open;    if Query1.isEmpty then // بمعنى أنه لا يوجد الرقم    begin       //  نقوم بعملية إدخال الطالب الجديد           end    else //  بمعنى أن الرقم المدخل يوجد مسبقا    begin      // نقوم بإعلام المستعمل    end end

البقية عليك .

     باستعمال الموكن  Query  
     في خاصية Sql  ل query نكتب ما يلي

كود :
     Select CodeEdtudiant      From Edudiant      Where  CodeEdtudiant = :Code1 شرحك مبسط وممتاز اخي بارك الله فيك  فقط اريد ان تظيف شرح العبارة 
Query1.Paramettr('Code1').asstring := Edit1.text; اريد شرحا مفصلا انا                                                                                                                                                             
 
 اذا كان فارغ  حسب راي  فيه نقص نوعا  /يكون هذا الكود صالح فقط اذا لم يتحرك مؤشر الفارةEdit  يقوم هذا الكود بمراقبة 
 للامام وسوف تلاحض ان الكود لا يعمل edit جرب ان تحرك مؤشر الفارة في


الكود  الاصح هو 
if Trim(Edit1.Text)='' then
begin
...........
....................
end;