Type funzelt nit
Übersicht

![]() |
KryanBetreff: Type funzelt nit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich wollte mal selber GUI schreiben und da klappt irgendwas mit den types nit: Code: [AUSKLAPPEN] SetBuffer BackBuffer() Type windoof Field activ% Field X Field Y End Type Dim window.windoof(10) For I=1 To 10 window.windoof(I)=New windoof Next Function CreateWindow(ID,X,Y) window(ID)\activ=1;<-- Hier sind die Fehler window(ID)\X=winX;<-- Hier sind die Fehler window(ID)\Y=winY ;<-- Hier sind die Fehler End Function und das ist die hauptdatei: Code: [AUSKLAPPEN] Graphics 640,480 windowed=CreateWindow(1,1,1) Include "krygui.bb" |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm, kompiliert bei mir ohne Probleme. Was mir nur auffällt: Du nutzt die Nr. 0 des Arrays nicht, die gibts ja auch noch.
Code: [AUSKLAPPEN] For I=0 To 10
window.windoof(I)=New windoof Next Was funktioniert denn genau nicht? |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ich starte kommt "Illegal Memory Address"
und als ich die Types in der Funktion entfernt habe ging es! |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
AAAAAAH! Ich habs! Du includest krygui.bb nach dem CreateWindow() - Aufruf. Zu diesem Zeitpunkt ist das Array aber noch nicht initialisiert!
-> Include ganz an den Anfang setzen, dann müsste es gehen. |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool, jetzt klappt es, ich dachte eigentlich wäre es egal, wo man include sachen hinpackt ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 1024,768 Global stopwindow=CreateImage(25,25) SetBuffer ImageBuffer(stopwindow) Color 128,128,128 Rect 0,0,25,25 Color 1,1,1 Line 2,2,23,23 Global titelleiste=CreateImage(1024,25) SetBuffer ImageBuffer(titelleiste) Color 0,0,255 Rect 0,0,1024,25 SetBuffer BackBuffer() Type windoof Field activ% Field X Field Y End Type Dim window.windoof(10) For I=0 To 10 window.windoof(I)=New windoof Next Function CreateWindow(ID,X,Y) window(ID)\activ=1 window(ID)\X=winX window(ID)\Y=winY Return ID End Function Function ShowWindow(ID) If window(ID)\activ=1 Then DrawImage titelleiste,window(ID)\X,window(ID)\Y Else RuntimeError("Illegal Memory Address by Kryan") End If End Function und das hauptprogramm: Code: [AUSKLAPPEN] Include "krygui.bb" Graphics 640,480 windowed=CreateWindow(1,1,1) ShowWindow(windowed) WaitKey End Wieder Illegal Memory Address |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du erstellst in der Include - Datei Bilder. Danach steht jedoch in der Hauptdatei ein Graphics - Befehl, sodass sie alle wieder gelöscht werden. Setz das Include nach dem Graphics ![]() Edit: Übrigens setzt du 2mal den Grafikmodus - einmal in der Include - , und einmal in der Hauptdatei. |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
die titelleiste sehe ich danach aber immer noch nicht | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Graphics würd ich in die Include nicht reinmachen.
Ausserdem wenn du schon types benutzt würde ich die CreateFunktion so machen das immer ein neues Fenster erstellt wird. Code: [AUSKLAPPEN] Function CreateWindow(x,y) win.windoof = new windoof win\activ = 1 win\x = x win\y = y Return Handle(win) End Function Draw Funktion: Code: [AUSKLAPPEN] Function DrawGUI() For win.windoof = each windoof if win\activ = 1 DrawImage ....... ...... endif Next End Function Damit könntest du dann so viele Fenster machen wie du willst. ID brauchts auch nicht unbedingt, bekommt man mit Handle automatisch eine. Wenn du von dem handle aus wieder ein Objekt machen willst: Code: [AUSKLAPPEN] win = CreateWindow(100,100) win\x = 100 ;Geht nicht! ist nur das handle winobj.windoof = Object.windoof(win) ;Damit kriegt man zugriff auf das objekt winobj\x = 100 ;Funktioniert PS: Hauptprogramm: Code: [AUSKLAPPEN] Graphics .... SetBuffer BackBuffer() Include "...." Main Loop.... Wenn du wieder das Objekt willst |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
aso, ok thx jolinah und natürlich edlothiol | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group