المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طلب مشكل حساب في الدلفي Delphi


abban270
2015-10-17, 17:36
السلام عليكم

لدي مشكل صغير في هذا البرنامج الصغير

الرنامج يقوم بعمل الحساب عند الضغط على الزر

لكني أريده أن يقوم بالحسابات ما دمت أغير المعلومات في كل مرة

أريده أن يقوم بالحسابات فور إعطائه المعطيات

هذا هو سورس البرنامج

http://uptobox.com/fe5rcktwd2h5 (http://uptobox.com/fe5rcktwd2h5)

شكرا لكم

meridjihamada
2015-10-19, 13:45
اخي هل تقصد بانك تريد فور ادخال المعطيات يقوم باخراج النتيجة دون الضغط على زر الحساب

abban270
2015-10-19, 22:48
اخي هل تقصد بانك تريد فور ادخال المعطيات يقوم باخراج النتيجة دون الضغط على زر الحساب


هذا هو المقصود
لقد فهمتني :19:

meridjihamada
2015-10-20, 10:44
السلام عليكم اخي
ما الغرض من هذه الاكواد؟
if ComboBox1.ItemIndex=0 then salaire:=50000;
if ComboBox1.ItemIndex=1 then salaire:=40000;
if ComboBox1.ItemIndex=2 then salaire:=30000;
if ComboBox1.ItemIndex=3 then salaire:=20000;

عثمان الجزائري.
2015-10-20, 10:47
هذا هو المقصود
لقد فهمتني :19:

أخي أن أعمل على vb و لكن الفكرة تكم في أنه يجب عليك و ضع كود الحساب في OnChange Event يعني حين تقوم بكتابة الأعداد يتم الحساب مباشرة

abban270
2015-10-20, 10:47
هذه تعني أن كل سطر يمثل أحد الخيارات الموجودة في ComboBox1
0 يمثل directeur
1 يمثل sousdirecteur
إلخ....

عثمان الجزائري.
2015-10-20, 10:48
السلام عليكم اخي
ما الغرض من هذه الاكواد؟
if ComboBox1.ItemIndex=0 then salaire:=50000;
if ComboBox1.ItemIndex=1 then salaire:=40000;
if ComboBox1.ItemIndex=2 then salaire:=30000;
if ComboBox1.ItemIndex=3 then salaire:=20000;
الغرض هو مثلا إذا كانت عندك قائمة أو ما تسمى ب كومبو بوكس إذا قمت بإختيار الأول فقيمة salaire تتغير إلى 50000 و إذا إخترت الثانية فالقيمة تصبح 40000

abban270
2015-10-20, 10:50
يارك الله فيك عثمان
لا يوجد فرق كبير في البرمجة بين اللغات
لأن الأغكار مشتركة
OnChange Event لكن لمن لأي object
combox ou tedit ou form

abban270
2015-10-20, 10:52
الغرض هو مثلا إذا كانت عندك قائمة أو ما تسمى ب كومبو بوكس إذا قمت بإختيار الأول فقيمة salaire تتغير إلى 50000 و إذا إخترت الثانية فالقيمة تصبح 40000

نعم ولكن أيضا total يتغير وإذا أضفت أشياء أخرى لها علاقة بالكوبوكس هل تتغير معها ؟؟

عثمان الجزائري.
2015-10-20, 10:58
يارك الله فيك عثمان
لا يوجد فرق كبير في البرمجة بين اللغات
لأن الأغكار مشتركة
OnChange Event لكن لمن لأي object
combox ou tedit ou form

لا أدري ما الذي تريد حسابه و لكن سأعطيك مثال بسيط:
عندنا TEXT BOX 1 نكتب فيها العدد الأول
و TEXTBOX2 نكتب فيها العدد الثاني
إذا أردنا حساب المجموع مباشرة بعد الإنتهاء من كتابة العدد الثاني و إظهاره في LABEL1 نقوم بوضع :
LABEL1.CAPTION=TEXTTEXT BOX1.TEXT+TEXT BOX 2 في ONCHANGE EVANT الخاصة بــ textbox2

عثمان الجزائري.
2015-10-20, 10:59
نعم ولكن أيضا total يتغير وإذا أضفت أشياء أخرى لها علاقة بالكوبوكس هل تتغير معها ؟؟
بطبيعة الحال فإذا كان الــ totale مثلا في هذه الحالة متعلق ب salaire فإنه يتغير بتغير الإختيار من الكمبو بوكس

meridjihamada
2015-10-20, 11:00
اخي انا ابرمج بلغة الدلفي ساحاول ان اعدل لك في البرنامج وان شاء الله ينجح

abban270
2015-10-20, 11:08
بارك الله فيكما
بالنسبة للأخ عثمان
أنا أعرف كيف يتم الحساب إلخ
وأعرف طريقة العمل بالكومبوبكس
لكن الذي لا أعرفه هو:
إذا كان لدي 10 من كومبوكس كلها مرتبطة مع بعضها في الحسابات
لا يتم تفيير النتيجة فوريا إلا إذا برمجنا كل كومبوكس على حدى ووضعنا فيه نفس الكود
لكن الطريقة طويلة جدا
أردت أن أبحث عن طريقة بحيث:
كلما غيرنا في أحد من الكوبوكس يتم تغيير النتيجة فوريا
أرجو أن أكون قد وضحت ذلك

عثمان الجزائري.
2015-10-20, 11:11
بارك الله فيكما
بالنسبة للأخ عثمان
أنا أعرف كيف يتم الحساب إلخ
وأعرف طريقة العمل بالكومبوبكس
لكن الذي لا أعرفه هو:
إذا كان لدي 10 من كومبوكس كلها مرتبطة مع بعضها في الحسابات
لا يتم تفيير النتيجة فوريا إلا إذا برمجنا كل كومبوكس على حدى ووضعنا فيه نفس الكود
لكن الطريقة طويلة جدا
أردت أن أبحث عن طريقة بحيث:
كلما غيرنا في أحد من الكوبوكس يتم تغيير النتيجة فوريا
أرجو أن أكون قد وضحت ذلك
تمنيت لو كان عندي الدلفي مسطب لقمت بحل المشكل لأني أجد صعوبة في إيصال الفكرة مع أن الحل عندي في ذهني....سامحني

abban270
2015-10-20, 11:24
للأسف
لكنه يوجد نسخة دلفي صغيرة الحجم ومحمولة
وشكرا على مجهوداتك

abban270
2015-10-20, 11:35
وبإنتظار الجديد منكم :mh31:

عثمان الجزائري.
2015-10-20, 11:42
وبإنتظار الجديد منكم :mh31:

أخي سأحاول تحميل الدلفي لكن بعد الغداء :) و الصلاة إذا لم يسبقني غيري :19:

abban270
2015-10-20, 11:44
هههه
إن شاء الله ربي يوفقنا

عثمان الجزائري.
2015-10-20, 13:14
http://uptobox.com/5xrqagcxol3z

أنا هنا و إن كان أي خطأ أو سوء فهم اعلمني

abban270
2015-10-20, 13:18
Ok
سأجربه وأعلمك بالنتيجة

abban270
2015-10-20, 13:33
هي بالضبط كما أردتها
بارك الله فيك
لكن هل تشرح للي ماذا غيرت ؟؟
أظن أنك وضعت نفس الكود في combobox2
ولكن لو كان لدينا عدة خيارات وليدنا عشرة combobox
هل ننسخ الكود 10 مرات

عثمان الجزائري.
2015-10-20, 13:39
هي بالضبط كما أردتها
بارك الله فيك
لكن هل تشرح للي ماذا غيرت ؟؟
بدل من أن تضع الأوامر في BUTTON تضعها في ComboBox1Change و تقوم بالتغيرات المناسبة بالنسبة ComboBox2Change .
هو ليس نسخ حرفيا كما تعتقد ولكن يجب أن تكون بعض التغييرات حتما..

abban270
2015-10-20, 13:43
ولكن لو كان لدينا عدة خيارات وليدنا عشرة combobox
هل ننسخ الكود 10 مرات
في كل كومبوكس نضع الكود ؟؟

عثمان الجزائري.
2015-10-20, 13:46
ولكن لو كان لدينا عدة خيارات وليدنا عشرة combobox
هل ننسخ الكود 10 مرات
في كل كومبوكس نضع الكود ؟؟

هنا ك طريقة أخرى يمكنك عن طريقها تجنب النسخ و الصق و هي بإستعمال functions تقوم بعمل خوارزمية تقوم بالحساب و تعمل appel لها في كل مرة تحتاجهان سأقوم بالتغيير قليلا في البرنامج لتكون أوضح...

abban270
2015-10-20, 13:56
آه نعم هذه تبدو طريقة مختصرة
يعني تصنع function أو procedure

abban270
2015-10-20, 14:05
لتفهمني جيدا
أنظر إلى هذا
وضعت tedit جديد ليتم زيادته للمجموع
http://uptobox.com/itjonxdqs19r

عثمان الجزائري.
2015-10-20, 14:10
لتفهمني جيدا
أنظر إلى هذا
وضعت tedit جديد ليتم زيادته للمجموع
http://uptobox.com/itjonxdqs19r
لقد أصفت و عدلت الكود ....؟؟؟؟

abban270
2015-10-20, 14:13
نعم عدلت في الكود ليتم حساب Tedit4 معهم
لكني لم أستعل فكرتك لأني لا أتقنها

عثمان الجزائري.
2015-10-20, 14:27
http://uptobox.com/b85u4jfqdsm3

أضفت function لكنها لا تقوم إلا بحساب المجموع بإعطائها المتغيرات فقط فكرت فلم أجد فكرة أحسن ههههه صدقني عندي 6 سنوات ما خدمتش بالدلفي

عثمان الجزائري.
2015-10-20, 14:38
http://uptobox.com/af7ir5vnmosn
أضفت تغيير بسيط و هو لما نغير اقيمة لخانة التي أضفتها يتغير المجموع.......

abban270
2015-10-20, 14:44
جاري التحميل

abban270
2015-10-20, 15:14
لكن في الملف الأخير ألم تظف Tedit4 معهم ليتم حسابها ؟

عثمان الجزائري.
2015-10-20, 15:17
لكن في الملف الأخير ألم تظف tedit4 معهم ليتم حسابها ؟

بلى عندما تقوم بتغير القيمة من 4 إلى أي قيمة أخرى ستضاف تلقائيا....

abban270
2015-10-20, 15:24
نعم هي لا تعمل عند التشغيل لكن عندما أغير القيمة تتغير النتيجة
والله مبدع
مع أنك منذ 5 سنوات لم تعمل به هههه
أعجبنتي الطريقة
لدينا مشكل آخر دائما يخطر ببالي
جرب أنك تفرغ Edit4 من أي رقم
أتركه فارغا
يخرج لك ُError
وذلك يحدث معي دائما
ألا يوجد طريقة عندما تترك أحد الحقول فارغة لا يحدث هذا المشكل
خاصة إذا كانت لديك حقول كثير Tedit

عثمان الجزائري.
2015-10-20, 15:28
نعم هي لا تعمل عند التشغيل لكن عندما أغير القيمة تتغير النتيجة
والله مبدع
مع أنك منذ 5 سنوات لم تعمل به هههه
أعجبنتي الطريقة
لدينا مشكل آخر دائما يخطر ببالي
جرب أنك تفرغ edit4 من أي رقم
أتركه فارغا
يخرج لك ُerror
وذلك يحدث معي دائما
ألا يوجد طريقة عندما تترك أحد الحقول فارغة لا يحدث هذا المشكل
خاصة إذا كانت لديك حقول كثير tedit

يوجد حل سأذهب لأصلي العصر و أعود ...إنتظرني...

abban270
2015-10-20, 15:31
أوكي
نلتقي بعد العصر ان شاء الله

abban270
2015-10-20, 15:45
وضعت هذا الكود
فعملت جيدا
if edit4.text='' then showmessage('الحقل 4 فارغ');
هذه تعمل مع حقل واحد
لكن ماذا عن بقية الحقول ؟؟

عثمان الجزائري.
2015-10-20, 15:49
http://uptobox.com/g9n2lkgfol3m

عثمان الجزائري.
2015-10-20, 15:55
وضعت هذا الكود
فعملت جيدا
if edit4.text='' then showmessage('الحقل 4 فارغ');
هذه تعمل مع حقل واحد
لكن ماذا عن بقية الحقول ؟؟

http://uptobox.com/9cyy4glx7wfb

لقد تم التعديل يمكنك مسح أي شيئ من الحقول دون أي مشكل....

abban270
2015-10-20, 16:10
جاري التحميل

abban270
2015-10-20, 16:26
جميل
هذا وين صار البرنامج بدون مشكال
بارك اله فيك
إذا كانت لديك أفكار أخرى أو إقتراحات فقل لي
لأني مبتدئ أفتقر إلى التجربة

abban270
2015-10-20, 16:29
إيه تفكرت سؤال ’خر
علابالي هبلت شويا
هل أستطيع أن أضع كود في Form1
ضننا مني أنه أي تغيير على Combox أو Edit يأخذه بعين الإعتبار
بدلا من وضع الكود في Fonction

abban270
2015-10-21, 14:18
منتظر إجابتك يا أخي

عثمان الجزائري.
2015-10-21, 15:51
منتظر إجابتك يا أخي
عذرا أخي لم أفهم السؤال، تفقدتك صباحا وجدتك غير متصل مع العلم أن دوامي عادة ينتهي على الساعة 16.00 يعني ما بين 8.00 صباحا إلى 16.00 أنا هنا .....

abban270
2015-10-21, 19:23
اقصد ذلك الكود الذي وضعناه في Fonction
هل نستطيع وضعه في Form1
لكي يحدث التغير أوتوماتيكيا

عثمان الجزائري.
2015-10-22, 09:10
اقصد ذلك الكود الذي وضعناه في Fonction
هل نستطيع وضعه في Form1
لكي يحدث التغير أوتوماتيكيا
لا يمكن أخي إما أن تستغني كليا عن ال function كما فعلنا سابقا أو عن طريقها.... و الدلفي يرتكز على actions التي نقوم بها على الأدوات المستعملة مثل combo box و Edit .......يعني يجب علينا وضع الأكواد داخل هذه actions كما في مثالنا change....

abban270
2015-10-22, 09:49
شكرا لك على التوضيح
بماذا تنصحني في إستعمال base de donne
sql server 2005 هل يفي بالغرض ؟؟؟

pack8
2015-10-22, 10:25
بارك الله فيكما
بالنسبة للأخ عثمان
أنا أعرف كيف يتم الحساب إلخ
وأعرف طريقة العمل بالكومبوبكس
لكن الذي لا أعرفه هو:
إذا كان لدي 10 من كومبوكس كلها مرتبطة مع بعضها في الحسابات
لا يتم تفيير النتيجة فوريا إلا إذا برمجنا كل كومبوكس على حدى ووضعنا فيه نفس الكود
لكن الطريقة طويلة جدا
أردت أن أبحث عن طريقة بحيث:
كلما غيرنا في أحد من الكوبوكس يتم تغيير النتيجة فوريا
أرجو أن أكون قد وضحت ذلك

يا اخي ادخل على كومبوكس ثم evenements و في خصائص evenements اختر onchange و والصق الكود الخاص بالدالة
مع مراعات ملئ Salaire de base و Prime هي الاولى

prime:=(strtofloat(ComboBox2.Text)*500);

if ComboBox1.ItemIndex=0 then salaire:=50000;
if ComboBox1.ItemIndex=1 then salaire:=40000;
if ComboBox1.ItemIndex=2 then salaire:=30000;
if ComboBox1.ItemIndex=3 then salaire:=20000;
edit1.Text:=floattostr(salaire);
edit2.Text:=floattostr(prime);
edit3.Text:=floattostr(salaire+prime);


و ستشتغل ان شاء الله

عثمان الجزائري.
2015-10-22, 10:25
شكرا لك على التوضيح
بماذا تنصحني في إستعمال base de donne
sql server 2005 هل يفي بالغرض ؟؟؟

sql server 2008 للمشاريع الكبيرة
access للمشاريع الصغيرة

abban270
2015-10-22, 11:02
يا اخي ادخل على كومبوكس ثم evenements و في خصائص evenements اختر onchange و والصق الكود الخاص بالدالة
مع مراعات ملئ salaire de base و prime هي الاولى

prime:=(strtofloat(combobox2.text)*500);

if combobox1.itemindex=0 then salaire:=50000;
if combobox1.itemindex=1 then salaire:=40000;
if combobox1.itemindex=2 then salaire:=30000;
if combobox1.itemindex=3 then salaire:=20000;
edit1.text:=floattostr(salaire);
edit2.text:=floattostr(prime);
edit3.text:=floattostr(salaire+prime);


و ستشتغل ان شاء الله

شكرا لك يا أخي

abban270
2015-10-22, 11:03
أظن أنه لا يوجد فرق كبير بين 2005 و 2008 ؟؟

عثمان الجزائري.
2015-10-22, 11:32
أظن أنه لا يوجد فرق كبير بين 2005 و 2008 ؟؟

نعم لا يوجد فرق كبير في طريقة التعامل، ف 2008 يتميز بخصاص زائدة على 2005 مثل الحماية و التعامل مع التاريخ .... المهم أنك تبدأ بشيئ جديد من أجل مواكبة التطور و هناك أيضا 2012 ...

abban270
2015-10-22, 12:40
سأبدأ بالقديم
شكرا لك

pack8
2015-10-26, 10:52
شكرا لك يا أخي

هذا هو برنامجك بع التغيير والنتيجة تجدها هنا

التحميل

abban270
2015-10-26, 13:40
هذا هو برنامجك بع التغيير والنتيجة تجدها هنا

التحميل

لا أرى أي شيء
ولعلمك أنه تم حل المشكل
لكن شكرا لك على أية حال

abban270
2015-10-26, 13:45
بالمناسبة وقعت في مسكل آخر
لما أردت أن أكتب بالعربية وبالخط الكوفي
تخرج لي تخربيشات هكذا Z43,r3C;
عوض الكتابة بالعربية
ولما أحول نمط النص إلى Arial أو arabic transparent
تظهر العربية بشكل عادي

pack8
2015-10-27, 11:49
لا أرى أي شيء
ولعلمك أنه تم حل المشكل
لكن شكرا لك على أية حال

هذا هو برنامجك بع التغيير والنتيجة تجدها هنا

التحميل (http://www.4shared.com/rar/wSg4zWDUce/Delphi1.html?)


http://www.4shared.com/rar/wSg4zWDUce/Delphi1.html?

abban270
2015-10-27, 16:03
شكرا جاري التجريب

abban270
2015-10-28, 10:33
يا أخي pack8
لقد قلت لك بأن المشكل تم حله
الآن لدينا مشكل العربية

عثمان الجزائري.
2015-10-28, 11:27
أخي هل تقصد هذا : http://uptobox.com/zj7aj7j30usw
حمل هذا الخط أيضا: http://uptobox.com/szo38goohmxm
يجب أن تملك هذا النوع من الخط ضع الملفات التي بداخل المجلد في هذا المسار C:\Windows\Fonts

pack8
2015-10-28, 13:29
حمل هذا الخط الكوفي وضعه في الملفات التي بداخل المجلد في هذا المسار C:\Windows\Fonts

abban270
2015-10-28, 20:30
أخي هل تقصد هذا : http://uptobox.com/zj7aj7j30usw
حمل هذا الخط أيضا: http://uptobox.com/szo38goohmxm
يجب أن تملك هذا النوع من الخط ضع الملفات التي بداخل المجلد في هذا المسار C:\Windows\Fonts

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

abban270
2015-10-28, 23:53
نعم أخي
لكن أنظر إلى البرنامج الذي سأرسله لك
الخط في panel يظهر عادي
لكن في Tedit لا يريد الظهور
لا تنسى أن تضع fonts التي أرفقتها لك مع البرنامج قبل تشغيله
شكرا مسبقا
http://uptobox.com/rohebi8oy8nv

عثمان الجزائري.
2015-10-29, 08:24
أخي أرجوا منك التوضيح لماذا تريد الكتابة بالخط الكوفي في Tedit كنت تستطيع أن تكتفي بالكتابة بـــ traditional arabic في Tedit و إظهار النتيجة بالخط الكوفي أين تريد إظهارها في الفورم....؟
مثلا إذا كتبت في Tedit بــ traditional arabic تظهر النتيجة بالخط الكوفي في panel و هذا مثال حتى تفهمني: http://uptobox.com/fiapehykxdtf

و هنا هناك حل ثاني هو إستعمال خط كوفي آخر مثل الذي أملكه أنا http://uptobox.com/i95anv29ko59

abban270
2015-10-29, 21:25
بارك الله فيك على الفكرة
سأعمل بها أفضل

mounaim csc
2015-10-30, 10:24
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

عثمان الجزائري.
2015-10-30, 20:04
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

أخي إن أردت التعليق فعلق ولا تترك لنا علامات تعجب، فنحن لا حاجة لنا لهذه التفاهات إذا كان عندك ما تفيد الأخ به فتفضل 000

abban270
2016-01-07, 13:59
وقعت في مشكل آخر
أريد أن أضع تغيير محتوى table
إستعملت Edit
لكن المشكل في DATE
لا يريد التغيير مع أني إستعملت هذا الكود
DateTimePicker1.date:= form1.table1['Date'];

وهاهو سورس البرنامج

Delphi source - 718 KB (http://uptobox.com/589ti09c2wnr)