Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#19

AW: ListBox und array

  Alt 14. Mär 2011, 16:40
Du willst einfach nicht in Objekten bzw. Klassen denken.
(Mein letzter Versuch)
Die Klasse TStrings bzw. TStringList bringt schon alles mit, um eine Liste von Namen zusammen mit weiteren Daten (=Objekte) zu verwalten.
Bitte kein Array verwenden.

Es gibt 2 Klassen:
1.) eine ganz einfache Klasse, die die Daten aufnimmt.
Pro Wert gibt es ein Property oder Member-Variable.
Delphi-Quellcode:
TInstrument = class(TObject)
public
  Name : string;
  ProgrammNo: integer;
  SchlagInstr: Boolean;
  procedure LoadFromCSV(const line:string); // befüllt die Werte aus einem CSV-String
end;
Es ist hier nicht einmal notwendig, echte Properties einzuführen, da die Klasse "intern" verwendet wird und nicht unbedingt diesen Schutz benötigt.
2.) eine Ableitung von TStringList
Delphi-Quellcode:
TInstrumentList = class(TStringList)
public
  procedure AddInstrument(instr : TInstrument);
  procedure FreeInstruments;

  procedure LoadInstrumentsFromFile(const filename:string);
end;

procedure TInstrumentList.AddInstrument(instr : TInstrument);
begin
  AddObject(instr.Name, instr);
end;

procedure TInstrumentList.FreeInstruments;
var i : integer;
begin
  for i := Count-1 downto 0 do
  begin
    Objects[i].Free;
    delete(i);
  end;
end;
Andreas
  Mit Zitat antworten Zitat