Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Komponenten-Entwcilung: xyz[i].name

  Alt 17. Jan 2004, 15:25
Moin lkz,

ist halt die Frage, ob xyz bei Dir wiederum ein Objekt, oder einfach nur ein Recordtyp sein soll.
In jedem Falle müsstest Du wohl ein (dynamisches) Array für xyz vorsehen

Beispiel:

Delphi-Quellcode:
type
  TMyRecord = packed record
    name : string;
    id : integer;
  end;

  TMyComponent = class(TObject)
  private
    FMyList : array of TMyRecord;
      function Getxyz(index: integer): TMyRecord;
      procedure Setxyz(index: integer; const Value: TMyRecord);
  public
    constructor Create;
    procedure Add(const AsName : string;AiId : integer);
    property xyz[index : integer] : TMyRecord read Getxyz write Setxyz;
  end;

implementation

{$R *.DFM}

{ TMyComponent }

procedure TMyComponent.Add(const AsName: string; AiId: integer);
begin
  SetLength(FMyList,length(FMyList)+1);
  FMyList[high(FMyList)].name := AsName;
  FMyList[high(FMyList)].Id := AiId;
end;

constructor TMyComponent.Create;
begin
  inherited;
  SetLength(FMyList,0);
end;

function TMyComponent.Getxyz(index: integer): TMyRecord;
begin
  Result := FMyList[index];
end;

procedure TMyComponent.Setxyz(index: integer; const Value: TMyRecord);
begin
  FMyList[index] := Value;
end;
Das Beispiel enthält keinerlei Sicherheitsprüfungen (Index), und das Array immer um einen Wert zu vergrössern, ist auch nicht besonders geschickt, aber es zeigt einen Weg auf, wie es grundsätzlich machbar wäre.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat