Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Resourcen Problem (https://www.delphipraxis.net/133129-resourcen-problem.html)

Delphi2009lover 26. Apr 2009 09:57


Resourcen Problem
 
Hi Leute,

ich bin neu bei Delphi. Ich habe jetzt zu meinem 13. Geburtstag Delphi 2009 bekommen. Ich habe auch vorher schon viel Erfahrung in VB.NET. Ich habe in Delphi bloß gerade ein sehr großes Probem und ich hoffe, dass jemand hier sich die Zeit nimmt mir es zu erklären.

Ich habe anfangs gedacht, dass es reicht ein Bild ("Atrax_rubustus.jpg") als Resource so einzubinden: Projekt|Resourcen... und dann auf hinzufügen und dann sollte es ja eigentlich in den Resourcen meines Projekts sein (in VB.NET war das so)

aber ich habe alles versucht:

Es soll am Ende ja in einem TImage Namens "Bild" sein:

Delphi-Quellcode:
Bild.Picture.Bitmap.LoadFromResourceID(HInstance, 1);
Hat nicht funkttioniert :cry:


Wenn ihr wisst wie das geht, währe es cool wenn ihr mir helfen könnt.

Uwe Raabe 26. Apr 2009 10:14

Re: Resourcen Problem
 
Vermutlich liegt es daran, daß du anstatt eines BMP ein JPG als Resource einbindest. Bei LoadFromResource gibt es keine automatische Erkennung des Formats wie bei LoadFromFile.

Uwe Raabe 26. Apr 2009 10:15

Re: Resourcen Problem
 
Hat es einen Grund, daß du das JPEG als Resource einbindest und nicht zur Design-Time direkt in das Image lädst?

Delphi2009lover 26. Apr 2009 10:38

Re: Resourcen Problem
 
Ja, denn das Bild soll im Laufe des Programms per Buttondruck geändert werden

Uwe Raabe 26. Apr 2009 16:40

Re: Resourcen Problem
 
Delphi-Quellcode:
uses
  jpeg;
var
  stream: TResourceStream;
  jpegImage: TJPEGImage;
begin
  jpegImage := TJPEGImage.Create;
  try
    stream := TResourceStream.Create(HInstance, 'JpgImage_1', RT_RCDATA);
    try
      jpegImage.LoadFromStream(stream);
    finally
      stream.Free;
    end;
    Bild.Picture.Bitmap.Assign(jpegImage);
  finally
    jpegImage.Free;
  end;
end;
Den Namen des Resourcenbezeichners must du eventuell noch anpassen.

DeddyH 26. Apr 2009 17:29

Re: Resourcen Problem
 
Vorausgesetzt, die Bilder sind alle gleich groß, wäre eine TImagelist doch eine einfachere Möglichkeit, oder mach ich da einen Denkfehler?

Delphi2009lover 27. Apr 2009 13:00

Re: Resourcen Problem
 
Ok, das habe ich jetzt verstande.


Nur eine Frage habe ich jetzt noch :


Ich habe in die .rc - Datei geschrieben:

Delphi-Quellcode:
Bild1 JPG C:/Users/Franz/Bild.jpg
dann mit brc32.exe in .res umgewandelt.


Wenn hier schon ein Fehler ist bitte posten.







So die eigentliche Frage ist:

{$R \Ressis\Res.res}

so habe ich sie eingebunden.

Wenn ich jetzt die exe erzeugen würde müsste ich dann die .res - Datei auch mitliefern?

HighSpeed 27. Apr 2009 13:23

Re: Resourcen Problem
 
Zitat:

Zitat von Delphi2009lover
Nur eine Frage habe ich jetzt noch :


Ich habe in die .rc - Datei geschrieben:

Delphi-Quellcode:
Bild1 JPG C:/Users/Franz/Bild.jpg
dann mit brc32.exe in .res umgewandelt.


Wenn hier schon ein Fehler ist bitte posten.

ich bin nicht sicher, ob es so geht, aber ich habe bisher immer JPEG geschrieben
also
Delphi-Quellcode:
Bild1 JPEG C:/Users/Franz/Bild.jpg

Zitat:

Zitat von Delphi2009lover
So die eigentliche Frage ist:

{$R \Ressis\Res.res}

so habe ich sie eingebunden.

Wenn ich jetzt die exe erzeugen würde müsste ich dann die .res - Datei auch mitliefern?

Einbindung is sollte so fast gehen, aber den ersten Backslash kannst weglassen, und die RES datei musst du dann nicht mehr mitliefern ;)

Delphi2009lover 27. Apr 2009 15:44

Re: Resourcen Problem
 
Vielen vielen dank für die antworten. Sowas zeichnet halt ne gute Community aus

Blackheart 28. Apr 2009 07:49

Re: Resourcen Problem
 
Bild1 RCDATA "C:\Users\Franz\Bild.jpg" sollte funktionieren


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