08-07-2009, 07:34 PM
[COLOR="black"]السلام عليكم
كلنا يعرف الحلقة التكرارية for..to..do، فمثلا هذه الحلقة تقوم بتفحص جدول يحتوي على أربعة ألوان وتقارنه بما كتب في خانة النص Edit1 مثال:
انطلاقا من النسخة Delphi 2006 يمكن كتابة نفس الكود السابق بشكل آخر:
هذه الحلقة المتدرجة (Rambling loop) تعتبر أسهل من حيث القراءة والتفحص، كما أننا في هذه الطريقة لسنا بحاجة لمعرفة حجم الجدول (أعلى وأدنى قيمة)، وكما استعملنها مع جدول بقيم نصية (String) يمكن استعمالها مع أي جدول من قيم آخرى (integer, char...) بنفس الطريقة، ومع مكونات أخرى مثل TStringList و...
RamblingLoop كمثال يدل على أن لغة الدلفي لا تزال في تطور مستمر (خلافا لمن يظن أن لغة دلفي تنحصر في لغة الباسكال القديمة مضافا إليها بعض المكونات)، فضلا عن إضافات أخرى مثل الأقسام (أو الدوال أو الأنماط) المورثة (Generics Class/Function/Type) مثل:
وغيرها...، ولا تتحدث عن المكونات والأقسام والأنماط الجديدة، إضافة إلى التوافق (أو المواءمة Compatibility) و...و...
بالتوفيق.[/COLOR]
كلنا يعرف الحلقة التكرارية for..to..do، فمثلا هذه الحلقة تقوم بتفحص جدول يحتوي على أربعة ألوان وتقارنه بما كتب في خانة النص Edit1 مثال:
PHP كود :
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;
PHP كود :
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;
RamblingLoop كمثال يدل على أن لغة الدلفي لا تزال في تطور مستمر (خلافا لمن يظن أن لغة دلفي تنحصر في لغة الباسكال القديمة مضافا إليها بعض المكونات)، فضلا عن إضافات أخرى مثل الأقسام (أو الدوال أو الأنماط) المورثة (Generics Class/Function/Type) مثل:
PHP كود :
type
TGenericType<AnyType> = class
FData: AnyType;
end;
بالتوفيق.[/COLOR]


