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

نسخة كاملة : هل تعريف كائن object في باسكال صحيح بهذه الطريقة ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
أريد أن أعرف هل هذا اصحيح

أريد أن أعرف هل هذا التعريف الذي وضعته و الكود سورس أيضا صحيح
وشكرا

بسم الله الرحمن الرحيم
الصلاة السلام على رسول الله صلى الله عليه وسلم

تعريف كائن object في باسكال

هذا الكائن object يملك 8 مناهج  Methodes
الاول constructor وهو يقوم بحجز مساحة من الذاكرة للمتغييرين تابعين للكائن object
بواسطة الكلمة المحفوظة New .

والمنهج Methode الثاني هو destructor يقوم تحرير المساحة المحجوزة من الذاكرة للمتغييرين السابقين
بواسطة الكلمة المحفوظة Dispose .

والمنهج Methode الثالث يقوم بادخال قيمتين لعرضهما فيما بعد

والمنهج Methode الرابع Addition يقوم  بجمع القيمتين المدخلتين
والمنهج Methode الخامس Soustraction يقوم  بطرح القيمتين  المدخلتين
والمنهج Methode السادس Multiplucation يقوم  بضرب القيمتين  المدخلتين
والمنهج Methode السابع Division يقوم  بقسمة القيمتين  المدخلتين
والمنهج Methode الثامن Affiche يقوم  بعرض القيمتين  المدخلتين

نصرح بمتغييرين من نوع الكائن هكذا
var ca1: pcalc1
وداخل جسم االبرنامج نحجز مساحة من الذاكرة للكائن
New(ca1, Initia);
ثم نرسل القيم لعرضها
 ca1.Entree(12, 6)
ثم نعرض القيم
 Dispose(ca1, Vide)





كود :
[left][code] program ObTest; {$APPTYPE CONSOLE}  type    pint = ^tint;    tint = integer;    pcalc1 = ^calc1;    calc1 = object     intA, intB: pint;     constructor Initia;     destructor Vide;     procedure Entree(a, b: tint);     function Addition: integer;     function Soustraction: integer;     function Multiplucation: integer;     function Division: integer;     procedure Affiche;    end; { calc1 } procedure calc1.Entree(a, b: tint); begin  intA^ := a;  intB^ := b; end; constructor calc1.Initia; begin  New(intA);  New(intB); end; destructor calc1.Vide; begin  Dispose(intB);  Dispose(intA); end; function calc1.Addition: integer; begin  Result := intA^+intB^; end; procedure calc1.Affiche; begin   WriteLn(intA^, ' + ', intB^, ' ',Addition);   WriteLn(intA^, ' - ', intB^, ' ',Soustraction);   WriteLn(intA^, ' * ', intB^, ' ',Multiplucation);   WriteLn(intA^, ' / ', intB^, ' ',Division); end; function calc1.Division: integer; begin  Result := intA^ div intB^; end; function calc1.Multiplucation: integer; begin  Result := intA^*intB^; end; function calc1.Soustraction: integer; begin  Result := intA^-intB^; end; var ca1: pcalc1; begin   New(ca1, Initia);   ca1.Entree(12, 6);   ca1.Affiche;   Dispose(ca1, Vide);   readln; end.
[/left]

[/code]