mGUI - Handle vor Erstellung der GUI-Elementen
Übersicht

WellBetreff: mGUI - Handle vor Erstellung der GUI-Elementen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin,
ich habe gerade ein Problem mit der mGUI. Wärend der folgende Code funktionieren sollte: Code: [AUSKLAPPEN] mg_gui_Skin("...")
Local hWindow = mg_Window_Create(0, 0, 100, 100, "Test") Repeat Cls mg_gui_Main() Flip Until KeyHit(1) zeigt mir folgender rein gar nichts an: Code: [AUSKLAPPEN] mg_gui_Skin("...")
[b]Type Test End Type Local Test = Handle(New Test)[/b] Local hWindow = mg_Window_Create(0, 0, 100, 100, "Test") Repeat Cls mg_gui_Main() Flip Until KeyHit(1) Folgender Code wiederum funktioniert: Code: [AUSKLAPPEN] mg_gui_Skin("...")
Local hWindow = mg_Window_Create(0, 0, 100, 100, "Test") [b]Type Test End Type Local Test = Handle(New Test)[/b] Repeat Cls mg_gui_Main() Flip Until KeyHit(1) Die GUI hat also offensichtlich Probleme, wenn man vor dem Erstellen der Elemente die Funktion "Handle" verwendet?! Es hatte nicht zufällig einmal einer das selbe Problem und zufällig einen schnellen "Fix" dafür gefunden? MfG |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also normalerweise sollte davon garnix funktionieren. Man muss erst mg_gui_Init aufrufen ![]() |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Well |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der Eisvogel hat Folgendes geschrieben: Also normalerweise sollte davon garnix funktionieren. Man muss erst mg_gui_Init aufrufen
![]() Mag sein. Ist aber meiner Meinung nach nicht relevant, der Schwerpunkt liegt ja an dem Handle vor dem Erstellen der GUI-Elementen. |
||
Well |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin. ![]() In der Datei kernel.bb gibt es die Funktion mg_gui_render(). Darin finden sich folgende zwei Zeilen Code: Code: [AUSKLAPPEN] ;Local widget.mg_widget = First mg_widget ;*** VOR 22.08.2008 ***
Local widget.mg_widget = Object.mg_widget( mg_gui_render ) ;*** NEU 22.08.2008 *** Verwendet man hier die "alte" Version, macht es keine Probleme, Handle vor dem erzeugen der GUI-Elemente zu verwenden. Folgendes funktioniert also: Code: [AUSKLAPPEN] Local widget.mg_widget = First mg_widget ;*** VOR 22.08.2008 ***
;Local widget.mg_widget = Object.mg_widget( mg_gui_render ) ;*** NEU 22.08.2008 *** Nur für den Fall, dass noch wer das gleiche Problem hat. ![]() MfG |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
handle erzeugt handles
evtl ist ohne init mg_gui_renderer=0 und dass ist zufällig die erste erstellte handle von First mg_widget erstellt man dann handles zwischen rein provozierst du damit offensichtlich einen fehler. |
||
Well |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Silver_Knee hat Folgendes geschrieben: handle erzeugt handles
evtl ist ohne init mg_gui_renderer=0 und dass ist zufällig die erste erstellte handle von First mg_widget erstellt man dann handles zwischen rein provozierst du damit offensichtlich einen fehler. In meinem richtigem Code rufe ich die Init Funktion natürlich auf. Macht jedoch keinen Unterschied, den Fehler besteht trotzdem. mfg |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte die Codes oben alle ausprobiert, keiner ging ohne das Init. Mit einem Init lief alles wunderbar. Ich kann deinen Fehler leider nicht nachvollziehen bzw reproduzieren.
MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Well |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh? Gut, dann einmal mein Code:
Code: [AUSKLAPPEN] ; Dateien einbinden
Include "../Lib/Tcp/TcpClient.bb" Include "../Lib/Resource/Resource.bb" Include "../ExtLib/mGUI/mgui.bb" ; Initialisieren Graphics 800, 600, 32, 2 mg_gui_Init("Imatrix") ;----> GUI-INI <---- SetBuffer BackBuffer() HidePointer() ; GUI Skin setzen mg_gui_Skin("./Data/GUI/skin_woody") ; Modus Const MODE_LOGIN = $01 Const MODE_CHAR = $02 Const MODE_WORLD = $03 Global Mode = MODE_LOGIN ; Spieleparts einbinden Include "./Parts/Login.bb" ;Include "./Parts/Char.bb" ;Include "./Parts/World.bb" ; Hauptresource Global MainResource = LRRM_LoadResource("./Data/MainResource") Local MouseImage = LoadImage(LRRM_ExtractFile(MainResource, "Mouse.png", GetEnv("TEMP"))) ; Hauptroutine Local Timer = CreateTimer(30) Repeat WaitTimer(Timer) Cls ; Modus prüfen Select(Mode) ; Login Case MODE_LOGIN: LoginMain() Case MODE_CHAR: ;CharMain() Case MODE_WORLD: ;WorldMain() End Select ; GUI mg_gui_Main() ; Maus DrawImage MouseImage, MouseX(), MouseY() ; Beenden If KeyHit(1) Or MG_EVENT_EXIT Then End EndIf Flip Forever End Login.bb -> Code: [AUSKLAPPEN] Type Test
End Type Local Test = Handle(New Test) ; GUI Elemente erstellen ; Login Global CPL_LoginWindow = mg_Window_Create($FFFFFFFF, $FFFFFFFF, 300, 120, "Login", mg_close) mg_Label_Create(CPL_LoginWindow, 10, 30, 80, 20, "µBName: ") mg_Label_Create(CPL_LoginWindow, 10, 60, 80, 20, "µBPasswort: ") Global CPL_LoginNameInput = mg_TextField_Create(CPL_LoginWindow, 100, 30, 190, 20, "Benutzername", mg_single) Global CPL_LoginPasswordInput = mg_TextField_Create(CPL_LoginWindow, 100, 60, 190, 20, "Passwort", mg_single, 16, mg_password) Global CPL_LoginButton = mg_Button_Create(CPL_LoginWindow, 10, 90, 130, 20, "Login") Global CPL_LoginCreditsButton = mg_Button_Create(CPL_LoginWindow, 160, 90, 130, 20, "Credits") Ergebnis bei mir -> Ein schwarzer Bildschirm. (Abgesehen vom Mauszeiger) Nach der Änderung im mGUI-Code -> Das erstellte Fenster + Elemente. Mit originalem Code, aber ohne das Handle vor dem Erstellen der GUI-Elementen -> Das erstellte Fenster + Elemente. Ich wüsste nicht, wo im Code ein Fehler liegen sollte. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group