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

Aktuelle Zeit: Fr Jul 18, 2025 00:49

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 41 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 02, 2006 10:14 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Finde es auch gut, dass du es gleich umfangreich gemacht hast. Allerdings eine Sache finde ich persönlich nicht ganz so gut. Du bist manchmal ein wenig. Ich weiß nicht wie ich es sagen soll. Deswegen mal ein Beispiel. "Ipp Zipp Zapp, fertig ist die .res Datei".

Bis auf die ein oder andere merkwürdige Satzkonstruktion aber schon nicht schlecht. Ich denke ich werde den ein oder anderen Punkt noch erweitern. Der klassische Typ BITMAPs kann zum Beispiel noch gar nicht geladen werden, da dort ein Stück Header abgeschnitten wurde und es so für mich kein ladbares Bitmap mehr darstellt. Und so ein paar andere Sachen noch. Muss ich aber mal schauen wann ich dafür Zeit finde.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 17:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
von mir aus kannste gerne auch die "komischen" Stellen editieren 8)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 16:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Ist sicherlich eine blöde Frage, aber wie muss ich das Beispiel aus dem Wiki ändern, damit ich die Ressource nicht aus einer DLL-Datei lade, sonder aus der EXE-Datei?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 16:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Folgender Code dient dazu um eine DLL zu laden.

Code:
  1. var h: cardinal;
  2. h := LoadLibrary('lemon.dll');


Und das brauchst du nicht mehr, da die Instanz bereits geladen ist. Und das Handle dazu befindet sich in HInstance. Damit weiß Windows woraus du laden möchtest. Nämlich der Instanze. Und das sieht dann in etwa so aus.
Code:
  1. var myStream: TResourceStream
  2. var foo: TglBitmap2D;
  3.  
  4. myStream := TResourceStream.CreateFromID(HInstance, 10, RT_RCDATA);
  5. try
  6.   foo.LoadFromStream(myStream);
  7. finally
  8.   myStream.Free;
  9. end;
  10. foo.GenTexture;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 17:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Irgendwie bin ich mal wieder dümmer als alle anderen...aber das ist ja nix neues :wink:

Also, folgendes habe ich getan:

Code:
  1. Uses
  2. ..., glBitmap, ...


Im Private Abschnitt der Klasse TForm:

Code:
  1. Private
  2.   { Private declarations }
  3.   ...
  4.   foo: TglBitmap2D;
  5.   myStream : TResourceStream;
  6.   ...
  7.  


Mein Implemetation Abschnitt sieht so aus:

Code:
  1. Implementation
  2.  
  3. Uses ...;
  4.   {$R *.dfm}
  5.   {$R RTexturen.res}


In meiner Init Prozedur sieht es so aus: (Wird nach SetupGL in der Prozedur FormCreate aufgerunfen - wie in den Templates.)

Code:
  1. myStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
  2. try
  3.   foo.LoadFromStream(myStream);
  4. finally
  5.   myStream.Free;
  6. end;
  7.   foo.GenTexture;


In der Render Prozedur passiert dann das:

Code:
  1.   foo.Bind;
  2.  
  3.   glBegin(GL_QUADS);
  4.     glTexCoord2f(1, 1); glVertex3f(-1, -1, 1);
  5.     glTexCoord2f(1, 0); glVertex3f( 1, -1, 1);
  6.     glTexCoord2f(0, 0); glVertex3f( 1,  1, 1);
  7.     glTexCoord2f(0, 1); glVertex3f(-1,  1, 1);
  8.   glEnd;


Wo liegt der Fehler bzw. was habe ich vergessen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 18:07 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wie äußerst sich denn dein Problem? Das wäre hilfreich. So weiß ich jetzt nur, dass etwas nicht stimmt. Aber da stellt mich die Frage was?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 18:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Beim Versuch das Programm zu compilieren bekomme ich die Meldung: EAccessViolation bei Adresse 004091A2...
Der Vorgang wird gestoppt und die Zeile

Code:
  1. myStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
wird markiert.

Hilft das weiter?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 14, 2006 00:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Ich hab es jetzt doch noch hinbekommen 8)

Statt

Code:
  1. myStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);


benutze ich allerdings

Code:
  1.   myStream := TResourceStream.Create(HInstance, 'Logo', RT_RCDATA);


In der .rc Datei Benutzer ich als Typ RCDATA für ein .jpg Bild. Vorher hatte ich da mal BITMAP stehen, aber die Typen müssen in der .rc wie auch im 'myStream' identisch sein...glaube ich.

Wie auch immer, es geht jetzt ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 14, 2006 08:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja. Sowohl der Name/ID als auch der ResourceType müssen übereinstimmen. Aber normal hättest du dabei ein EResourceError oder EResourceNotFound bekommen müssen. Aber egal so lange es jetzt geht. :-)

PS: Als Resourcetyp Bitmap zu benutzten ist nicht so gut, da dann in der Resource ein Stück des Headers fehlt und meine glBitmap das dann nicht mehr als Bitmap erkennen kann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 14, 2006 12:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Ja genau, also ich den Typ BITMAP ausprobiert habe, hat nicht mehr mein Quelltext "gemeckert", sonder es wurde eine Quelltextzeile aus deiner glBitmap "bemängelt". EResourceNotFound war das Resultat...

Ich finde, im Wiki Tutorial sollte da vielleicht verstärkt darauf hingewiesen werden, immer RCDATA zu verwenden wenn man deine glBitmap nutzt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 14, 2006 13:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Es ist eigentlich egal was man benutzt so lange es nicht BITMAP ist. ;-) Aber ja. Das ist wohl etwas was in dem Artikel noch so ein bisschen fehlt.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 41 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]