AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Erzeugen und Freigeben von Objekten und Speicher
Thema durchsuchen
Ansicht
Themen-Optionen

Erzeugen und Freigeben von Objekten und Speicher

Ein Thema von guidobrose · begonnen am 4. Jun 2007 · letzter Beitrag vom 5. Jun 2007
 
guidobrose
(Gast)

n/a Beiträge
 
#1

Erzeugen und Freigeben von Objekten und Speicher

  Alt 4. Jun 2007, 10:35
Ich hätte einmal eine grundsätzliche Frage zu Objekten.

Ich möchte die Objects Eigenschaft des StringGrid verwenden, um zusätzliche Formatierungsoptionen für die einzelne Zelle zu speichern. Ggf. soll über die neue Eigenschaft IsBitmap auch eine Grafik angezeigt werden können.

Hier einmal eine beispielhafte Deklaration des Objektes für die Eingenschaften:
Delphi-Quellcode:
type

  TCellOption = class(TObject)
  public
    Font: TFont;
    IsBitmap: Boolean;
    Bitmap: TBitmap;
  end;

  ...
Hier wäre jetzt die Zuweisung an jede Zelle des StringGrid:

Delphi-Quellcode:
  ACellOption:=TCellOption.Create;
  StringGrid.Objects[..]:=ACellOption;
Jetzt kann ich allerdings noch nichts an Font zuweisen, weil ja noch keine Instanz davon erzeugt wurde, also könnte es so aussehen:

Delphi-Quellcode:
  ACellOption:=TCellOption.Create;
  ACellOption.Font:=TFont.Create;
  ACellOption.Font.Assign(Font);
  StringGrid.Objects[..]:=ACellOption;
Genauso wird dann auch mit Bitmap verfahren nur zunächst ohne ein Bitmap zuzuweisen, da es ja nicht in jeder Zelle unbedingt benötigt wird.

Erste Frage:

Wenn ich die so erzeugten Objekte wieder freigeben möchte, welche Methoden muss ich dann aufrufen?

StringGrid.Objects[..].Free?

Damit ist die Instanz von TFont aber noch nicht freigegeben, oder?

Sollte ich also geschickterweise die create und destroy-Methoden von TCellOption überschreiben und darin die Instanz von TFont (und TBitmap) erzeugen und freigeben?

Zweite Frage:

Wie verhält es sich mit dem Speicherbedarf, wenn ich direkt eine Instanz von TBitmap pro Zelle erzeuge, ohne das ich sie evtl. wirklich benötige?

Danke und Gruß,
Guido
  Mit Zitat antworten Zitat
 


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 13:55 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