Array ve record kullanımı (array and record usage)

Copyright© by Yusuf CELIK

yusufcelik@gmail.com 

Borland Delphi kod parçacığı (Borland Delphi code snippets) 

type
TRenkKod = (rkRenksiz, rkKirmizi, rkSari, rkMavi, rkYesil, rkBeyaz, rkSiyah, 
 rkKrem, rkTuruncu);
//TColorCode = (rkNone, rkRed, rkYellow, rkBlue, rkGreen, rkWhite, rkBlack, 
rkCream, rkorange);
TArabaVeRenkleri = record //CarsAndColors
ArabaAdi : string[50]; //CarName
Renk : TRenkKod; //Color
end;

const
Arabalar : array[1..9] of TArabaVeRenkleri =
(
(ArabaAdi:
'Mercedes' ; Renk:rkBeyaz),
(ArabaAdi:
'Honda' ; Renk:rkKrem),
(ArabaAdi:
'BMW' ; Renk:rkSiyah),
(ArabaAdi:
'Opel' ; Renk:rkSari),
(ArabaAdi:
'Porche' ; Renk:rkTuruncu),
(ArabaAdi:
'Ferrari' ; Renk:rkKirmizi),
(ArabaAdi:
'Toyota' ; Renk:rkMavi),
(ArabaAdi:
'Mitsubishi' ; Renk:rkYesil),
(ArabaAdi:
'Volkswagen' ; Renk:rkKrem)
);

function ArabaSayisi():Integer; //NumberOfCars
begin
Result := High(Arabalar)-Low(Arabalar)+1;
end;

function ArabaAdi(Indx : Integer):string; //CarNameByIndex
begin
Result := 'Tanimsiz'; //Unknown
if Indx < Low(Arabalar) then Exit;
if Indx > High(Arabalar) then Exit;

Result := Arabalar[Indx].ArabaAdi;
end;

function ArabaRengi(Indx : Integer):TRenkKod;overload; //CarColorByIndex
begin
Result := rkRenksiz;
if Indx < Low(Arabalar) then Exit;
if Indx > High(Arabalar) then Exit;
Result := Arabalar[Indx].Renk;
end;

function ArabaRengi(Value : string):TRenkKod;overload; //CarColorByValue
var
i : Integer;
begin
Result := rkRenksiz;
for i := Low(Arabalar) to High(Arabalar) do
begin
if Arabalar[i].ArabaAdi = Value then
begin
Result := Arabalar[i].Renk;
Exit;
end;
end;
end;
 

Örnek ve kullanım (Sample and usage) :

Araba sayisi : ShowMessage(IntToStr(ArabaSayisi)); //9
(Number of cars)

Araba adi :   ShowMessage(ArabaAdi(2)); //Honda
(Car name by index)

var
  t : RenkKod;
Araba rengi :  t := ArabaRengi(3); //rkSiyah (rkBlack) BMW
(car color by index) t := ArabaRengi(2); //rkKrem (rkCream) Honda
 
Araba rengi :  t := ArabaRengi('Honda'); //rkKrem (rkCream)
(car color by name) t := ArabaRengi('Porche'); //rkturuncu (rkOrange)