Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bilder ersetzen! (https://www.delphipraxis.net/16159-bilder-ersetzen.html)

maximi 11. Feb 2004 17:25


Bilder ersetzen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen.
Mir ist aufgefallen, dass ich mit diesem Code
Delphi-Quellcode:
  Bild1.Picture.Bitmap.LoadFromFile();
keine vorhandenen Bilder ersetzen, sondern nur noch ein zweites hinzufügen kann. Dies kann man am besten an dem unten angehängten Bild erkennen.
Wie kann ich also Bilder ersetzen?

Danke!


Max

Michael Leyhe 11. Feb 2004 19:40

Re: Bilder ersetzen!
 
HI

Versuche mal vorher ein weißes Rechteck in das image zu zeichnen

Delphi-Quellcode:
Bild1.canvas.rectangle (0,0,xmax, ymax);
Vorher natürlich noch die Füllfarbe auf weiß stellen und dann müsste es funktionieren.
Bei mir hat es auf jedenfall geklappt.

MikeS 11. Feb 2004 19:57

Re: Bilder ersetzen!
 
du könntest es auch erst mit

Delphi-Quellcode:
bild1 := nil;
leeren und dann ein neues reinladen!

maximi 11. Feb 2004 21:34

Re: Bilder ersetzen!
 
Achso. Ich dachte da gibts ne bessere Lösung!

Danke!

hboy 11. Feb 2004 22:44

Re: Bilder ersetzen!
 
Zitat:

Zitat von MikeS
du könntest es auch erst mit

Delphi-Quellcode:
bild1 := nil;
leeren und dann ein neues reinladen!

bloß nicht! sonst ist ganz schnell der Speicher weg...

bild1.free;

oder FreeAndNil(bild1);

hboy 11. Feb 2004 22:45

Re: Bilder ersetzen!
 
wenn das bild durch ein anderes ersetzt werden soll mal Canvas.CopyRect oder BitBlt aus der API versuchen um Bildinhalte rüberzukopieren.

maximi 18. Feb 2004 15:24

Re: Bilder ersetzen!
 
Ich weiß das Thema ist schon wieder etwas älter, aber ich habe noch eine Frage.
Wenn ich das hinschreibe:
Zitat:

Bild1.canvas.rectangle (0,0,xmax, ymax);
flimmert mein Bild.
Wie kann ich denn das verhindern?

Matze 18. Feb 2004 15:46

Re: Bilder ersetzen!
 
Vielleicht nützt's was:

Delphi-Quellcode:
DoubleBuffered := true

maximi 18. Feb 2004 15:56

Re: Bilder ersetzen!
 
hab ich auch schon drin. die bilder wechseln alle 10 Millisekunden. ;)

zappel 18. Feb 2004 16:25

Re: Bilder ersetzen!
 
Wäre es nicht sowieso sinnvoller, die die Datei in eine Variable zu laden und dann die Variable dem Bild zuzuweisen? Die Variable kann dann wieder freigegeben werden. Wenn du nämlich viele größere Bilder mit deiner Methode lädst, ist der Speicher bald voll. Hatte das Problem mit einem Programm, das eine Art Diashow ermöglicht...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp:=TBitmap.Create;
  bmp.LoadFromFile('bild.bmp');
  Image1.Picture.Assign(bmp);
  bmp.Free;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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 by Thomas Breitkreuz