![]() |
AW: Verantwortlichkeiten / Wer kümmert sich um Freigeben
Achja bei Debuggen konnte Ich jetzt nachvollziehen wie mein
Delphi-Quellcode:
Von der ObjectList erfolgreich für jeden Block aufgerufen wurde. Eigentlich habe Ich keine weiteren Fragen!
destructor TBlock.Destroy;
begin FImage.Free; inherited; end; |
AW: Verantwortlichkeiten / Wer kümmert sich um Freigeben
Zitat:
Grüße |
AW: Verantwortlichkeiten / Wer kümmert sich um Freigeben
Deine Frage ist ja inzwischen beantwortet – unabhängig davon löse ich solche Fälle gerne in dieser Art:
Delphi-Quellcode:
TBlock = class
protected FBitmap: TBitmap; FText: string; public constructor Create; destructor Destroy; override; end; TReportUnit = class {...} function AddBlock(Text : String): TBitmap; end; implementation // TBlock kümmert sich um die Erzeugung und Freigabe seines Bitmaps selbst constructor TBlock.Create; begin inherited; FBitmap := TBitmap.Create; FText := ''; end; destructor TBlock.Destroy; begin FBitmap.Free; inherited; end; // AddBlock gibt Referenz auf Bitmap zurück function TReportUnit.AddBlock(Text : String): TBitmap; var Block : TBlock; begin Block := TBlock.Create; Block.FText := Text; // Bitmap wurde im Constructor von TBlock bereits erzeugt Result := Block.Bitmap; FBlocks.Add(Block); end;
Delphi-Quellcode:
Man kann sich hier fragen, ob es nicht besser wäre, gleich eine Referenz auf den Block zurückzuliefern statt auf das Bitmap. Das hängt vom Anwendungsfall ab.
var
ReportUnit: TReportUnit; Bitmap: TBitmap; begin ReportUnit := TReportUnit.Create; Bitmap := ReportUnit.AddBlock('Hysterese Test 1'); Bitmap.LoadFromFile({...}); ReportUnit.Generate; ReportUnit.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 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