Problem beim Framework

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Pebender

Betreff: Problem beim Framework

BeitragMo, Jan 13, 2014 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

habe mal wieder etwas Zeit um mit Bmax zu arbeiten.
Das Problem das ich im Moment habe ist, ich möchte eine Kundenverwaltung schreiben, die auf sql-lite beruht.
Wenn ich aber im Header folgendes eingebe:

Code: [AUSKLAPPEN]
SuperStrict
Framework BaH.DBSQLite
Import MaxGUI.drivers
Global Toolpic1:Timage


bekomme ich die Fehlermeldung:

Compile Error:

Identifer 'TImage` not found

wenn ich hingegen das Framework BaH.DBSQlite herausnehme funktioniert es wieder.
Weiß jemand wie ich das beheben kann??
BMax & MaxGUI

Holzchopf

Meisterpacker

BeitragMo, Jan 13, 2014 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinst du mit Zitat:
wenn ich hingegen das Framework BaH.DBSQlite herausnehme funktioniert es wieder.
dass du dann gar kein Framework mehr hast? Dann ist es klar, denn ohne Framework werden alle BRL-Module eingebunden. Was dir fehlt ist Max2D (das bietet TImage an), z.B. einfach BlitzMax: [AUSKLAPPEN]
Import BRL.GLMax2D


mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Pebender

BeitragMo, Jan 13, 2014 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem ist behoben, falls es jemand interessiert.

Statt

Framework BaH.DBSQLite

einfach

Import BaH.DBSQLite
BMax & MaxGUI

DAK

BeitragMo, Jan 13, 2014 23:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat Holzchopf gerade über deinem Post erklärt.
Der Unterschied zwischen Framework und Import ist, dass wenn du kein Framework hast, alle Module im BRL-Scope geladen werden. Dadurch wird dann natürlich auch das BRL.GLMax2D geladen.

Das Framework zu Import umändern funktioniert dann zwar, ist aber etwas blöd, weil du somit alle Module importierst, selbst die (gut 30) die du nicht brauchst.

Man sollte Framework möglichst verwenden, da es Programme kleiner und schneller macht. Man muss dann hald bei jedem Befehl den man verwendet in die Hilfe schauen. Dort steht auf der Seite wo man den Befehl (oder den Type) findet ganz oben in welchem Modul er sich befindet und dieses Modul dann importieren.

In diesem Fall ist das BRL.GLMax2D und ein
BlitzMax: [AUSKLAPPEN]
Import BRL.GLMax2D

nach dem Framework löst dein Problem.
Gewinner der 6. und der 68. BlitzCodeCompo
 

PhillipK

BeitragDi, Jan 14, 2014 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder etwas einfacheres:

Schreibe deinen code vorerst IMMER mit "Import", zwecks erklärten problem.
Wenn du dann irgendwann alle funktionen genutzt hast, die du brauchst:

http://homepage.ntlworld.com/config/fa/

Entschuldigt für die Fremdwerbung (ist nicht mein programm^^) - aber es ist einfach extremst brauchbar Smile

du ziehst deine maindatei in die gui, wartest nen moment und das programm spuckt dir einen passenden Framwork/import block basierend auf deinem blitzmax-mod ordner Smile


Um DAK noch weiter zu erklären:

Framework ist meiner meinung nach ein letzter / vorletzter schritt, bevor man alles fertig hat.
Standartmäßig wird der komplette pub bzw brl modordner importiert.
Das ist einiges an code, wovon für gewöhnlich nur ein bruchteil benötigt wird.
Usermodule und eigene module muss man immer noch seperat importen -

Stells dir so vor, das dein Code standartmäßig immer "Import brl.*" krams drin hat - jeden unter-mod. Das geschieht allerdings in einem schritt, den du nicht mitkriegst - das ermöglicht dir, das du einfach "Drauf los schreiben" kannst.

Dieser schritt, eben das sinnlose importen von allem, wird durch "framework" ausgehebelt. Verwendest du also "Framework", musst du explizit angeben, was du alles importen willst (somit wurde dein TImage nicht gefunden, da der entsprechende brl.imgage (?) nicht importiert wurde)
Hier greift der eben verlinkte Framework-Assistant, da es eine ziemliche Nervenaufreibende Mammutaufgabe sein kann, jeden Import zu finden.

Ps: Framework verringert also, durch das explizite importieren (und kein breitband import), das die größe deiner Exe kleiner wird. Ausserdem müsste es (habs nicht getestet) auch die Compilezeit verringern.

Gruß, Phillip

BladeRunner

Moderator

BeitragDi, Jan 14, 2014 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Jop, Der FA ist einfach Gold wert. Den kann auch ich nur empfehlen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

DAK

BeitragDi, Jan 14, 2014 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Den FA habe ich gar nicht gekannt! Interessante Sache!

Das Ganze so rum angehen wie PhillipK es sagt (Entwickeln ohne Framework und im Nachhinein das Framework mittels FA einfügen) ist auch voll ok und geht so, solange im endgültigen Programm das Framework drinnen ist.

Ich gehe es gerne von der anderen Seite an. Fast jedes meiner Programme fängt mit
BlitzMax: [AUSKLAPPEN]
Framework BRL.StandardIO

an. Das mache ich deswegen, weil ich das Warten während dem Kompilieren sehr langweilig finde und Framework das Kompilieren doch um einiges schneller macht, vor allem, wenn die großen Module (wie Max2D) nicht verwendet werden.
Selbst wenn man Max2D verwendet, wird das Kompilieren deutlich schneller, da es im BRL-Ordner zwei Varianten des Max2D-Moduls (DirectX und OpenGL) gibt, von denen man somit eines weglassen kann.
Gewinner der 6. und der 68. BlitzCodeCompo
  • Zuletzt bearbeitet von DAK am Mi, Jan 15, 2014 0:35, insgesamt einmal bearbeitet

Pebender

BeitragDi, Jan 14, 2014 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, jetzt hab selbst ich es verstanden, vielen Dank an euch.

mfg
BMax & MaxGUI

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group