![]() |
AW: TObjectList als Result
Der Beste Code ist nicht immer der passende Code. Wenn man sich die Fragen des TE mal durchliest, wird man Sehen, dass er diese Lösung hier schon im Ansatz nicht verstehen wird, da ihm ja offensichtlich die Grundlagen dafür fehlen.
Den Verweis auf das Schlißen derselbigen wird konsequent ignoriert. Eigentlich scheinen sich alle Fragen, um das selbe Programm/Problem zu drehen. |
AW: TObjectList als Result
@bernau
Die Lösung kam schon mit der ersten Antwort, und der Rest handelt von den Seiteneffekten (Speicherlecks). |
AW: TObjectList als Result
Zitat:
|
AW: TObjectList als Result
Die Frage für mich ist, warum erzeugt der TE ein Form, zieht dort acht TImages (Image1 bis Image7 und Allrounder) drauf, die beim erzeugen des Formulars alle instanziert sind, und überschreibt kurz gefasst "Allrounder" mit "Image5". Ein Stück Code der für mich keinen Sinn macht.
|
AW: TObjectList als Result
Zitat:
|
AW: TObjectList als Result
Viel Diskussion um das Thema, aber auf den zweiten Fehler ist niemand direkt eingegangen:
Zitat:
Und die zweite kann man bei dieser Art des Aufrufs auch nicht mehr freigeben.
Delphi-Quellcode:
Abgesehen davon währe ein Property mit Index hier sinnvoller:
Mylist := ImageLoader;
try Allrounder := TImage(Mylist[5]); finally MyList.Free; end;
Delphi-Quellcode:
TForm1 = class(TForm)
Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Allrounder : TImage; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } function GetImageLoader(AIndex: Integer): TImage; public { Public-Deklarationen } property ImageLoader[AIndex: Integer]: TImage read GetImageLoader; end; implementation function TForm1.GetImageLoader(AIndex: Integer): TImage; begin {alternativ FindComponent} case AIndex of 0: Result := Image1; 1: Result := Image2; 2: Result := Image3; {...} 6: Result := Image7; else raise Exception.CreateFmt('ungültiger Index: GetImageLoader(%d)', [AIndex]); end; end; begin Allrounder := ImageLoader[5]; Allrounder.Picture.LoadFromFile('Unbenannt.jpg'); end; |
AW: TObjectList als Result
Zitat:
dann direkt folgendes
Delphi-Quellcode:
begin
ImageLoader[5].Picture.LoadFromFile('Unbenannt.jpg'); end; |
AW: TObjectList als Result
Aber noch mal. Der TE äussert sich nicht. Damit weis keiner, was wirklich gewollt ist.
|
AW: TObjectList als Result
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz