Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TObjectList als Result (https://www.delphipraxis.net/182468-tobjectlist-als-result.html)

mkinzler 28. Okt 2014 11:20

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.

Sir Rufo 28. Okt 2014 11:21

AW: TObjectList als Result
 
@bernau

Die Lösung kam schon mit der ersten Antwort, und der Rest handelt von den Seiteneffekten (Speicherlecks).

bernau 28. Okt 2014 11:26

AW: TObjectList als Result
 
Zitat:

Zitat von Sir Rufo (Beitrag 1277677)
@bernau

Die Lösung kam schon mit der ersten Antwort, und der Rest handelt von den Seiteneffekten (Speicherlecks).

Deshalb werden Interfaces vorgeschlagen? Finde ich als Lösung für den TE sehr verwirrend. Ein Hinweis auf Mylist.Free genügt doch, wie er von "Neutral General" vorgeschlagen wurde.

bernau 28. Okt 2014 11:34

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.

Sir Rufo 28. Okt 2014 11:39

AW: TObjectList als Result
 
Zitat:

Zitat von bernau (Beitrag 1277679)
Zitat:

Zitat von Sir Rufo (Beitrag 1277677)
@bernau

Die Lösung kam schon mit der ersten Antwort, und der Rest handelt von den Seiteneffekten (Speicherlecks).

Deshalb werden Interfaces vorgeschlagen? Finde ich als Lösung für den TE sehr verwirrend. Ein Hinweis auf Mylist.Free genügt doch, wie er von "Neutral General" vorgeschlagen wurde.

Dafür werden/wurden auch Interfaces vorgeschlagen, ja völlig legitim. Entscheiden soll er selber, was ihm am Besten in den Kram passt.

Blup 28. Okt 2014 12:02

AW: TObjectList als Result
 
Viel Diskussion um das Thema, aber auf den zweiten Fehler ist niemand direkt eingegangen:
Zitat:

Zitat von Kuehter (Beitrag 1277533)
Delphi-Quellcode:
var
    MyList: TObjectlist;
    counter : integer;

begin

    Mylist := ImageLoader;
    Allrounder := TImage(Imageloader.Items[5]);
    Allrounder.Picture.LoadFromFile('Unbenannt.jpg');

end;

Wenn "ImageLoader" zwei mal aufgerufen wird, werden natürlich auch zwei Objektlisten erstellt.
Und die zweite kann man bei dieser Art des Aufrufs auch nicht mehr freigeben.
Delphi-Quellcode:
Mylist := ImageLoader;
try
  Allrounder := TImage(Mylist[5]);
finally
  MyList.Free;
end;
Abgesehen davon währe ein Property mit Index hier sinnvoller:
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;

bernau 28. Okt 2014 12:11

AW: TObjectList als Result
 
Zitat:

Zitat von Blup (Beitrag 1277690)
Viel Diskussion um das Thema, aber auf den zweiten Fehler ist niemand direkt eingegangen:

Dein Property ImageLoader ist genau richtig. Aber warum überhaut Allrounder verwenden?

dann direkt folgendes

Delphi-Quellcode:
begin
  ImageLoader[5].Picture.LoadFromFile('Unbenannt.jpg');
end;

bernau 28. Okt 2014 12:14

AW: TObjectList als Result
 
Aber noch mal. Der TE äussert sich nicht. Damit weis keiner, was wirklich gewollt ist.

DeddyH 28. Okt 2014 12:21

AW: TObjectList als Result
 
Zitat:

Zitat von Blup (Beitrag 1277690)
Viel Diskussion um das Thema, aber auf den zweiten Fehler ist niemand direkt eingegangen

Lies doch mal den von mir verlinkten Artikel ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz