Moin...
Zitat:
Ich habe den Crashkurs jetzt gelesen und außerdem der Klasse die Eigenschaften ImageTop und ImageLeft hinzugefügt:
Ein Schritt nach dem Anderen...
Zitat:
Also ohne Generics (ja, haut mich)
...
knapp daneben. Warum sollte er nicht die neuen Möglichkeiten nutzen?
Delphi-Quellcode:
TForm1 = class(TForm) // bestehend
.
.
private
MeineObjectList := TObjectList<TBild>; // die Instanz der Liste
public
constructor Create;
destructor Destroy; override;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
//MeineObjectList: TObjectList;
Test: TBild;
begin
// MeineObjectList := TObjectList<TBild>.Create(True);
// -> Generics, das True bedeutet das die Listeneinträge von der Liste verwaltet werden (Freigabe)
// -> Verlagern in den constructor
Key := 'Feld'+IntToStr(Feldx)+','+IntToStr(Feldy);
Test := TBild.Create;
Test.FImageName:=Key;
Test.FImageHeight:=Feldsize;
Test.FImageWidth:=Feldsize;
Imagelist1.GetBitmap(0,Test.FImageContent);
MeineObjectList.Add(Test);
// Irgendwo musst du dann auch die ObjectListe wieder freigeben.
end;
... und dann greifst du auf die Liste zu um mit dem Bild (TBild) zu arbeiten...
Delphi-Quellcode:
var
DasBild: TBild;
begin
DasBild := MeineObjectList[DeinGewünschterIntex]; // durch die Generics kannst das Object direkt ohne Casten benutzen
end;
... die Listen haben noch weitere Funktionen um auf das Bild zuzugreifen.
http://docwiki.embarcadero.com/Libra...ns.TObjectList
http://docwiki.embarcadero.com/Libra...ctList_Methods
...Freigabe der "MeineObjectList"
Delphi-Quellcode:
constructor Create;
begin
MeineObjectList := TObjectList<TBild>.Create(True);
end;
destructor Destroy;
begin
MeineObjectList.Free;
inherited;
end;