Thema: Delphi TList + Exception

Einzelnen Beitrag anzeigen

bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#10

Re: TList + Exception

  Alt 9. Sep 2006, 22:40
So würde ich das machen:

Delphi-Quellcode:
type
  TBenutzer = class
  private
    FName: string;
    FNummer: Integer;
  public
    constructor: Create(const aString: string);
    property Name: string read FName;
    property Nummer: Integer read FNummer;
  end;

  TBenutzerListe = class
  private
    List: TList;
  public
    constructor Create;
    destructor Destroy;
    procedure Initialize(const ABenutzerListe: string);
    function GetBenutzer(I: Integer): TBenutzer;
    function GetCount: Integer;

    property Benutzer[i: Integer]: TBenutzer read GetBenutzer; default;
    property Count: Integer read GetCount;
  end;

  constructor TBenutzer.Create(const aString: string);
  begin
    FName := Copy(aString, 1, Pos(',', aString)-1);
    FNummer := StrToInt(Copy(aString, Pos(',', aString)+1, Length(aString)));
  end;

  constructor TBenutzerListe.Create;
  begin
    inherited;
    List := TList.Create;
  end;

  destrucotr TBenutzerListe.Destroy;
  begin
    inherited;
    List.Free;
  end;
 
  function TBenutzerListe.GetBenutzer(I: Integer): TBenutzer;
  begin
    Result := List[i] as TBenutzer;
  end;

  function TBenutzerListe.GetCount: Integer;
  begin
    Result := List.Count;
  end;

  procedure TBenutzerListe.Initialize(const ABenutzerliste: string);
  var
    temp: TStringList;
    i: Integer;
  begin
    temp := TStringList.Create;
    try
      temp.Text := ABenutzerListe;
      for i := 0 to temp.Count-1 do
        List.Add(TBenutzer.Create(temp[i]));
    finally
      temp.Free;
    end;
  end;
  

procedure FormButton1Click(Sender: TObject);
var
  BenutzerListe: TBenutzerListe;
  i: Integer;
begin
  BenutzerListe := TBenutzerListe.Create;
  BenutzerListe.Initialize(MeineBenutzerListe);
  for i := 0 to BenutzerListe.Count-1 do
    Memo.Lines.Add(Format('%s -> %d', (BenutzerListe[i].Name, BenutzerListe[i].Nummer]));
end;
Irgendwie so. Memo ist natürlich ein Memo-Feld auf dem Form. Woher MeineBenutzerListe kommt weiß ich nicht genau - die hast Du ja.
  Mit Zitat antworten Zitat