kachwahed
08-07-2009, 08:34 PM
السلام عليكم
كلنا يعرف الحلقة التكرارية for..to..do، فمثلا هذه الحلقة تقوم بتفحص جدول يحتوي على أربعة ألوان وتقارنه بما كتب في خانة النص Edit1 مثال:
var
vColor: array[1..4] of String = ('Red', 'Blue', 'Green', 'White');
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := Low(vColor) to High(vcolor) do
begin
if vColor[i] = Edit1.Text then
begin
ShowMessage('Valid color');
Exit;
end;
end;
ShowMessage('Invalid color!');
end;
انطلاقا من النسخة Delphi 2006 يمكن كتابة نفس الكود السابق بشكل آخر:
var
vColor: array[1..4] of String = ('Red', 'Blue', 'Green', 'White');
procedure TForm1.Button1Click(Sender: TObject);
var
C: String;
begin
for C in vColor do
begin
if Edit1.Text = C then begin
ShowMessage('Valid color.');
Exit;
end;
end;
ShowMessage('Invalid color!');
end;
هذه الحلقة المتدرجة (Rambling loop) تعتبر أسهل من حيث القراءة والتفحص، كما أننا في هذه الطريقة لسنا بحاجة لمعرفة حجم الجدول (أعلى وأدنى قيمة)، وكما استعملنها مع جدول بقيم نصية (String) يمكن استعمالها مع أي جدول من قيم آخرى (integer, char...) بنفس الطريقة، ومع مكونات أخرى مثل TStringList و...
RamblingLoop كمثال يدل على أن لغة الدلفي لا تزال في تطور مستمر (خلافا لمن يظن أن لغة دلفي تنحصر في لغة الباسكال القديمة مضافا إليها بعض المكونات)، فضلا عن إضافات أخرى مثل الأقسام (أو الدوال أو الأنماط) المورثة (Generics Class/Function/Type) مثل:
type
TGenericType<AnyType> = class
FData: AnyType;
end;
وغيرها...، ولا تتحدث عن المكونات والأقسام والأنماط الجديدة، إضافة إلى التوافق (أو المواءمة Compatibility) و...و...
بالتوفيق.
كلنا يعرف الحلقة التكرارية for..to..do، فمثلا هذه الحلقة تقوم بتفحص جدول يحتوي على أربعة ألوان وتقارنه بما كتب في خانة النص Edit1 مثال:
var
vColor: array[1..4] of String = ('Red', 'Blue', 'Green', 'White');
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := Low(vColor) to High(vcolor) do
begin
if vColor[i] = Edit1.Text then
begin
ShowMessage('Valid color');
Exit;
end;
end;
ShowMessage('Invalid color!');
end;
انطلاقا من النسخة Delphi 2006 يمكن كتابة نفس الكود السابق بشكل آخر:
var
vColor: array[1..4] of String = ('Red', 'Blue', 'Green', 'White');
procedure TForm1.Button1Click(Sender: TObject);
var
C: String;
begin
for C in vColor do
begin
if Edit1.Text = C then begin
ShowMessage('Valid color.');
Exit;
end;
end;
ShowMessage('Invalid color!');
end;
هذه الحلقة المتدرجة (Rambling loop) تعتبر أسهل من حيث القراءة والتفحص، كما أننا في هذه الطريقة لسنا بحاجة لمعرفة حجم الجدول (أعلى وأدنى قيمة)، وكما استعملنها مع جدول بقيم نصية (String) يمكن استعمالها مع أي جدول من قيم آخرى (integer, char...) بنفس الطريقة، ومع مكونات أخرى مثل TStringList و...
RamblingLoop كمثال يدل على أن لغة الدلفي لا تزال في تطور مستمر (خلافا لمن يظن أن لغة دلفي تنحصر في لغة الباسكال القديمة مضافا إليها بعض المكونات)، فضلا عن إضافات أخرى مثل الأقسام (أو الدوال أو الأنماط) المورثة (Generics Class/Function/Type) مثل:
type
TGenericType<AnyType> = class
FData: AnyType;
end;
وغيرها...، ولا تتحدث عن المكونات والأقسام والأنماط الجديدة، إضافة إلى التوافق (أو المواءمة Compatibility) و...و...
بالتوفيق.