13-08-2019, 08:12 AM
13-08-2019, 11:25 AM
ماذا تقصد ؟ هل تعني في نفس الدالة او شى اخر
راجع delphi overload function ايضا
راجع delphi overload function ايضا
14-08-2019, 01:48 AM
(13-08-2019, 11:25 AM)delphi17 كتب : [ -> ]ماذا تقصد ؟ هل تعني في نفس الدالة او شى اخر
راجع delphi overload function ايضا
في نفس الدالة وليس دالة مطابقة في الاسم مختلفة في الوظيفه ,, لا اقصد Overload وسبق لي من فترة القراءة عنها ولم اطبق وعلى الاغلب Overload هي فقط نمط من OOP .
فقط قرأت ما قرأت في كتاب لغة C ووجدت ما استفسر عنه في دلفي
شكرا لاهتمامك اخي
14-08-2019, 07:07 AM
PHP كود :
type
TMyRec = record
Str : String;
Boo : Boolean;
end;
function DoQuery(AQuery: String): TMyRec;
begin
// do stuff
Result.Str := 'hello';
Result.Boo := False;
end;
procedure CallQuery;
begin
with DoQuery('this is my query') do
if Boo then
Edit1.Text := Str;
end;
14-08-2019, 12:56 PM
السلام عليكم
الموضوع فيه كل طرق ارجاع اكثر من قيمة بدالة
http://delphi4arab.net/forum/showthread.php?tid=10271
الموضوع فيه كل طرق ارجاع اكثر من قيمة بدالة
http://delphi4arab.net/forum/showthread.php?tid=10271
15-08-2019, 09:29 AM
الكود الذي قرأته خاص بلغة C وارجاع قيمتين باستخدام المؤشرات
الكود مرفق
الكود مرفق
15-08-2019, 10:15 AM
اسف اخي الحبيب عندي مشكلة مع النت
15-08-2019, 10:31 AM
وعليكم السلام ورحمة الله وبركاته.
الدالة (Function) في الدلفي لا يمكنها ارجاع أكثر من قيمة.
لكن هناك بعض الحيل من بينها :
1- ارجاع قيمة داخل الدالة لمتغير عام.
2- انشاء دالة من نوع Record.
الدالة (Function) في الدلفي لا يمكنها ارجاع أكثر من قيمة.
لكن هناك بعض الحيل من بينها :
1- ارجاع قيمة داخل الدالة لمتغير عام.
2- انشاء دالة من نوع Record.
PHP كود :
type
TMyRecord = record
First: integer;
Second: string;
end;
function MyFunction: TMyRecord;
begin
result.First := 1;
result.Second := 'Hello';
end;
15-08-2019, 12:26 PM
(15-08-2019, 09:29 AM)ELARAPY كتب : [ -> ]الكود الذي قرأته خاص بلغة C وارجاع قيمتين باستخدام المؤشرات
في الصورة المرفقة void تقابلها procedure في لغة باسكال
أما عن إرجاعه قيمتين، هي لم ترجع قيمتين وإنما عدلت على القيمين عبر المؤشر (أخذت عنوان القيمة ثم قام بالتعديل)
أقرب ترجمة له هو كالتالي:
PHP كود :
program Project1;
uses
sysutils, Math;
var
hours: integer;
minutes: integer;
proceudre minutesDevision(var hourspointer: integer; var minutespointer: integer);
begin
hourspointer := Floor(minutespointer / 60);
minutespointer := minutespointer mod 60;
end;
begin
hours := 0;
minutes := 90;
minutesDevision(hours, minutes);
writeln(inttostr(hours) + ' hours and ' + inttostr(minutes) + ' minutes');
readln;
end.
16-08-2019, 09:42 PM
وعليكم السلام ورحمة الله وبركاته
نعم يمكن ان ترجع اكثر من قيمة في الدلفي
نعم يمكن ان ترجع اكثر من قيمة في الدلفي
كود :
function MyFunct(i:Integer ;out x,y :Integer): string;
begin
Result :='Hello abou mouad ' ;
x:=i+1;
y:=i+2;
end;
procedure TForm1.Button1Click(Sender: TObject);
var x,y :Integer;
begin
label1.caption :=MyFunct(1,x,y)+x.ToString+ ' '+ y.ToString;
end;