Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bitmap in ein TImage während Laufzeit (https://www.delphipraxis.net/15262-bitmap-ein-timage-waehrend-laufzeit.html)

devnull 25. Jan 2004 10:50


Bitmap in ein TImage während Laufzeit
 
Hi,
was mach ich hier falsch ? Ich möchte während der Programmausführung in ein
existierendes TImage eine Bitmap laden und anzeigen:

Delphi-Quellcode:
var NImage : TImage;
begin
   NImage := FAnwendung.Image_rot.Create(Fanwendung);
   try
     NImage.Picture.LoadFromFile ('Bilder\sf_rot_gestrichen.bmp');
     NImage.Assign(NImage);
   finally
     NImage.Free;
   end;
"Image_rot" ist das TImage auf der Form.

devnull

SirThornberry 25. Jan 2004 10:55

Re: Bitmap in ein Image während Laufzeit
 
anstelle von
NImage.assign(nimmage)
lieber
image_rot.assign(nimmage) machen

oder noch besser
image_rot.picture.loadfromfile(ExtractFilepath(app lication.exename) + 'Bilder\sf_rot_gestrichen.bmp')
da spaarst du dir die ganzen teile um das erst in nen hilfstimage zu packen

außerdem könntest du statt dem hilfs timage ein hilfs tbitmap nehmen, spaart resourcen

devnull 25. Jan 2004 11:18

Re: Bitmap in ein TImage während Laufzeit
 
geht jetzt. danke

devnull 25. Jan 2004 11:29

Re: Bitmap in ein TImage während Laufzeit
 
wie kann ich das Bild wieder löschen, so, dass das tImage immer noch auf der Form ist und auf
mausklicks reagiert ?

Luckie 25. Jan 2004 11:29

Re: Bitmap in ein TImage während Laufzeit
 
Zitat:

Zitat von devnull
geht jetzt. danke

Frag sich blos wie lange bei der relativen Pfadangabe. :roll:

devnull 25. Jan 2004 11:32

Re: Bitmap in ein TImage während Laufzeit
 
wieso ? wenn man das programm aus dem verzeichnis startet, funktioniert es ? wie solls denn sonst gehn?

Luckie 25. Jan 2004 11:34

Re: Bitmap in ein TImage während Laufzeit
 
Dann änder mal bei einer Verknüpfung das artbeitsverzeichnis oder lass sich das aktuelle Verzeichnis durch einen Open- oder SaveDialog ändern, dann geht es nicht mehr. Gib den absoluten Pfad an.

devnull 25. Jan 2004 11:43

Re: Bitmap in ein TImage während Laufzeit
 
und wie kann ich aus dem timage das bild wieder löschen (also kein bild mehr),
so dass es trotzdem auf mausklicks reagiert ?????

damit kann man zwar das bild löschen, das timage reagiert auch noch auf mausklicks
Code:
  image_rot := nil;
aber wie kann ich dann später wieder bilder einfügen ?
erst
Delphi-Quellcode:
  image_rot.Create (Fanwendung);
und dann ?

devnull

cyberkiller0072001 25. Jan 2004 11:54

Re: Bitmap in ein TImage während Laufzeit
 
wenn das picture einfarbig ist, kannst du mit der eigenschaft Timage.transparent arbeiten

devnull 25. Jan 2004 11:56

Re: Bitmap in ein TImage während Laufzeit
 
nein, is nich einfarbig !

cyberkiller0072001 25. Jan 2004 12:00

Re: Bitmap in ein TImage während Laufzeit
 
dann mit
Delphi-Quellcode:
image.picture:=nil;
und
Delphi-Quellcode:
image.picture.loadfromfile('dateiname.bmp');

devnull 25. Jan 2004 12:05

Re: Bitmap in ein TImage während Laufzeit
 
Zitat:

Zitat von cyberkiller0072001
dann mit
Delphi-Quellcode:
image.picture:=nil;
und
Delphi-Quellcode:
image.picture.loadfromfile('dateiname.bmp');

muss ich vor
Delphi-Quellcode:
image.picture.loadfromfile('dateiname.bmp');
nicht
Delphi-Quellcode:
image.create(Fanwendung);
ausgeführt werden ? (dann gehts aber trotzdem nicht)

cyberkiller0072001 25. Jan 2004 12:14

Re: Bitmap in ein TImage während Laufzeit
 
erkläre mir mal, was du überhaupt machen willst?
Eigendlich musst du das image nicht noch einmal creiren, weil du es ja nicht mit destroy oder free entfernt hast.

devnull 25. Jan 2004 12:28

Re: Bitmap in ein TImage während Laufzeit
 
Ich hab ein Bild als Hintergrund. Auf dem Bild sind Buttons gemalt.
Werden diese deaktiviert, soll ein Kreuz drüber gezeichnet werden; wenn sie wieder aktiviert werden, sollen die Kreuze wieder verschwinden. usw.

PS:
Ich habs jetzt momentan so gelöst, dass ich einfach die Bilder (einmal ohne Kreuz, einmal mit) gezeichnet hab (in MSPaint) und dann einfach mit LoadFromFile ausrufe...

cyberkiller0072001 25. Jan 2004 12:32

Re: Bitmap in ein TImage während Laufzeit
 
Wenn du weißt, wo die Images hinsollen und wieviele du brauchst, dann arbeite doch mit den Komponenten anstatt die mit create zu erzeugen!

scp 25. Jan 2004 13:08

Re: Bitmap in ein TImage während Laufzeit
 
Delphi-Quellcode:
image_rot.create(Fanwendung);
würde nicht funktionieren, wenn es nicht schon vorher erstellt worden wäre (ein Teufelskreis :-) ).

Wenn überhaupt, dann
Delphi-Quellcode:
image_rot := TImage.Create(Fanwendung);

cyberkiller0072001 25. Jan 2004 13:11

Re: Bitmap in ein TImage während Laufzeit
 
das meine ich ja! Warum greifst du nicht direkt auf image_rot zu anstatt den umweg über Nimage zu machen?
Das wäre doch einfacher.

scp 25. Jan 2004 13:24

Re: Bitmap in ein TImage während Laufzeit
 
Achso...
Delphi-Quellcode:
image_rot.picture:=nil;
...kannst du in dem Fall ruhig anwenden, man muss danach nichts Create'n, da TImage intern das Picture nie wirklich auf nil setzt, sondern nur die Bitmap/Grafik leert/löscht.

devnull 25. Jan 2004 13:51

Re: Bitmap in ein TImage während Laufzeit
 
also
Code:
   // Grafik gelöscht
   image_rot.picture := nil;
   // Laden einer neuen Grafik
   image_rot.picture.loadfromfile ('Bilder\rot.bmp');
devnull


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