امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعریف آرایه های دوبعدی یا چندبعدی پویا در دلفی
نویسنده پیام
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #1
تعریف آرایه های دوبعدی یا چندبعدی پویا در دلفی
سلام Heart
منظور از آرایه ی پویا، آرایه ای است که در هنگام تعریف متغیرها طول آن مشخص نشده و قرار است در زمان اجرا تعیین شود. این کار براحتی توسط زیربرنامه ی SetLength انجام پذیر است.

از آنجایی که تا به حال فقط با آرایه های یک بعدی کار کرده بودم، تعریف یک آرایه دوبعدی پویا برایم تازگی داشت که نتیجه را در اینجا قرار میدهم.

دو روش در زیر آمده:
1ـ استفاده از عبارت کلیدی array of چندین بار پشت سر هم (به تعداد ابعاد آرایه)
2ـ تعریف آرایه از از نوع آرایه

کد php:
procedure TForm1.FormCreate(SenderTObject);
type
 BaseArr 
= array of Byte;
 
MyRGB record
 R
GBByte;
 
end;
 
BaseArr2 = array of MyRGB;
var
 
Arr1: array of BaseArr;
 
Arr2: array of array of Byte;
 
Arr3: array of array of array of Byte;
 
Arr4: array of BaseArr2;
begin
 SetLength
(Arr11010);
 
SetLength(Arr2105);
 
SetLength(Arr33128);
 
SetLength(Arr433);

 
Arr1[00] := 1;
 
Arr1[99] := 81;

 
Arr2[07] := 9;
 
Arr2[97] := 13;

 
Arr3[000] := 0;
 
Arr3[2117] := 0;

 
Arr4[00].:= 255;
 
Arr4[00].:= 128;
 
Arr4[00].:= 0;
end

به دستور Arr2[9, 7] := 13 توجه کنید!Amaze
بعد دوم آرایه ی Arr2 فقط 5 خانه دارد یعنی Index مجاز از صفر تا 4 است!!!
به نظر شما چرا این فرمان اجرا میشود و خطایی رخ نمیدهد؟Confused
وقتی Arr2 را با Watch مشاهده می کنیم همه چیز طبیعی به نظر میرسد ولی...
ولی جالب است بدانید که مقدار 13 واقعاً در مکان 9 و 7 ذخیره شده و قابل دسترسی است.Sad

کد php:
ShowMessage(IntToStr(Arr2[97])); 
مقدار 13 را مشاهده خواهید کرد!!!!

موفق باشید Wink
Confused


۱۰-آذر-۱۳۸۹, ۰۰:۴۳:۴۹
ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] ساخت EDITOR مانند دلفی hameds606 3 1,463 ۱۱-خرداد-۱۳۹۸, ۱۰:۰۷:۲۳
آخرین ارسال: lord_viper
  دریافت اطلاعات از سخت افزار در دلفی m59alizadeh 6 7,169 ۰۶-آذر-۱۳۹۵, ۱۳:۰۱:۴۹
آخرین ارسال: lord_viper
  تبدیل کد به دلفی The.Ghost 2 3,691 ۱۶-فروردین-۱۳۹۴, ۲۲:۱۵:۰۴
آخرین ارسال: veyskarami
  ارسال ایمیل با دلفی h_mohamadi 13 10,453 ۱۴-آبان-۱۳۹۳, ۱۸:۰۰:۴۳
آخرین ارسال: babyy
  فیلم آموزش مدیریت استثنائات در دلفی بهروز عباسی 2 3,152 ۳۰-مرداد-۱۳۹۳, ۱۵:۵۳:۰۸
آخرین ارسال: veyskarami
  [سوال] ریجستری در دلفی spase 2 3,045 ۱۸-خرداد-۱۳۹۳, ۱۵:۵۶:۴۷
آخرین ارسال: veyskarami
  کامپوننت ترد در دلفی hesarkhani 2 3,701 ۰۲-اردیبهشت-۱۳۹۳, ۲۲:۰۸:۴۵
آخرین ارسال: The.Ghost
  سورس دلفی lord_viper 46 58,074 ۰۹-دى-۱۳۹۲, ۱۹:۳۸:۳۳
آخرین ارسال: بهروز عباسی
  [آموزشی] 6700 نکته و کد دلفی lord_viper 0 2,940 ۰۴-دى-۱۳۹۲, ۱۰:۰۴:۳۱
آخرین ارسال: lord_viper
  اخبار دلفی lord_viper 10 9,006 ۲۹-مرداد-۱۳۹۲, ۰۲:۰۳:۴۰
آخرین ارسال: veyskarami

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS