Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 11:01

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Mär 18, 2010 20:34 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Okt 23, 2009 12:22
Beiträge: 26
Programmiersprache: Delphi(, C++)
Hallo!

Zu meinem Problem habe ich leider bis jetzt noch nichts hilfreiches gefunden:
Ich benutze das CodeGear RAD Studio 2009, Windows 7 und die Textures.pas von Jan Horn. Mir ist auch gerade aufgefallen, dass diese ziemlich alt ist (2001), aber das Laden aus normalen BMP-, JPG- und TGA-Dateien funktioniert perfekt.
Im header der Textures.pas steht das hier:

Code:
// Usage       : LoadTexture(Filename, TextureName, LoadFromResource);
//
//               eg : LoadTexture('logo.jpg', LogoTex, TRUE);
//                    will load a JPG texture from the resource included
//                    with the EXE. File has to be loaded into the Resource
//                    using this format  "logo JPEG logo.jpg"


Ich habe also die Texturen zuerst über den Ressourcen-Manager von Delphi 2009 eingebunden (TGA konnte ich so nicht eingeben, also habe ich es später nochmal versucht, indem ich die Resource.rc bearbeitet habe) und dann mit LoadTexture geladen. Danach kommt entweder die Fehlermeldung, dass die Resource nicht gefunden wurde oder es kommt keine Fehlermeldung, dafür wurde die Textur dann aber offensichtlich nicht geladen.

Die Texturen wollte ich überhaupt erst aus der Resource laden, weil ich unter Windows 7, wenn ich mein Programm nicht als Administrator starte, sonst immer die Fehlermeldung "Dateizugriff verweigert" bekomme (obowohl die Ordner eigentlich nicht schreibgeschützt sind). Falls also dazu jemand eine Lösung wissen sollte, wäre das auch nicht schlecht ;) . Das ganze ist nämlich als Referat für die Schule geplant und ich glaube nicht, dass mein Physiklehrer auf dem Schullaptop (mit Win Vista) Adminrechte hat...


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mär 19, 2010 00:29 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die ist wirklich sehr alt. Jan Horn kann außerdem auch keinen Support mehr geben und Weiterentwicklungs ist auch ziemlich ausgeschlossen.
Wieso nimmst du nicht die glBitmap von Lossy (siehe Projekte-Thread).

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mär 19, 2010 09:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Resource Editor bei Delphi? Also früher gab es da mal so etwas wie einen Bildeditor mit dem man .res speichern konnte. Allerdings war das Teil mehr als Unbrauchbar. In 2006/2007 habe ich gar nichts dergleichen gefunden.

Entsprechend benutzt du ein externes Tool oder du benutzt den Resourcecompiler. Was das Laden der Resourcen angeht ist es wichtig, dass du den Resourcentyp richtig wählst. Der Typ ist eigentlich nur ein freier Text. Genau wie der Name auch. Die Resourcen werden aber aus der Kombination von beidem identifiziert. Alle deine Resourcen könnten also "BLAH" heißen, wenn sie nur immer einen anderen Typen hätten (macht man aber normal nicht, da der Typ zum unterscheiden der Resourcen da ist). Die Resourcenamen müssen immer großgeschrieben werden. XN Resource Editor kann auch Resourcen mit kleinen Namen erstellen. Aber die können anschließend nicht mehr gefunden werden. Den Resourcetypen "Bitmap" solltest du nicht verwenden, da dieser die abgelegten BMPs verändert, wodurch sie nicht mehr geladen werden können.

Du solltest dir auch mal folgenden Link ansehen.
http://wiki.delphigl.com/index.php/Bilder_als_Ressourcen

Bei der Textures ist es so, dass die ein bisschen gaga arbeitet. Anhand des übergebenen Dateinamen "erkennt" sie um welchen Bildtypen es sich handelt und benutzt dann 'TGA', 'JPEG', 'BMP' als Resourcetypen und den ersten Teil des Dateinamens (ohne Endung) als Resourcenamen. Das heißt in der RC müsstest du folgendes angeben "TEXTURE1 TGA "texture1.tga"". Beim Laden mit der Textures, dann "TEXTURE1.TGA" und LoadFromResource. Dann sollte er sie auch finden. Ich muss nicht erwähnen, dass das mit der glBitmap deutlich kompfortabler gelöst ist.

PS: Das mit Windows7 und Vista ist so eine Sache. Microsoft hat dort das Rechtesystem umgestellt. Teilweise werden die Verzeichnisse für jeden Benutzer virtualisiert.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mär 19, 2010 14:16 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Okt 23, 2009 12:22
Beiträge: 26
Programmiersprache: Delphi(, C++)
Danke für die Antworten! :)

OK, das Ding heist auch nicht Ressourcen-Editor. Ich meinte eigentlich das, was man unter Projekt :arrow: Ressourcen findet. Die glBitmap.pas benutze ich nicht, weil mit Delphi 2009 ein paar Neuerungen kamen (mit Chars etc.) und die dann nicht funktioniert hat.

Zitat:
Das heißt in der RC müsstest du folgendes angeben "TEXTURE1 TGA "texture1.tga"". Beim Laden mit der Textures, dann "TEXTURE1.TGA" und LoadFromResource.

Wenn ich es so mache, wird die Textur nicht gefunden. Wenn ich aber LoadTexture('TEXTURE1',texture1,true); benutze, also ohne ".TGA", kommt keine Fehlermeldung, aber die Texturfläche bleibt dafür weiß.

Das "Bilder als Ressourcen"-Tutorial habe ich mir mal angesehen. Mit der bcc32.exe bekomme ich aber auch fehler... :?
Code:
CodeGear C++ 6.10 for Win32 copyright <c> 1993-2008 codeGear
bildschirmeresource.rc:
Error E2141 bildschirmeresource.rc 1: Declaration syntax error
*** 1 errors in Compile ***

Das C++ bezieht sich wahrscheinlich auf die Sprache, womit die bcc32.exe gemacht wurde, nehme ich an.
Hier dann nochmal meine BildschirmeResource.rc:

Code:
LOCHMASKE TGA "data\lochmaske.tga"
FONT TGA "data\font.tga"
RASTER TGA "data\raster.tga"
SCHLITZE TGA "data\schlitze.tga"

Danke nochmal für eure Hilfe! ;)


Achja: Eigentlich müsste es doch möglich sein, dass mein Programm unter Windows 7 auf seinen eigenen Ordner zugreifen kann, auch wenn ich es nicht als Admin ausführe und vor allem, wenn es nicht im Programme-Ordner lieght...


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mär 19, 2010 15:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Lumpiluk hat geschrieben:
Die glBitmap.pas benutze ich nicht, weil mit Delphi 2009 ein paar Neuerungen kamen (mit Chars etc.) und die dann nicht funktioniert hat.

Hmmm. Okay. Hab ich wohl irgendwie aus den Augen verlohren das Problem. Der Anteil derer die Delphi 2009+ benutzen ist aber auch eher gering.

Lumpiluk hat geschrieben:
Wenn ich es so mache, wird die Textur nicht gefunden. Wenn ich aber LoadTexture('TEXTURE1',texture1,true); benutze, also ohne ".TGA", kommt keine Fehlermeldung, aber die Texturfläche bleibt dafür weiß.

Richtig. Wenn du das so machst, dann kann die Textures.pas keine Dateiendung finden und und ruft schlicht keinen Code zum Laden einer Textur auf.

Lumpiluk hat geschrieben:
Das "Bilder als Ressourcen"-Tutorial habe ich mir mal angesehen. Mit der bcc32.exe bekomme ich aber auch fehler... :?

Also ich muss gestehen, dass das bei mir Problemlos durchläuft. Hätte gedacht, weil die Resourcename nicht in "" eingefasst ist das es Probleme gibt. Aber frisst er alles. Font ist normal auch ein reservierter Begriff. Aber der befindet sich auch in Zeile 2 und nicht 1. Weswegen es das nicht sein kann. Versuch mal deine Resource in dem XN Resource Editor zu erstellen. Sonst wüsste ich so spontan nicht was der BRCC32 als Input haben will. So viel Auswahl gibt es ja nun auch nicht. Ich benutze aber (D2006/2007) noch einen älteren Resource Compiler.

Lumpiluk hat geschrieben:
Achja: Eigentlich müsste es doch möglich sein, dass mein Programm unter Windows 7 auf seinen eigenen Ordner zugreifen kann, auch wenn ich es nicht als Admin ausführe und vor allem, wenn es nicht im Programme-Ordner lieght...

Normal sollte es außerhalb des Programme Ordners in der Hinsicht gar keine Probleme geben. Und selbst innerhalb der Programme sollte das Öffnen klappen. Nur Schreibzugriffe sollten dort für jeden Benutzer virtualisiert werden.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mär 23, 2010 08:51 
Offline
DGL Member

Registriert: So Feb 07, 2010 21:15
Beiträge: 30
Anstatt TGA solltest du in deiner bildschirmeresource.rc RCDATA nutzen.

Und mit Delphi2009 hatte ich auch nur Probleme bei jedem Modelloader usw.
Das beste wäre umzusteigen auf eine ältere Delphiversion z.b. Delphi2007,
das funktioniert bei mir einwandfrei


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste


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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]