Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bitmap in Variable von TBitmap löschen (https://www.delphipraxis.net/149399-bitmap-variable-von-tbitmap-loeschen.html)

Helmi 20. Mär 2010 15:36


Bitmap in Variable von TBitmap löschen
 
Hallo,

es mag eine ganz einfache Sache sein, aber ich steh auf dem Schlauch gerade.

Ich erzeuge ein Bitmap wie folgt:

Delphi-Quellcode:
var
  Bitmap: TBitmap;

begin
  Bitmap := TBitmap.Create;

  try
    Bitmap.LoadfromFile(...);

    { ... irgendwas mit dem Bitmap tun ... }

  finally
    FreeAndNil(Bitmap);
  end;
end;
Nun würde ich gerne das Bitmap, nachdem ich es mit LoadFromFile gefüllt habe auch wieder leeren.
Ich könnte es zwar freigeben und danach wieder erzeugen, aber gibt es keine bessere Möglichkeit?

SirThornberry 20. Mär 2010 15:44

Re: Bitmap in Variable von TBitmap löschen
 
Zitat:

Zitat von Helmi
Ich könnte es zwar freigeben und danach wieder erzeugen, aber gibt es keine bessere Möglichkeit?

Ja, einfach nicht frei geben und das was du als nächstes vor hast (zum Beispiel ein anderes Bild laden) durchführen. Man muss das Bitmap ja nicht erst übermalen etc. wenn man am Ende doch ein anderes hinein laden will.

Uwe Raabe 20. Mär 2010 15:48

Re: Bitmap in Variable von TBitmap löschen
 
Eventuell tut TBitmap.FreeImage was du willst, aber warum willst du das denn überhaupt?

Helmi 20. Mär 2010 15:53

Re: Bitmap in Variable von TBitmap löschen
 
Ich muss etwas weiter ausholen.


Delphi-Quellcode:
var
  Bitmap: TBitmap;

begin
  Bitmap := TBitmap.Create;

  try
    Bitmap.LoadfromFile(...);

    Proc_die_Bitmap_liefert(Bitmap);

    BitBtn.Glyph.Assign(Bitmap);
  finally
    FreeAndNil(Bitmap);
  end;
end;
Die Procedure "Proc_die_Bitmap_liefert()" ändert das Bitmap. Manchmal soll das Bitmap an den BitBtn zwar übergeben werden, aber eben leer sein.
Nun würd ich gerne dass die Procedure "Proc_die_Bitmap_liefert" in diesem Fall ein leeres Bitmap zurückgibt, dass dann in den BitBtn geladen wird.
(Das ganze läuft in einer Schleife. D. h. Bitmap wird nur einmal erzeugt und einmal freigegeben. Innerhalb der Schleife wird dann eben das obere Konstrukt durchgeführt.)

[Edit]
In der Procedure "Proc_die_Bitmap_liefert" setz ich die Größe vom Bitmap jetzt einfach auf 0

Delphi-Quellcode:
Bitmap.Height := 0;
Bitmap.Width := 0;
Und das hilft auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 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