![]() |
|
سـؤال في الدرس الثآلث من دورة دلفي - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : سـؤال في الدرس الثآلث من دورة دلفي (/showthread.php?tid=1213) |
سـؤال في الدرس الثآلث من دورة دلفي - Smart - 16-09-2009 السلآم علـيكم , كيف الحال , بإختصآر شديد اخوآني , وصلت نقطه في الدرس الثآلث وطبقة مثل ما في الدرس ويعطيني غلط !! للي شوف الدرس او عنده الدرس السطر هذا كود : Edit4.Text := IntToStr(MathOperation (StrToInt(Edit1.Text), StrToInt(Edit2.Text), Edit3.Text));ونص الرسآله تبع الخطأ هي , كود : [Warning] Unit1.pas(36): Return value of function 'MathOperation' might be undefined
[Error] Unit1.pas(56): Incompatible types: 'Integer' and 'TCaption'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'بإنتظآركم سـؤال في الدرس الثآلث من دورة دلفي - STRELiTZIA - 16-09-2009 و عليكم السلام و رحمة الله لو ركزت اكثر على الدرس لرايت الحل بام عينيك اعد تتبع الدرس و قف عند مرحلة تحويل اوامر الحدث الى دالة مستقلة : MathOperation اين تجد ملاحضة تتحدث عن مراعاة التحويل بين القيم المختلفة، و خصوصا الربط الصحيح لطبيعة القيمة المرجعة لدالة... و ستجد ايضا ان دلفي يظهر نفس الرسالة التي تحدث عنها و طريقة معالجتها... الدالة في اول تجربة ترجع قيمة integer : كود : function MathOperation(a, b :[COLOR=red] integer[/COLOR]; Sig: string): [COLOR=red]integer[/COLOR];
var c: integer;
begin
c := 0;
if Sig = '+' then c :=[COLOR=red] a + b[/COLOR];
if Sig = '-' then c := [COLOR=red]a - b[/COLOR];
if Sig = '*' then c := [COLOR=red]a * b[/COLOR];
result := c;
end;اوامر حدث النقر : PHP كود : Edit4.Text := IntToStr(MathOperation (StrToInt(Edit1.Text), StrToInt(Edit2.Text), Edit3.Text)); الدالة في ثاني تجربة ترجع string : كود : function MathOperation([COLOR=red]a, b, Sig: string[/COLOR]): [COLOR=red]string[/COLOR];
var c: integer;
begin
c := 0;
if Sig = '+' then c := [COLOR=red]StrToInt[/COLOR](a) +[COLOR=red] StrToInt[/COLOR](b);
if Sig = '-' then c := [COLOR=red]StrToInt[/COLOR](a) - [COLOR=red]StrToInt[/COLOR](b);
if Sig = '*' then c := [COLOR=red]StrToInt[/COLOR](a) * [COLOR=red]StrToInt[/COLOR](b);
result := [COLOR=red]IntToHex[/COLOR](c, 8);
end;اوامر حدث النقر : PHP كود : ResultEdt.Text := MathOperation(FirstValEdt.Text, SecondValEdt.Text, SigEdt.Text); بعض الأحيان من الأفضل الخروج من الدرس لمدة 10 دقائق و عمل شئ آخر ثم الرجوع اليه ليتم هضمه لان النظرة تتغير للمشكل.... طريقة تعمل 100 % :monster1: بالتوفيق ان شاء الله |