Fenster wechseln bei Escape-GUI
Übersicht

bujaBetreff: Fenster wechseln bei Escape-GUI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich bin grad was am coden und leider am verzweifeln. Ich habe ein Problem, was eigentlich ganz einfach gehen sollte. Ich kann nicht den ganzen code posten, da ich ihn noch für einen wettbewerb brauche -.- So, wenn man auf neues dokument im menü geht, soll sich ein Fenster was ich definiert habe öffnen, was auch funktioniert. Wenn man auf abbrechen (abbrechen.eg_button) drückt soll es, (surprise surprise) das Fenster verschwinden lassen und zum Hauptfenster wechseln. Aber leider passiert nichts wenn man auf abbrechen geht. das Fenster wird nicht unsichtbar ![]() Fenster Erzeugen: Code: [AUSKLAPPEN] Global fenster_neu.EG_Window = EG_Window(GraphicsWidth()/2,GraphicsHeight()/2,300,150,"Neues Dokument öffnen",5) fenster_neu.EG_Window\visible = False eg_draw_all() eg_windowactive(fenster_haupt) ;Jetzt die Label, Eingabefelder und Button machen Global label_1.eg_label = eg_label(fenster_neu,20,1,100,20,Chr$(4)+"Eigenschaften:" ) Global label_breite.eg_label = eg_label(fenster_neu,30,20,100,20,"Breite:") Global text_breite.eg_input = eg_input(fenster_neu,30+100,20,100,"",4,False,False) Global label_hohe.eg_label = eg_label(fenster_neu,30,40,100,20,"Höhe:") Global text_hohe.eg_input = eg_input(fenster_neu,30+100,40,100,"",4,False,False) Global ok.eg_button = eg_button(fenster_neu,50,100,100,20,"Ok") Global abbrechen.eg_button = eg_button(fenster_neu,180,100,100,20,"Abbrechen") Die Funktion die das Fenster ausführt: Code: [AUSKLAPPEN] Function NewDocument() eg_windowactive(fenster_neu.EG_Window) ;Fokus auf Neu-Dokument Fenster eg_window_stable = True ;Wechseln zwischen 2 Fenstern verhindern. eg_draw_all() ;Änderungen wirksam machen If eg_event_button = abbrechen.eg_button eg_windowactive(fenster_haupt) eg_window_stable = False eg_draw_window(fenster_haupt.EG_Window) EndIf End Function Ich hoffe mal ich hab nicht ins falsche Forum gepostet. |
||
... |
![]() |
Blackside |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If eg_event_button = abbrechen.eg_button
muss Code: [AUSKLAPPEN] If eg_event_button = abbrechen
heißen |
||
Hier sollte eigentlich eine Signatur stehen! |
buja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ändert leider auch nicht, wenn ich das ".eg_button" wegmache.
Es reagiert immer noch nicht. |
||
... |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Fenster_Neu\Visible = False
So wird es unsichtbar. Ausserdem brauchst du die Position des Fensters nicht mit GraphicsWidth/Height zu berechnen - schliesslich gibt es ja den Tag EG_Center, denn man bei der Positionsangabe angeben kann. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
buja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auch das bringt leider nichts ![]() Bei Klick auf Abbrechen sieht man das fenster_neu immer noch ![]() HAt jemand noch ne idee? sonst werd ich das so dastehen lassen müssen, sonst schaffe ich den rest nicht bis ende mai. |
||
... |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann machst du irgendetwas falsch.
Das Fenster wird nämlich nur gezeichnet, wenn EG_Window\Visible auf 1 gesetzt wird. Das heisst, dass du es vermutlich nicht auf False setzt, wenn es trotzdem noch da ist. Mach mal probehalber ein Stop in den Block, in dem du das Fenster verschwinden lässt, und überprüfe dort mal, ob es überhaupt aufgerufen wird. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
buja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm..
Ich werde hier mal den Source Code posten, ich hoffe dass niemand abguckt oder 1:1 kopiert, und selbst wenn, es ist noch kaum fortgeschritten.. ![]() Ich benutze den IDEal editor, falls der Code komisch aussieht. (der code wird nicht laufen) Code: [AUSKLAPPEN] ;Versionsnummer: version# = 0.01 ;Screen Settings ;------------------------------------------------------------------------- Global x_aufloesung = apigetsystemmetrics(0) ;Gleich Desktop Auflösung mit USER LIB Global y_aufloesung = apigetsystemmetrics(1) ;GLEICH Desktop Auflösung mit USER lIB Global z_farbtiefe = 32 ;32bit für Detailtreue^^ Global modus = 2 ;Skalierbares Fenster ;Allgemeine Settings ;------------------------------------------------------------------------- Type dokument ;Erstelle ein Type gültig für alle Dokumente mit name,pfad und auflösung Field name$ ; Beispiel: name$ = "picture" Field x,y ;Die Auflösungen (selbsterklärend^^) Field pfad$ ;Der "echte Pfad" ergibt sich aus 'pfad$ + name$' + Dateiart beim SaveDialog End Type Global temp_image Global dokumentexist = 0 ;Prüfwert ob ein Dokument grade bearbeitet wird oder nicht Global CurrentTool = 0 ;0 = auswahl, 1 = radiergummi, 2 = stift, u.s.w (siehe image load befehle unten) Global farbe = $000000 ;Grapchis und Buffer ;------------------------------------------------------------------------- Graphics (x_aufloesung,y_aufloesung,z_farbtiefe,modus) ;Graphicsmodus laden für Blitz3D SetBuffer BackBuffer() ;Den Malbereich auf BackBuffer setzen. HidePointer() ;Die Windowsmaus verstecken (Die nervt beim Fenster-schieben) Global framelimiter = CreateTimer(60) ;FRAME-LIMITER Timer einstellen. ;[Block IMAGES LADEN FÜR TOOLBOX] ;IMAGES LADEN ;------------------------------------------------------------------------- Global menuimage = LoadAnimImage ("system/png/iconline.png",17,17,0,3) ;DAS IMAGE FÜR DAS MENÜ mit save load new Global closeimage = LoadImage ("system/png/CloseButton.jpg") ;DAS IMAGE FÜR DAS BEENDEN IM DATEI MENÜ Global img_auswahl = LoadImage ("system/png/toolbox/auswahl.png") MaskImage (img_auswahl,255,0,255) Global img_radiergummi = LoadImage("system/png/toolbox/radiergummi.png") MaskImage (img_radiergummi,255,0,255) Global img_stift = LoadImage("system/png/toolbox/stift.png") MaskImage (img_stift,255,0,255) Global img_eimer = LoadImage("system/png/toolbox/eimer.png") MaskImage (img_eimer,255,0,255) Global img_pinsel = LoadImage("system/png/toolbox/pinsel.png") MaskImage (img_pinsel,255,0,255) Global img_airbrush = LoadImage("system/png/toolbox/airbrush.png") MaskImage (img_airbrush,255,0,255) Global img_rechteck = LoadImage("system/png/toolbox/rechteck.png") MaskImage (img_rechteck,255,0,255) Global img_vieleck = LoadImage("system/png/toolbox/vieleck.png") MaskImage (img_vieleck,255,0,255) Global img_bogen = LoadImage("system/png/toolbox/bogen.png") MaskImage (img_bogen,255,0,255) Global img_kreis = LoadImage("system/png/toolbox/kreis.png") MaskImage (img_kreis,255,0,255) Global img_text = LoadImage("system/png/toolbox/text.png") MaskImage (img_text,255,0,255) ;[End BLOCK] ;Dateien Includen für die GUI und Funktionen (NIEMALS VOR GRAPHICS() :D ) Include "system/escape.bb" ;Die Haupt GUI Include "system/eg_sawindow.bb" ;Neues Fenster ohne Blitz3d Standard Fenster Include "system/ImageFunctions.bb" ;Bildmanipulationsbefehle ;Das GUI-Fenster öffnen und das BlitzBasic Fenster verstecken^^ ;------------------------------------------------------------------------- Global fenster_haupt.EG_Window = eg_create_SAwindow(0,-30,"CrazyPaint" + "v" + version# + " by PE") ;NEUES FENSTER MIT WINDOWS AUFLÖSUNG fenster_haupt\state = True eg_draw_all() eg_maus = False ;Jetzt das Menü und die Items ;[Block Menu] Global Menu.eg_menuitem = eg_menu(fenster_haupt) ;Das Menü-Handle Global Datei.eg_menuitem = eg_menuitem(Menu,"Datei","") ;EINTRAG DATEI Global Neu.eg_menuitem = eg_menuitem(Datei,"Neu.. ","Strg + N",menuimage,2) ;DATEI --> Neu.. Global Offnen.eg_menuitem = eg_menuitem(Datei,"Öffnen.. ","Strg + O",menuimage,1) ;DATEI --> Öffnen.. Global Speichern.eg_menuitem = eg_menuitem(Datei,"Speichern unter..","Strg + S",menuimage,0) ;DATEI --> Speichern Unter.. eg_menubrk (Datei) ;Waagerechte Trennlinie Global Schliessen.eg_menuitem = eg_menuitem(Datei,"Beenden","",closeimage) ;DATEI --> Beenden ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Global Bearbeiten.eg_menuitem = eg_menuitem(Menu,"Bearbeiten","") ;EINTRAG BEARBEITEN Global Ruckgangig.eg_menuitem = eg_menuitem(Bearbeiten,"Rückgängig","Strg + Z") ;BEARBEITEN --> Rückgängig Global Wiederholen.eg_menuitem = eg_menuitem(Bearbeiten,"Wiederholen","Strg + Y") ;BEARBEITEN --> Wiederholen eg_menubrk (Bearbeiten) ;trennlinie Global Ausschneiden.eg_menuitem = eg_menuitem(Bearbeiten,"Ausschneiden","Strg + X") ;BEARBEITEN --> Ausschneiden Global Kopieren.eg_menuitem = eg_menuitem(Bearbeiten,"Kopieren","Strg + C") ;BEARBEITEN --> Kopieren Global Einfugen.eg_menuitem = eg_menuitem(Bearbeiten,"Einfügen","Strg + V") ;BEARBEITEN --> Einfügen eg_menubrk (Bearbeiten) Global AllesAuswahlen.eg_menuitem = eg_menuitem(Bearbeiten,"Alles Auswählen","Strg + A") ;BEARBEITEN --> Alles Auswählen Global AuswahlAufheben.eg_menuitem = eg_menuitem(Bearbeiten,"Auswahl Aufheben","Strg + N") ;BEARBEITEN --> Nichts Auswählen ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Global Ansicht.eg_menuitem = eg_menuitem(Menu,"Ansicht","") ;ANSICHT Global GesamtBild.eg_menuitem = eg_menuitem (Ansicht,"Gesamtes Bild anzeigen","Strg + G") ;ANSICHT --> Gesamtes Bild zeigen im Vollbildmodus ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Global Bild.eg_menuitem = eg_menuitem(Menu,"Bild","") ;BILD MENÜ Global Drehen.eg_menuitem = eg_menuitem(Bild,"Drehen..","Strg + D") ;BILD --> Drehen.. Global Spiegeln.eg_menuitem = eg_menuitem(Bild,"Spiegeln..","Strg + S + D") ;BILD --> Spiegeln.. Global Skalieren.eg_menuitem = eg_menuitem(Bild,"Skalieren..","Strg + T") ;BILD --> Skalieren.. Global Helligkeit.eg_menuitem =eg_menuitem(Bild,"Helligkeit..","Strg + B") ;BILD --> Helligkeit.. Global Kontrast.eg_menuitem = eg_menuitem(Bild,"Kontrast..","Strg + K") ;BILD --> Kontrast.. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Global Filter.eg_menuitem = eg_menuitem(Menu,"Filter","") ;FILTER MENÜ Global Scharfen.eg_menuitem = eg_menuitem(Filter,"Schärfen..","Strg + W") ;FILTER --> Schärfen Global Weichzeichnen.eg_menuitem = eg_menuitem(Filter,"Weichzeichnen..","Strg + E") ;FILTER --> Weichzeichnen Global Solarisieren.eg_menuitem = eg_menuitem(Filter,"Solarisieren..", "Strg + J") ;FILTER --> Solarisieren Global Kolorieren.eg_menuitem = eg_menuitem(Filter,"Kolorieren..","Strg + F") ;FILTER --> Kolorieren Global Pragen.eg_menuitem = eg_menuitem(Filter,"Prägen..","Strg + P") ;FILTER --> Prägen Global Graustufen.eg_menuitem = eg_menuitem(Filter,"Graustufen","Strg + G") ;FILTER --> Graustufen Global Invertieren.eg_menuitem = eg_menuitem(Filter,"Invertieren..","Strg + I") ;FILTER --> Invertieren Global Diffuser.eg_menuitem = eg_menuitem(Filter,"Diffuser..","Strg + H") ;FILTER --> Diffuser ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Global Uber.eg_menuitem = eg_menuitem(Menu,"Über..","") ; ABOUT MENÜ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;[End Block] ;[Block Toolbox] toolbox.eg_frame = eg_frame(fenster_haupt,0,0,1680/30,1050/5,"Toolbox") ;Damit die Proportionen stimmen auswahl.EG_ImgButton = EG_ImgButton (fenster_haupt,2,13,img_auswahl,0,"Rechteckige Auswahl",False,False) radiergummi.EG_ImgButton = EG_ImgButton (fenster_haupt,34,13,img_radiergummi,0,"Radiergummi",False,False) stift.EG_ImgButton = EG_ImgButton (fenster_haupt,2,35,img_stift,0,"Stift",False,False) eimer.EG_ImgButton = EG_ImgButton (fenster_haupt,34,35,img_eimer,0,"Eimer",False,False) ; X-Abstand 32: Y-Abstand 22 pinsel.EG_ImgButton = EG_ImgButton (fenster_haupt,2,(35+22),img_pinsel,0,"Pinsel",False,False) airbrush.EG_ImgButton = EG_ImgButton (fenster_haupt,34,(35+22),img_airbrush,0,"Airbrush",False,False) rechteck.EG_ImgButton = EG_ImgButton (fenster_haupt,2,(35+22*2),img_rechteck,0,"Rechteck",False,False) vieleck.EG_ImgButton = EG_ImgButton (fenster_haupt,34,(35+22*2),img_vieleck,0,"Vieleck",False,False) bogen.EG_ImgButton = EG_ImgButton (fenster_haupt,2,(35+22*3),img_bogen,0,"Bogen",False,False) kreis.EG_ImgButton = EG_ImgButton (fenster_haupt,34,(35+22*3),img_kreis,0,"Kreis",False,False) Text.EG_ImgButton = EG_ImgButton (fenster_haupt,2,(35+22*4),img_text,0,"Text",False,False) ;Jetzt das Bildmenü Button Global hintergrund = CreateImage (50,30) Farbauswahl.EG_ImgButton = EG_ImgButton (fenster_haupt,2,(55+22*5),hintergrund,1,"Farbauswahl",False,False) ;[End BLOCK] ;[Block Malbereich] blatt.eg_image = eg_image(fenster_haupt,1680/30+10,0,temp_image) ;[End block] ;[Block Neues Dokument Fenster] Global fenster_neu.EG_Window = EG_Window(GraphicsWidth()/2,GraphicsHeight()/2,300,150,"Neues Dokument öffnen",5) fenster_neu.EG_Window\visible = False eg_draw_all() eg_windowactive(fenster_haupt) ;Jetzt die Label, Eingabefelder und Button machen Global label_1.eg_label = eg_label(fenster_neu,20,1,100,20,Chr$(4)+"Eigenschaften:" ) Global label_breite.eg_label = eg_label(fenster_neu,30,20,100,20,"Breite:") Global text_breite.eg_input = eg_input(fenster_neu,30+100,20,100,"",4,False,False) Global label_hohe.eg_label = eg_label(fenster_neu,30,40,100,20,"Höhe:") Global text_hohe.eg_input = eg_input(fenster_neu,30+100,40,100,"",4,False,False) Global ok.eg_button = eg_button(fenster_neu,50,100,100,20,"Ok") Global abbrechen.eg_button = eg_button(fenster_neu,180,100,100,20,"Abbrechen") ;[End block] ;[Block Hauptschleife] ;HAUPT_SCHLEIFE^^ ;------------------------------------------------------------------------- Repeat Cls ;selbsterklärend^^ eg_move_SAwindow(fenster_haupt) ;Prüfen ob Fenster bewegt wird eg_main() ;Hauptroutine der GUI Farbauswahl() ;Farbauswahl aufrufen (im Toolbox Frame) ;EVENTS PRÜFEN ;------------------------------------------------------------------------- If eg_event_imgbutton = Farbauswahl.EG_ImgButton Then farbe = eg_colorpicker(farbe) ;FARB ASUWAHL DIALOG ÖFFNEN ;DAtei --> Neu If eg_event_menuitem = Neu.eg_menuitem Then NewDocument() ;Neues Dokument Dialog öffnen If eg_event_window = fenster_haupt Then Exit ;Bei Close Button schließen WaitTimer framelimiter ;Der Frame-Limiter^^ Wir wollen ja keine 100% Auslastung bei Paint^^ Flip 0 Forever eg_exit() ;[End block] ;========================================================================= ;######################################################################### ;FUNCTIONS ;Neues Dokument erstellen ;------------------------------------------------------------------------- Function NewDocument() eg_windowactive(fenster_neu) ;Fokus auf Neu-Dokument Fenster eg_window_stable = True ;Wechseln zwischen 2 Fenstern verhindern. eg_draw_all() ;Änderungen wirksam machen If eg_event_button = abbrechen fenster_neu\Visible = False eg_windowactive(fenster_haupt) eg_window_stable = False eg_draw_window(fenster_haupt) EndIf End Function ;Farbauswahlbutton im Frame Toolbox aktivieren ;------------------------------------------------------------------------- Function Farbauswahl() LockBuffer ImageBuffer(hintergrund) SetBuffer ImageBuffer(hintergrund) For i = 1 To 50 If farbe = $000000 Then farbe = $010101 : state = 1 ;Das ist notwendig weil die GUI irgendwie $000000 nicht darstellt^^ For f = 1 To 30 WritePixelFast(i,f,farbe) Next Next UnlockBuffer ImageBuffer(hintergrund) SetBuffer BackBuffer() If state = 1 Then farbe = $000000 ;Die Farbe wieder zurückstellen, damit das Bild nicht verfälscht wird^^ End Function ;HTML FARBWERTE in R,G,B umrechnen Function umrechnen() RGB% = $3454FFFF ; $11223344 Shr 24 = $00000011 Alpha% = ARGB Shr 24 ; $11223344 Shr 16 = $00001122 ; ; $00001122 ; And $000000FF ; ------------- ; $00000022 Red% = (ARGB Shr 16) And $000000FF ; $11223344 Shr 8 = $00112233 ; ; $00112233 ; And $000000FF ; ------------- ; $00000033 Green% = (ARGB Shr 8) And $000000FF ; $11223344 ; And $000000FF ; ------------- ; $00000044 Blue% = ARGB And $000000FF End Function |
||
... |
- Zuletzt bearbeitet von buja am Do, Jan 29, 2009 16:26, insgesamt einmal bearbeitet
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, du überprüfst den Button nur, wenn du gerade das Fenster öffnest (nur kurz in der Funktion New_Document).
Du musst es die ganze Zeit überprüfen, während das Fenster gerade sichtbar ist (und zwar in der Hauptschleife). In der Art von: Code: [AUSKLAPPEN] If Fenster_Neu\Visible And EG_Event_Button = ....
|
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
buja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für deine hilfe ![]() |
||
... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group