हाँ! एक चाल का उपयोग करके!
सबसे पहले एक नया प्रकार घोषित करें। मैं कक्षा के बजाय रिकॉर्ड प्रकार का उपयोग करता हूं क्योंकि रिकॉर्ड का उपयोग करना थोड़ा आसान है।
type
TMyArray = record
strict private
FArray: array of Integer;
FMin, FMax:Integer;
function GetItem(Index: Integer): Integer;
procedure SetItem(Index: Integer; const Value: Integer);
public
constructor Create(Min, Max: integer);
property Item[Index: Integer]: Integer read GetItem write SetItem; Default;
property Min: Integer read FMin;
property Max: Integer read FMax;
end;
RECORDTYPE साथ
परिभाषित, अब आप कोड का एक सा लागू करने की आवश्यकता:
constructor TMyArray.Create(Min, Max: integer);
begin
FMin := Min;
FMax := Max;
SetLength(FArray, Max + 1 - Min);
end;
function TMyArray.GetItem(Index: Integer): Integer;
begin
Result := FArray[Index - FMin];
end;
procedure TMyArray.SetItem(Index: Integer; const Value: Integer);
begin
FArray[Index - FMin] := Value;
end;
प्रकार घोषित साथ, आप अब इसका इस्तेमाल करने शुरू कर सकते हैं:
var
Arr: TMyArray;
begin
Arr := TMyArray.Create(2, 10);
Arr[2] := 10;
यह वास्तव में एक विशिष्ट सीमा के साथ सरणी बनाने के लिए एक साधारण चाल है और यदि आप चाहें तो इसे अधिक लचीला बना सकते हैं। या इसे एक वर्ग में परिवर्तित करें। निजी तौर पर, मैं इन प्रकार के सरल प्रकारों के लिए रिकॉर्ड पसंद करता हूं।
स्रोत
2010-10-27 11:00:36