AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Verantwortlichkeiten / Wer kümmert sich um Freigeben
Thema durchsuchen
Ansicht
Themen-Optionen

Verantwortlichkeiten / Wer kümmert sich um Freigeben

Ein Thema von Jonas Shinaniganz · begonnen am 26. Jul 2012 · letzter Beitrag vom 27. Jul 2012
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#11

AW: Verantwortlichkeiten / Wer kümmert sich um Freigeben

  Alt 26. Jul 2012, 14:32
Achja bei Debuggen konnte Ich jetzt nachvollziehen wie mein

Delphi-Quellcode:
destructor TBlock.Destroy;
begin
  FImage.Free;
  inherited;
end;
Von der ObjectList erfolgreich für jeden Block aufgerufen wurde. Eigentlich habe Ich keine weiteren Fragen!
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Verantwortlichkeiten / Wer kümmert sich um Freigeben

  Alt 26. Jul 2012, 15:01
Lemmy zur sicherheit poste Ich nochmal was Ich implementiert habe, vielleicht hab Ichs ja noch nicht ganz richtig gemacht:

Die API der TReportUnit bietet:
d.h. die TReportUnit ist gar nicht von dir? Eine nicht unwesentliche Info.. Jetzt habe ich mich mit Elvis (fast) umsonst geklopft

Grüße
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Verantwortlichkeiten / Wer kümmert sich um Freigeben

  Alt 27. Jul 2012, 00:59
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:
var
  ReportUnit: TReportUnit;
  Bitmap: TBitmap;
begin
  ReportUnit := TReportUnit.Create;

  Bitmap := ReportUnit.AddBlock('Hysterese Test 1');
  Bitmap.LoadFromFile({...});

  ReportUnit.Generate;
  ReportUnit.Free;
end;
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:04 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