![]() |
Image löschen/überschreiben
Hallo,
habe folgenes Problem, ich zeiche ein Image auf die Form mit folgenem Code:
Code:
var Image:TImage;
begin for x:=1 to anzahl do begin for y:=1 to anzahl do begin Image := TImage.Create(self); Image.Parent := Form1; Image.Left := 200; Image.Top := 500; Image.Picture.LoadFromFile('logo.bmp') end; end; end; Nun muss ich später bei einem Klick auf einen Button das Bild überschreiben, sodass ein anderes vorne ist.. Ich hab zeurst den selben Quellcode genommen, nur das Bild geändert.. Allerdings bekomm ich dann bei mehreren Klicken auf den Button so ein Flackern und man sieht die "älteren" Bilder, was denke ich daher kommt, dass die alten Bilder nicht überschrieben werden. Wie kann ich dieses Problem nun lösen, sodass kein Flackern mehr vorhanden ist? Gruß TomTe |
Re: Image löschen/überschreiben
Du erzeugst ja jedesmal eine Image-Komponente
|
Re: Image löschen/überschreiben
Anstatt x Images übereinander zu legen, könntest Du auch eine TImageList verwenden.
P.S.: Willkommen in der DP :dp: |
Re: Image löschen/überschreiben
Zitat:
kann ich das irgendwie anders machen? Mit dem ImageList hab ich das Problem, da ich 20 verschiedene Bilder habe und diese sich auf verschiedene Ereignisse unterschiedlich verändern sollen. |
Re: Image löschen/überschreiben
Vielleicht so?
Delphi-Quellcode:
Grüße
var Image:TImage;
begin Image := TImage.Create(self); Image.Parent := Form1; Image.Left := 200; Image.Top := 500; for x:=1 to anzahl do begin for y:=1 to anzahl do begin Image.Picture.LoadFromFile('logo.bmp') end; end; end; Klaus |
Re: Image löschen/überschreiben
Funktioniert nicht, der lädt immer das selbe...
Ich kann den da erstellten Grafiken ja nen Namen geben mit Image.Name. Wie kann ich denn dann darauf zugreifen? Oder geht das garnicht? |
Re: Image löschen/überschreiben
ich weiß ja nicht, was genau du bezwecken willst, aber wie wäre es, wenn du erst prüfst, ob das Image schon erstellt wurde und, wenn ja, dann lädst du einfach nur ein neues Bild rein anstatt gleich ein neues zu erstellen, also
Delphi-Quellcode:
ich hoffe , das war halbwegs richtig :roll: und hilfreich
var Image:TImage;
begin for x:= 1 to anzahl do for y:= 1 to anzahl do begin if Image<>nil then Image.Picture.LoadFromFile('logo.bmp')//wenn du unbedingt neu erstellen willst,schreib hier nur: Image.Free; else begin //und lasse die Zeile weg Image := TImage.Create(self); try Image.Parent := Form1; Image.Left := 200; Image.Top := 500; Image.Picture.LoadFromFile('logo.bmp') except Image.Free; showmessage('Fehler beim bearbeiten von Image!') end; //und diese ebenfalls; end; end; |
Re: Image löschen/überschreiben
Hallo,
bevor ich hier weiter rätsel, was willst Du überhaubt machen? In der Schleife zeigst Du anzahl*anzahl das gleiche Bild dar. In Deinem Post schreibst Du Du willst ein Bild laden und dann überschreiben. Das würde im Prinzip so gehen: var Image:TImage; begin Image := TImage.Create(self); Image.Parent := Form1; Image.Left := 200; Image.Top := 500; Image.Picture.LoadFromFile('logo.bmp') end; Im Buttonclick kannst Du so ein anderes Bild laden:
Delphi-Quellcode:
Deine ImageNamen kannst Du zum Beispiel in einer StringList sammeln.
Image.Picture.LoadFromFile('anderesBild.bmp');
Dann könntest Du ein anderes Bild so laden:
Delphi-Quellcode:
Grüße
Image.Picture.LoadFromFile(sl[index]);
Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 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