BMX :: Module / Framework

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

wunderkind

Betreff: BMX :: Module / Framework

BeitragMi, Dez 22, 2004 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht hat schon jemand von euch damit herumexperimentiert. folgender kurzer Beispielcode lässt sich kompilieren:
Code: [AUSKLAPPEN]
framework brl.basic
framework brl.glmax2d

Graphics(1280,1024,32)

While Not KeyHit(27)
   Cls()
   Flip()
Wend

End


Bringe ich ein framework brl.math mit rein, dann gibt's die Fehlermeldung Compile Error:Identifier 'Graphics' not found. Nach ein wenig herumprobieren und lesen in den Manuals bin ich einigermaßen ratlos.

Ideen von BlitzMax Nutzern?
 

Dreamora

BeitragMi, Dez 22, 2004 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
1) basic beinhaltet bereits math ...
2) Müsste es nicht

Framework brl.basic
import brl.glmax2d

sein anstelle von mehreren Framework? da es ja nur 1 Framework gibt an sich.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Mi, Dez 22, 2004 18:22, insgesamt 2-mal bearbeitet

wunderkind

BeitragMi, Dez 22, 2004 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
<Glühwein beiseite stell> Was heißt das?

Suco-X

Betreff: .....

BeitragMi, Dez 22, 2004 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Huh. Mir ist gerade das gleiche Problem wie Wunderkind untergekommen.
Habe aber bis noch keine Lösung gefunden. Habs so gemacht wie im Englischen Forum stand

Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
 

Dreamora

BeitragMi, Dez 22, 2004 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
framework brl.basic
Import brl.glmax2d
Import brl.math

Graphics(800,600,0)

While Not KeyHit(27)
   Cls()
   Flip()
Wend

End


geht bei mir problemlos ... Keine ahnung was ihr falsch macht, ausser halt mehrfache framework was nach help ja nicht erlaubt ist.

Ach ja was das heisst: Es ist nur 1 Framework erlaubt, da nur "1 Module" das Baseframework darstellen kann, die restlichen Module werden dann aufs Framework drauf gepackt. ( "" darum weil man in ein module, wie das basic ja zeigt, zig andere importieren kann )
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

wunderkind

BeitragMi, Dez 22, 2004 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler steckt im Detail. Danke für den Hinweis.

Suco-X

Betreff: ......

BeitragMi, Dez 22, 2004 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Englischen Forum steht
Code: [AUSKLAPPEN]

import brl.max2d


und nicht

Code: [AUSKLAPPEN]

import brl.[b]gl[/b]max2d


Das war wohl das Problem. Jetzt meckert er wenigstens nicht mehr bei Graphics. Die Images stören jetzt Laughing
Danke jedenfalls. Vllt kannst du mir noch schnell sagen was ich für die Bilder Importieren muss. Habe soweit ich konnte alles getestet.

EDIT
Bmploader war es. Hat sich erledigt
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
  • Zuletzt bearbeitet von Suco-X am Mi, Dez 22, 2004 21:02, insgesamt einmal bearbeitet

wunderkind

BeitragMi, Dez 22, 2004 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Vermutlich kannst du einfach die Struktur des mod.Verzeichnisses anschauen. Die Bezeichnungen dort sind sprechend.

wunderkind

BeitragDo, Dez 23, 2004 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Achtung! Gerade habe ich mal wieder eine Stunde geknobelt. Wenn Bilder geladen werden sollen und man arbeitet mit Modulen (s.o.), dann müssen die jeweiligen Imageloader explizit importiert werden. Tut man das nicht, dann erhält man während des Kompilierens keinen Fehler. Versucht man dann aber etwa ein PNG zu laden, dann liefert LoadImage() NULL zurück.

Schade, dass aus der Onlinehilfe nicht auch direkt die Abhängigkeiten der Module ersichtlich sind.
 

Dreamora

BeitragDo, Dez 23, 2004 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja is schade das das fehlt wie die Hilfe der Objekte.

Auf der anderen Seite ist es eigentlich klar, dass du den entsprechenden Formatloader einbinden musst, denn würde der Imageloader alle einbinden wäre der nutze des implizit importierens zerstört.
Viele werden ja ohnehin nur imageloader + pngloader brauchen, da die anderen formate ... naja net so der hit sind Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

walski

Ehemaliger Admin

BeitragDo, Dez 23, 2004 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ma ganz im Ernst, wozu gibt es zwei Methoden zum einbinden von Modulen?

Hätte es nicht Import getan? Wozu gibt es diesen Framework-Kram?

Ich sehe da recht wenig Sinn drin und wenn es irgendwelchen internen Logiken entspricht hätte man auch einfach das erste Import als Framework nehmen können.
Zwei Befehle für, für den Programmiere, den selben Effekt, die auch nur in einer bestimmten Reihenfolge funktionieren halte ich für unsinnig.

Bin ich doof?

Thorben
buh!
 

Edlothiol

BeitragDo, Dez 23, 2004 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Die beiden Befehle haben nicht den selben Effekt.
BM importiert standardmäßig alle Module, mit dem Framework - Befehl kannst du das unterbinden, es wird dann eben nur das "Framework" und weitere importierte Module dazugeladen.
Framework ist also hauptsächlich zur Verkleinerung der Exen Wink
 

walski

Ehemaliger Admin

BeitragDo, Dez 23, 2004 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch keine sehr durchdachte Aussage, oder?
Wenn BMax standartmäßig alle Module importiert wird sich der Entwickler beim Einsatz des Import Befehls also etwas gedacht haben.

Folglich ist es entweder sinnvoll beim Auftauchen eines Import Befehls auf eine Art "nur angeforderte Module laden"-Modus umzustellen oder aber es gibt ein Befehl dafür, nur was spricht denn gegen einen Befehl wie:

LoadModulesStrict

Ohne jeden Parameter.
Ich finde es einfach verwirrend, das Framework dann auch gleich nen parameter erfordert. Sicher ist das kein Untergang und wenn man es einmal weiß ist ja auch alles gut, nur entspricht es doch irgendwie keiner Logik und ich denke unlogische Befehle haben auf Programmiersprachen nur höchst selten einen positiven Einfluss Wink

Thorben
buh!
 

Edlothiol

BeitragDo, Dez 23, 2004 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, Import wird auch benutzt, um in einem Modul andere Module zu importieren. Deshalb wahrscheinlich nicht die direkte Umstellung auf "nur angeforderte Module laden"-Modus. Und die Bedeutung des Import - Befehls in Modulen und Programmen unterschiedlich zu machen, ist ja wohl ähnlich unlogisch Wink
Sowas wie LoadModulesStrict wäre vielleicht schon sinnvoller gewesen... Allerdings wird man mit sehr hoher Wahrscheinlichkeit auch mindestens ein Modul importieren wollen, vielleicht deshalb die Zusammenfassung.

wunderkind

BeitragDo, Dez 23, 2004 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Thema wurde im englischen Forum auch schon diskutiert. Vielleicht wird dieser Punkt ja noch geändert.
 

Dreamora

BeitragDo, Dez 23, 2004 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Framework: Deaktiviert das Standardverhalten und setzt das Modul das angegeben wird als Kernmodul!

Import: Import ein precompiliertes Modul und linkt es ans Framework & den aktuellen Compile an

Include: ( ja auch das gibt es noch ) fügt den entsprechenden Code an der angegeben Stelle ein

Hoffe das klärt das ganze ein wenig auf.


Für Standardapp Settings habe ich mir ohnehin ein eigenes Modul gemacht, dass alles importiert, dass ich benötige.

Aus meiner Sicht hätte man ans Framework keinen Parameter dranhängen sollen! Sondern einfach als ein Keyword wie Strict, dass den Standardmoduleframework deaktiviert. Aber es wird sicher irgendwelche GCC gründe haben, die ein "base modul" verlangen
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

walski

Ehemaliger Admin

BeitragDo, Dez 23, 2004 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem GCC mag zwar sein und macht vielleicht auch Sinn, aber wie gesagt, ein Befehl ohne Parameter wäre eben auch das, was ich bevorzugen würde. Es ist ja anscheinend egal was dieses "Base-Modul" ist und so hätte sich der Compiler auch irgendeins der Module aussuchen können, oder?

walski
buh!

Henry

BeitragFr, Dez 24, 2004 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm...

okay, wenn ich

Code: [AUSKLAPPEN]

Framework brl.basic
Import brl.max2d

Graphics (800,600,0)

While Not KeyHit(1)
     Cls()
     Flip()
Wend

End


funktioniert es nicht, obwohl im Modul max2d doch die Grafikoptionen eingebunden sind.
Auch ein importieren der brl.blitzgl zusätzlich funktioniert nicht.

Nur wenn ich die brl.glmax2d einbinde (welche blitzgl und max2d automatisch importiert) läufts.

Ist brl.glmax2d wohl das Modul, welches als Minimum eingebunden werden muss, damit ein Programm läuft, hmm?
Aiya Eärendil Elenion Ancalima!

All you have to decide is what to do with the time that is given to you.

Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen!
Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht!

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group