الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قرائة Textbox على انه String وليس Integer عند الجمع

بدأه Testr في 25 أكتوبر 2009 · 17 رد · 1,352 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

تواجهنى مشكلة عند محاولة جمع محتوى اثنين من textbox مثلا عند جمع 2 + 5 يكون الناتج 52

المشكلة انه يتعامل مع القيمة على انها نصية وليس عددية

جربت بعض دوال التحويل بين النوعين ولكن بدون جدوى لا اعرف اذا كان المشكلة فى طريقة الاستخدام ام فى شيئ اخر

المشروع من نوع windows Forms Application

الكود



this->Number1->Text = this->Number1->Text + this->Number2->Text;
}
private: System::Void Calculate_Click(System::Object^  sender, System::EventArgs^  e) {

وشكرا جزيلاً

#2
 

private: System::Void Calculate_Click(System::Object^  sender, System::EventArgs^  e) 
		 {
 this->Number1->Text=String::Concat(Number1->Text,Number2->Text);
  }
#3

وبالمناسبه ان خبير نوعاً ما بهذه النوع من المشاريع على ال windows Forms Application وقت واجهتني كثير من المشاكل والحمد لله استطعت حلها بنفسي او بمساعده الاخرين فأذا احتجت اي مساعده انا بالخدمه إن شاء الله .

استخدم ال class String لانه يوفر لك الكثير من طرق التعامل مع ال strings مثل الجمع والتي تسمه Concatenating وليس addition ، وعمليات اخرى مثل النسخ وغيرها

#4

شكرا استاذ على على مساعدتك جعلها الله فى ميزان حسناتك

وبعد تجربة الكود يخرج الناتج بنفس الطريقة القديمة 5+5=55

والغرض من البرنامج هو عمل الة حاسبة

وشكرا مرة اخرى

#5

السلام عليكــم ورحمـة الله وبركاتــه ،،

بإمكانك التحويل بإستخدام الدالة

Int32::Parse(string)

#6

جربتها من قبل ويظهر لى هذا الخطا

error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : cannot convert parameter 1 from 'int' to 'System::String ^'

#7

انت تريد جمع القيم كأرقام ؟؟؟

this->Number1->Text=Convert::ToString(Convert::ToInt32(Number1->Text) +Convert::ToInt32( Number2->Text));

لم افهم ماتريد أولاً

الان هذا الكود يجمع ارقام

اما بخصوص Int32::Parse(string) نصيحتي لاتستخدم هذه الطرق القديمه في بيئه ال .NET لان ال .NET تختصر عليك الكثير فقط عليك معرفه الكلاس Convert ومن خلاله حول لكل ما تريد

تم تعديل هذه المشاركة بواسطة Ali Al-Zyoud في 25 أكتوبر 2009 في 16:08

#8

الان تعمل بنجاح شكرا جزيلا وشكرا على النصيحة

وشكرا للاخ بن العيد على المساعدة

جزاكم الله خيرا

لى استفسار اخر ان امكن

بالنسبة لبيئة mfc فهى ليست ضمن الخيارات المتاحة عند عمل مشروع جديد فكيف يمكن اضافها الى برنامج visual c++ 2008 express

#9

السلام عليكــم ورحمـة الله وبركاتــه ،،

اقتباس
لى استفسار اخر ان امكن

بالنسبة لبيئة mfc فهى ليست ضمن الخيارات المتاحة عند عمل مشروع جديد فكيف يمكن اضافها الى برنامج visual c++ 2008 express

لا يمكن تطوير مشاريع بإستخدام النسخة الخفيفة للفيزوال ستوديو.

ينبغي إستخدام الإصدار الكامل بإتباع الموضوع Mfc: مراحل إنشاء مشروع جديد

#10

حقيقتاً لا اعلم اذا كانت ال MFC متوفره في ال express edition لانني انا استخدم vs 2005 professional edition

وشخصياً انصحك بأستخدام ال professional edition لانها تحاوي كل شيء وتحتوي لغات أخرى غير ال سي

ملاحظه الجمع عندك سيكون فقط للأعداد الصحيحه اذا اردت ان تجمع الكسور العشريه استعمل Convert::ToDouble

ولكن العمل تحت بيئه MFC سيكون اصعب بكثير من عملك الحالي اذا لم تكن ملم بمواضيع ال MFC

تم تعديل هذه المشاركة بواسطة Ali Al-Zyoud في 25 أكتوبر 2009 في 17:34

#11

شكرا على المعلومات

:rolleyes:

#12

السلام عليكــم ورحمـة الله وبركاتــه ،،

تنفيذ المطلوب في MFC أيسر بكثير و لا يتطلب الكثير من المعرفة :)

 

 // Method1 using char* 
    CString temp("");
 char* a("2");
 char* b("2");
 temp.Format(_T("%d"),(atoi(a)+atoi(B)));
 MessageBox(temp);


  // Method2 using CSting
 CString temp("");
     CString a1("2");
  CString a2("4");
     int a = _ttoi(a1);
  int b = _ttoi(a2);
  temp.Format(_T("%d"),(a+B));
     MessageBox(temp);
#13

فعلا اثناء بحثى قرات ان atoi واخواتها هى الحل

باذن الله بحاول الدخول الى عالم mfc

وشكرا على المساعدة والتوجيه

#14
السلام عليكــم ورحمـة الله وبركاتــه ،،
تنفيذ المطلوب في MFC أيسر بكثير و لا يتطلب الكثير من المعرفة

?????????

لا الامر يتطلب المعرفه في ال MFC انت لم تعمل سوى جمع strings ولم تضف buttons او textbox ولاسبيل للمقارنه بين العمل في بيئه ال .NET وال MFC من حيث السهوله ، ان لا اقول انه امر صعب ولكنه يتطلب معرفه بال MFC حيث انه لغير الملم بمكتبات ال MFC لايستطيع تحليل معنى الكود ، ولكن الضاهر ان الاخ يعرف بال MFC وعمليه بنها ال dialogs بأستخدامها .

ولكن ان تقول انه ايسر بكثير فهذا كلام مبالغ فيه !!!!!!!!!!!!!!!!!!! ولماذا الله اعلم ؟؟؟؟؟؟

قارن حجم الكود والكود تاعتك ناقصه اضافات ال buttons و ال textbox و ربط ال variables بال controllers اما ما كتبته انا فهو كل ما تحتاجه للكتابه فيف انه ايسر بكثير ؟؟؟؟؟؟؟

يا اخي لاتحاول تغالط الناس عشان تبين فهمان هناك الكثير افهم مني ومنك بموضوع البرمجه فلا تستخدم مبداء خالف تعرف 

تم تعديل هذه المشاركة بواسطة Ali Al-Zyoud في 25 أكتوبر 2009 في 20:38

#15
اقتباس
يا اخي لاتحاول تغالط الناس عشان تبين فهمان هناك الكثير افهم مني ومنك بموضوع البرمجه فلا تستخدم مبداء خالف تعرف

"وعباد الرحمن الذين يمشون على الارض هونا واذا خاطبهم الجاهلون قالوا سلاما "

#16
بن العيد كتب:

"وعباد الرحمن الذين يمشون على الارض هونا واذا خاطبهم الجاهلون قالوا سلاما "

أذاً تستحق ان يقال لك ســــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــلام

#17
اقتباس
اما بخصوص Int32::Parse(string) نصيحتي لاتستخدم هذه الطرق القديمه في بيئه ال .NET لان ال .NET تختصر عليك الكثير فقط عليك معرفه الكلاس Convert ومن خلاله حول لكل ما تريد

Int32::Parse و Int32::TryParse هما بالفعل احدى دوال الفئة In32 فى الدوت نت, لهم استخدامات لاتتوفر فى Convert::ToInt32 مثل التحقق من نجاح عملية التحويل.

مواضيع متنوعة

#18
Moudey كتب:
Int32::Parse و Int32::TryParse هما بالفعل احدى دوال الفئة In32 فى الدوت نت, لهم استخدامات لاتتوفر فى Convert::ToInt32 مثل التحقق من نجاح عملية التحويل.

كلام صحيح هي من بيئه الدوت نت ، ولكن السبب الذي نصحته بأستخدام ال Convert هو انك سوف تعيد تحويل ال int الى string لوضعه داخل ال textbox فلذلك قد تضطر تستخدم Convert ، و شيء اخر هو ان الرقم سيكون int اي لايقبل الفاصله العشريه ولا يعطيك جواب بالكسور فقد تستخدم تضطر الى تحويل ال string الى double او float فالاسهل لك هو ان تستخدم داله واحده للقيام بكل هذا العمل بدلاً من ان تستخدم العديد من الدوال حتى تسهل فهم برنامجك وعملياً ال Convert تسهل العمل على الجديدين في بيئه ال .net لانها تحتوي جميع انواع التحويل فلا تضطر لحفظ اي دوال . هذا كان قصدي من استخدامها وشكراً على التعديلل وتنبيه انها من بيئه ال .net

تم تعديل هذه المشاركة بواسطة Ali Al-Zyoud في 28 أكتوبر 2009 في 08:54

مواضيع مشابهة