Problem mit Imports.

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

hazumu-kun

Betreff: Problem mit Imports.

BeitragDo, Jul 16, 2009 8:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Also Ich wollte ein bugfreies Programm von mir in der größe stutzen und habe dabei mit den Imports heftig Probleme.

Code:
Code: [AUSKLAPPEN]

Rem
   Imagemixer mit Alpha-Regler
End Rem

' ## Imports
Framework BRL.Blitz

Import BRL.System
Import BRL.Max2D
Import BRL.JPGLoader
Import BRL.Timer
Import BRL.EventQueue
Import BRL.D3D7Max2D

Import MaxGui.Drivers
'****


SuperStrict


' ## Konstanten
'  *> Create Flags
Const window_tbar%      = Window_Titlebar
Const window_clientc%   = Window_ClientCoords
Const slider_hori%      = Slider_Horizontal

'  *> GUI Events
Const window_close%      = Event_WindowClose
Const gadget_act%      = Event_GadgetAction
Const gadget_paint%      = Event_GadgetPaint
Const timer_tick%      = Event_TimerTick

'  *> Sonstige
Const filefilter$= "Bilder:png,jpg,bmp"
'****


' ## Variablen
'  *> Global
Global file$[2,3]
Global scale#[2,2]
Global image:TImage[2]
Global alpha#[2]
alpha[0]= 0.5
alpha[1]= 0.5

'  *> Globale GUI
Global win_main   :TGadget
Global slider_alpha   :TGadget
Global can_main   :TGadget
Global label_pic   :TGadget[2]

Global win_style%   = window_tbar+window_clientc+window_center

'  *> Lokal
Local i%
Local filename$
'****


' ## Bilder aussuchen
'  *> Dateinamen wählen und prüfen
For i= 0 To 1
   file$[i,0]= RequestFile$("Bild "+(i+1)+" auswählen",filefilter$)
   If file$[i,0]= "" Then i:-1
   
   file$[i,2]= ExtractExt$ (file$[i,0])
   file$[i,1]= StripAll$ (file$[i,0])
Next

'  *> Bilder laden und Skalierung festlegen
For i= 0 To 1
   filename$= file$[i,1]+"."+file$[i,2]

   image[i]= LoadImage (file$[i,0])
   
   scale[i,0]= GetxScale (image[i],800)
   scale[i,1]= GetyScale (image[i],600)
Next
'****


' ##GUI-Setup
win_main      = CreateWindow ("Imagemixer", 50,50,810,640,Null,win_style)
slider_alpha   = CreateSlider (5,5,800,30,win_main,slider_hori)

SetSliderRange (slider_alpha,5,105)
SetSliderValue (slider_alpha,50)

label_pic[0]   = CreateLabel ("Bild1: 50%",10,35,80,15,win_main,Label_Center)
label_pic[1]   = CreateLabel ("Bild2: 50%",720,35,80,15,win_main,Label_Center)

can_main      = CreateCanvas (5,55,800,600,win_main)
'****

' ## FPS-Timer
CreateTimer (60)
'****

' ## Mainloop
Repeat
   WaitEvent()
   
   Select EventID()
      Case window_close
         End
         
      Case gadget_act
         Select EventSource()
            Case slider_alpha
               alpha[1]= Float(EventData())/100
               alpha[0]= 1-alpha[1]
         End Select
         
      Case timer_tick
         UpdateAll()
      
      Case gadget_paint
         UpdateAll()
   End Select
Forever
'****


' ## Funktionen
'  *>   GetXScale liefert die nötige X-Skalierung
'      die ein Bild haben muss um die angegebene
'      Breite zu erreichen.
Function GetXScale# (img:TImage,width%)
   Local oriwidth%= ImageWidth (img)
   
Return Float(width)/oriwidth
EndFunction

'  *>   GetYScale liefert die nötige Y-Skalierung
'      die ein Bild haben muss um die angegebene
'      Höhe zu erreichen.
Function GetYScale# (img:TImage,height%)
   Local oriheight%= ImageHeight (img)
   
Return Float(height)/oriheight
EndFunction

'  *>   Erneuert Anzeigen der GUI und zeichnet
'  *>   den Canvas neu.
Function UpdateAll ()
   Local i%
   
   For i= 0 To 1
      SetGadgetText (label_pic[i],"Bild"+(i+1)+": "+Int(alpha[i]*100)+"%")
   Next
   RedrawAll()
End Function

Function RedrawAll ()
   Local i%
   
   SetGraphics CanvasGraphics(can_main)
   Cls
   SetBlend (AlphaBlend)
   For i= 0 To 1
      SetAlpha (alpha[i])
      SetScale (scale[i,0],scale[i,1])
      DrawImage (image[i],0,0)
   Next
   Flip
End Function
'****


Beim Ausführen im Debug Modus bekomm ich eine Unhandled Exception in der Funktion GetXScale(erste Zeile). Was stimmt da nicht.

Und außerdem bleibt der bmk.exe prozess offen und hinterd mich daran Den Compiler nochmal zu starten.
Hier die genaue Fehlermeldung:

Code: [AUSKLAPPEN]
---------------------------
Runtime Error
---------------------------
Unhandled Exception: Attempt to access field or method of Null object
---------------------------
OK   
---------------------------

hazumu-kun

BeitragDo, Jul 16, 2009 8:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann closed werden.
Hab den Fehler gefunden.

Ich hatte meine Testbilder in zweiOordnern.
Einmal als PNG's
(die hab ich die ganze zeit versucht ohne PNGLoader zu öffnen)
Und in nem anderem Ordner als JPG.

Schlagt mich tot wenn mir sowas nochmal passieren sollte.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group