السلام عليكم
لقد قم بمحاولة لانشاء برنامج صغير يساعدني في عملي
انا مبتدئ بالدالفي ، و لقد ساعدنى الاخ bsm12 قليلا
لكن هو كذالك مبتدئ مثلي
المهم برنامجي عبارة عن برنامج اسجل فيه :
رقم ،النوع،عنوان الكتاب ، اسم المؤلف ؛ الرقم التسلسلي للكتاب ، رقم الايداع القانوني ، ردمك ISBN
بالعربية ، لقد حاولت في المثال المرفق لكن لم أجد نفسي
مثال :
01/ قانون/جرائم الصحافة الدولية/الاستاذ نبيل صقر المصري/ 105-2008 /154-2008/9925-245-26-22-07
02/مدرسي/القراءة للجميع/شريفة سعيدي/106-2008/170-2008-/9961-60-210-2
وهكذا مع امكانية البحث باسم الكتاب او المؤلف و طباعة عدد منها يحدد مثلا من 05 الى 20 فقط
سأحاول التلميح لبعض الأمور ، لأن رأيي قبل البرمجة :
1-ماذا تريد أن تكون النتيجة،
2- إقرأ عن المكونات التي تريد استعمالها،
3-نظم أفكارك (لأن زمن البرمجة مباشرة على الشاشة قد ولّى منذ زمن)
أولا مكان قاعدة البيانات DataBaseName يكون دائما مشكل لمستعمل أخر، و لكي لا نحتاج دائما للتعديل بدل من D:\rabah\data يكون data\.
ثانيا : اللون الأحمر يمثل الخطأ
كود :
[color=Blue]// عند الضغط على الزر جديد[/color]
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
[color=Red]t02.Insert ;[/color]
end;
[color=Blue]// عند الضغط على الزر موافق[/color]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
[color=Red]t02.open ;[/color]
t02.First ;
if t02.FindKey([editnum.Text]) then
showmessage('هذا الرقم موجود')
else
begin
[color=Red]t02.Append ;[/color]
t02num.Value :=editnum.Text ;
t02nom_livre.Value :=editnom_livre.Text ;
t02nom_auteur.Value :=editnom_auteur.Text ;
t02n_taslsoli.Value :=editn_taslsoli.Text ;
t02n_idaa.Value :=editn_idaa.Text ;
t02isbn.Value :=editisbn.Text ;
t02code.Value := inttostr(combobox1.ItemIndex);
t02.post;
showmessage('تم إضافة الكناب ....');
end;
end;
. ليس من المنطق Insert ثم Open
. لماذا T02.First ؟؟
. اختار واحد بين Append أو Insert طالع Help الخاص بالدلفي لمعرفة الفرق
ثانيا :
إقتباس :احاول ان ادخل نوع الكتاب عن طريق combobox لكنني لا أستطيع
لأن في قاعدة البيانات Code هي من نوع A من الحجم 2
و انت تريد ادخال ترتيب النوع في ComboBox علما بأن ItemIndex يبدأ من 0، لا أظن أنك تريد 0 ككود
و العقبة الأخرى هي كما قلت Code هي من نوع A من الحجم 2، لو كانت من نوع رقمي (I) لكان أحسن
لأنك استعملت ItemIndex الدي هو رقمي وجدولك يستعمل '01,02,03...' كنصوص
هناك فرق بين 1 (رقم) و 01 (نص)
لماذا لم تعملا مع t02.FieldByName('code').AsString
الأهم من هذا كله لقد وضعت DBEdit و أردت استعمالها كـ Edit
DBEdit لها علاقة مباشرة مع قاعدة البيانات (أدخل التعديلات منها دون الضغط على الأزرار و لاحظ الجدول)
اعذرني ، لكن البرنامج غير منظم (و أحيانا غير منطقي)
و إذا أردت (كبداية) العمل بوضوح اجعل لكل عملية واجهة و برمجة خاصة بها (الإضافة ، التعديل، الحذف ، القراءة ..) ثم بعد التمكن منها ابدا بالعمل على واجهة متعددة العمليات.
سأتوقف هنا ونصيحتي : انسى ما قمت به، نظم أفكارك، اقرأ عن الهدف من المكون المستعمل و استعمالاته، في الأخير حاول دائما تصور ما تريد القيام به قبل البدئ به