بسم الله الرحمن الرحيم
مثال بسيط جدا غير متقدم فقط احاول ان افهم بهذا المثال البسيط بعض الاساسيات في لغة delphi.
احتاج معرفة بالتحكم بالالوان وكذلك التعامل مع الفاصلة بالعمليات الحسابية وفق فكرة المثال
n1,n2 o
رقمي رقمي نصي
وكذلك استخدمت متغيرين boolean لمعرفة هل تم النقر على علامة = والاخر هل تم النقر على علامة عملية حسابية.
var cont:boolean;
var yes:boolean=false;
ساضيف الموضوع ثم احدثه برفع المرفق لاني اواجه مشكلة الحظر بسبب كتابة الاكواد بمحرر المنتدى او رفع ملفات مضغوطة
فيه قصور في المشروع وهو عدم اخذ اكثر من رقم للمتغير n1 و n2 فلو نقرت رقم 1 اكثر من مرة فلن يخزن الا رقم 1 مرة.
أحدث نسخة بعد اصلاح كافة العيوب الممكنة
#15
(21-06-19, 06:51 PM)سعود كتب : [ -> ]بسم الله الرحمن الرحيم
مثال بسيط جدا غير متقدم فقط احاول ان افهم بهذا المثال البسيط بعض الاساسيات في لغة delphi.
احتاج معرفة بالتحكم بالالوان وكذلك التعامل مع الفاصلة بالعمليات الحسابية وفق فكرة المثال
n1,n2 o
رقمي رقمي نصي
وكذلك استخدمت متغيرين boolean لمعرفة هل تم النقر على علامة = والاخر هل تم النقر على علامة عملية حسابية.
var cont:boolean;
var yes:boolean=false;
ساضيف الموضوع ثم احدثه برفع المرفق لاني اواجه مشكلة الحظر بسبب كتابة الاكواد بمحرر المنتدى او رفع ملفات مضغوطة
(لست مبرمج Delphi)
ماشاء الله.
يحتاج تعديل بسيط،
وهو بعد الانتهاء من إظهار ناتج العملية والشروع بضغط رقم جديد أن يتم مسح الشاشة.
مثلا [2] + [3] [=] >>>> 5
هنا عند الضغط على رقم جديد (بدون ضغط [C]) سيتم وضع الرقم الجديد بعد الناتج القديم.
بداية موفقة لأول استخدام لبيئة جديدة.
الان ... ماهو نوع الرقم الذي يقبل اي شي اقصد كسر او غيره
الجميل بهذه اللغة ان البرنامج لا ينكسر ولا يتوقف وكانك وضعت رسالة عند Catch
إقتباس :مثلا [2] + [3] [=] >>>> 5
هنا عند الضغط على رقم جديد (بدون ضغط [C]) سيتم وضع الرقم الجديد بعد الناتج القديم.
اي نعم مثل ماقلت التصحيحات تتوالى

(21-06-19, 08:07 PM)سعود كتب : [ -> ]الان ... ماهو نوع الرقم الذي يقبل اي شي اقصد كسر او غيره
الجميل بهذه اللغة ان البرنامج لا ينكسر ولا يتوقف وكانك وضعت رسالة عند Catch
إقتباس :مثلا [2] + [3] [=] >>>> 5
هنا عند الضغط على رقم جديد (بدون ضغط [C]) سيتم وضع الرقم الجديد بعد الناتج القديم.
اي نعم مثل ماقلت التصحيحات تتوالى 
(لست مبرمج Delphi)
يجب أن يكون نوع الرقم Single أو Double لقبول الرقم العشري
قم يتعريف متغير للناتج r مع تغيير نوع البيانات للمتغيران n1 وn2 مثل
كود :
var n1:Single;
var n2:Single;
var r:Single;
ثم استخدم القيمة بالعلامة / مثل
كود :
else if o='/' then
begin
r := n1 / n2 ;
label1.caption:= label1.caption + FloatToStr(r) ;
end;
تم تحويل الناتج العشري الى نص بـ FloatToStr
انا استخدمت نوع نص للارقام بحيث يمكن عملية الضم لبعض في الشاشة الخاصة بالعرض ولا مشكلة الا بالعدد العشري.
ايضا اتمنى ان اجد كود للتحقق من هل label تحتوي نص معين او رمز مثل
if label1.text.contains("=") then....
مشكلة رسالة الخطا زالت بعد دوال التحويل.
بقي كود التحقق من ان الشاشة تحتوي على علامة = ام لا.
(21-06-19, 09:40 PM)أبوبكر سويدان كتب : [ -> ] (21-06-19, 09:14 PM)سعود كتب : [ -> ]انا استخدمت نوع نص للارقام بحيث يمكن عملية الضم لبعض في الشاشة الخاصة بالعرض ولا مشكلة الا بالعدد العشري.
ايضا اتمنى ان اجد كود للتحقق من هل label تحتوي نص معين او رمز مثل
if label1.text.contains("=") then....
مشكلة رسالة الخطا زالت بعد دوال التحويل.
بقي كود التحقق من ان الشاشة تحتوي على علامة = ام لا.
كود :
uses
StrUtils;
..
if ContainsText(Label1.Caption, '=') then
اذا الصورة واضحة فيه خط متعرج احمر ماهي المشكلة؟
إقتباس :[dcc32 Error] MyCalc.pas(8): E2029 Declaration expected but identifier 'StrUtils' found