Hi, bisher habe ich immer meine Bilder einfach so im Verzeichniss rumliegen gehabt.
Jetzt wollte ich da mal aufräumen und das ganze in ne Res packen.
Lief auch erst mal ganz gut.
Hab mich an die Anleitung gehalten: http://wiki.delphigl.com/index.php/Bilder_als_Ressourcen Ich nehme den langen Weg mit Hintergrundwissen Als ich dann Bilder mit Transparentz hinzugefügt habe... Error...
Folgende Meldung bekomme ich:
Error Bilder.rc 34 22: Invalid bitmap format
Naja, sieht so aus als ob das ganze dann wohl mit Transparenten Bildern net klappt.
Gibt es da nen anderen Weg? (Ausser den Res-Editor)
mfg Cre@or
Edit:
Zitat:
Pfad zur Datei: ist selbsterklärend denke ich. Kann sein, dass man Gänsefüsschen setzen muss, keine Ahnung - testen!
Für alle die es wissen wollen... mit Gänsefüsschen... sicher ist sicher...
Edit:
Vielleicht hilft es ja die Bilder in nen anderen Format zu Laden. Verwende derzeit Bmp's.
Aber irgendwie glaub ich da nicht dran das dass klappen könnte.
Naja, Versuch macht Kluch.
Zuletzt geändert von Cre@or am Do Okt 09, 2008 15:52, insgesamt 1-mal geändert.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hatte das jetzt geklappt? Das Edit klingt für mich ein bisschen danach.
Wenn nein könnte es evtl. auch an den Resourcentyp BITMAP liegen. Der Resourcetyp BITMAP ist ein bisschen speziell. Dabei muss es sich auch wirklich um ein BMP handeln. Denn bei dem Resourcentyp wird stumpf der Header des Bildes weggelassen. Das geht bei anderen Formaten dann natürlich nicht. Ist in dem Artikel evtl. etwas verwirrend.
Und falls du die glBitmap benutzt, dann könntest du dir den Weg über den extra Stream sparen, da sie mittlerweile auch selber Resourcen laden kann. Wird dann intern so gelöst.
Nee, das Edit war nur so. Wollt halt Hilfestellung geben *lol...
Edit:
Damit man sieht das bei mir auch alles mit rechten Dingen zugeht, hier mal ein Ausschnitt aus meiner RC:
Code:
Fragezeichen1 BITMAP "C:\Dokumente und Einstellungen\Cre@or\Eigene Dateien\Projekte\OpenGL\Bildschirmschoner\Kugel\Fragezeichen1.bmp"
Kann es sein das die Button Quote, Code, Img usw... derzeit nicht recht funktionieren?
Schreibe alles per Hand.
Am Browser kann es wohl kaum liegen, Firefox 3.03, oder?
Edit:
Halt, merke grad es liegt am Add-On NoScript... das hat das ganze blockiert, so hab's für delphigl ausgeschalten.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also die Zeile sieht soweit okay aus. Allerdings solltest du den Resourcename auch groß schreiben. Es gibt wohl Probleme, wenn du mit kleinen arbeitest. Das mit dem @ in dem Namen könnte evtl auch Probleme machen. Ansonsten kannste du natürlich auch den Editor aus dem Artikel ausprobieren. Das Ergebniss ist das Selbe. Nur die RC könnte man auch in einem Buildlauf benutzen oder so.
Ich hab's jetzt hinbekommen.
Eigentlich ne ziehmlich einfache Sache.
Ich habe die BMP's in PNG's umgewandelt.
Leider weiss ich nicht warum die res nicht die BMP's mit Tranparenz unterstützt.
Scheint wohl recht neu zu sein, jedenfalls erkannte die BMP's auch nur GIMP richtig mit denen ich die erstellt habe.
Naja, jetzt ersetzt man einfach BITMAP durch PortableNetworkGraphics (muss zusammengeschrieben werden, ansonsten Error) und die Dateiendung passt man noch an und fump, hat man seine Res.
Ist das so korreckt?
Oder was muss da hin wo Fragezeichen1 steht?
So habe ich zumindest die Datei in der Res benannt.
Und so habe ich das auch aus dem Wiki herausgelesen.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
BMPs und Trasparenz. Ja BMPs können das offiziell eigentlich auch gar nicht. GIMP kann es. Die glBitmap auch. TBitmap aber nicht. Die Windows GDI eigentlich auch nicht. Die BMP Datei kann es laut Definition aber irgendwie schon. Alles sehr merkwürdig. Und ich würde da lieber auf TGA oder so etwas wechseln. Diese müssen es können und sind von der Datei her nicht komplexer.
Der Resourcetyp kann eine numerische Konstante oder ein Text sein. In der RC wird BITMAP bzw RCDATA als numerische Konstante interprettiert. Ist ein bissel bescheuert. BITMAP erzwingt aber wirklich Windows Bitmaps (BMPs). Weil die intern dann etwas anders abgelegt werden. Diese könntest du mit der glBitmap aber sowieso nicht laden. Als Text kannst du aber machen was du willst solange der nur aus Buchstaben, Zahlen und Unterstrichen besteht. Zu mindest sollte er das nur. Und wichtig NUR GROSSE BUCHSTABEN VERWENDEN. Windows findet Resourcen nicht, wenn sie kleine Namen haben.
Aber jetzt noch mal langsam zum Mitmeiseln.
- Du erstellst eine RC Datei.
Code:
RES_NAME TEXTURES "C:\bild.tga"
- Diese RC Datei lässt du durch den Resourcecompiler laufen und der erstellt eine RES Datei. Wie im Artikel beschrieben.
- Die RES bindest in dein Projekt ein und kompilierst es.
Der ResourceStream ist ein Stream der eine Resource lädt. Wenn du die mit der glBitmap laden willst, dann musst du das Define GLB_DELPHI aktivieren. Dadurch werden die Methoden LoadFromResource und LoadFromResourceID aktiviert.
Das H oder HInstance in diesem Beispiel bezieht sich auf das Handle einer Binärdatei. Also wenn du eine DLL mit LoadLibrary lädst, dann bekommst du ein Handle zurück. Wenn du die Resourcen aus der DLL laden willst, dann musst du dieses Handle übergeben. HInstance ist das Handle einer Anwendung was auf sich selbst zeigt.
Wenn du als Typ RCDATA benutzt musst du anstelle des Namens ('TEXTURES') dann RT_RCDATA übergeben. Das ist dann eine numerische Konstante die in der RC automatisch zu einer Nummer wird. Das System mit den Resourcetypen ist meiner Meinung nach etwas krank.
So, habs hinbekommen.
Ich hab das ganze jetzt en bissel anders gemacht als es vielleicht sollte. Aber es funktioniert.
Das war ne ganz schöne Hirnknoterei...
mfg Cre@or
Edit: Noch mal vielen Dank, hab vor lauter Euforie das Bedanken vergessen...
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.