![]() |
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:
"Image_rot" ist das TImage auf der Form.
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; devnull |
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 |
Re: Bitmap in ein TImage während Laufzeit
geht jetzt. danke
|
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 ? |
Re: Bitmap in ein TImage während Laufzeit
Zitat:
|
Re: Bitmap in ein TImage während Laufzeit
wieso ? wenn man das programm aus dem verzeichnis startet, funktioniert es ? wie solls denn sonst gehn?
|
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.
|
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:
aber wie kann ich dann später wieder bilder einfügen ?
image_rot := nil;
erst
Delphi-Quellcode:
und dann ?
image_rot.Create (Fanwendung);
devnull |
Re: Bitmap in ein TImage während Laufzeit
wenn das picture einfarbig ist, kannst du mit der eigenschaft Timage.transparent arbeiten
|
Re: Bitmap in ein TImage während Laufzeit
nein, is nich einfarbig !
|
Re: Bitmap in ein TImage während Laufzeit
dann mit
Delphi-Quellcode:
und
image.picture:=nil;
Delphi-Quellcode:
image.picture.loadfromfile('dateiname.bmp');
|
Re: Bitmap in ein TImage während Laufzeit
Zitat:
Delphi-Quellcode:
nicht
image.picture.loadfromfile('dateiname.bmp');
Delphi-Quellcode:
ausgeführt werden ? (dann gehts aber trotzdem nicht)
image.create(Fanwendung);
|
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. |
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... |
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!
|
Re: Bitmap in ein TImage während Laufzeit
Delphi-Quellcode:
würde nicht funktionieren, wenn es nicht schon vorher erstellt worden wäre (ein Teufelskreis :-) ).
image_rot.create(Fanwendung);
Wenn überhaupt, dann
Delphi-Quellcode:
image_rot := TImage.Create(Fanwendung);
|
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. |
Re: Bitmap in ein TImage während Laufzeit
Achso...
Delphi-Quellcode:
...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.
image_rot.picture:=nil;
|
Re: Bitmap in ein TImage während Laufzeit
also
Code:
devnull
// Grafik gelöscht
image_rot.picture := nil; // Laden einer neuen Grafik image_rot.picture.loadfromfile ('Bilder\rot.bmp'); |
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