AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TObjectList als Result

Ein Thema von Kuehter · begonnen am 27. Okt 2014 · letzter Beitrag vom 28. Okt 2014
Antwort Antwort
Seite 3 von 3     123
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: TObjectList als Result

  Alt 28. Okt 2014, 12:20
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

AW: TObjectList als Result

  Alt 28. Okt 2014, 12:21
@bernau

Die Lösung kam schon mit der ersten Antwort, und der Rest handelt von den Seiteneffekten (Speicherlecks).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: TObjectList als Result

  Alt 28. Okt 2014, 12:26
@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.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: TObjectList als Result

  Alt 28. Okt 2014, 12:34
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.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

AW: TObjectList als Result

  Alt 28. Okt 2014, 12:39
@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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: TObjectList als Result

  Alt 28. Okt 2014, 13:02
Viel Diskussion um das Thema, aber auf den zweiten Fehler ist niemand direkt eingegangen:
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;
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: TObjectList als Result

  Alt 28. Okt 2014, 13:11
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;
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de

Geändert von bernau (28. Okt 2014 um 13:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: TObjectList als Result

  Alt 28. Okt 2014, 13:14
Aber noch mal. Der TE äussert sich nicht. Damit weis keiner, was wirklich gewollt ist.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: TObjectList als Result

  Alt 28. Okt 2014, 13:21
Viel Diskussion um das Thema, aber auf den zweiten Fehler ist niemand direkt eingegangen
Lies doch mal den von mir verlinkten Artikel
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.
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