Aktuelle Zeit: 21.03.2019 02:23

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 16:18 
Offline
Benutzeravatar

Registriert: 07.12.2017 17:30
Wohnort: Frankrich
Hallo,
Leider habe ich nichts via Suche gefunden,(weiss auch nicht,wonach ich suchen müsste).
Es geht um Folgendes:

Um das('nicht gewollte') Schliessen des Window's zu verhindern,habe ich den Menu-Eintrag,sowie Schliess-Knopf und
System-Menu-Punkt mit 'Bind-Event'/'BindMenuEvent' auf eine Procedure 'umgeleitet.

;********
Procedure ende()
a=MessageRequester("Programm Exit!","Programm schliessen?",#PB_MessageRequester_YesNo|#PB_MessageRequester_Warning)
If a=#PB_MessageRequester_Yes
End
EndIf
EndProcedure
;********

Das funktioniert mit dem Menu,bei "nein" gehts halt im prg weiter
Nicht aber mit dem System-Menu, da endet das prg so oder so.
Frage:
Wie kann ich aus einer Procedure an ein Label springen,bzw wie kann ich Schliessen verhindern?
Ich habe so etwas bis jetzt nur in BlitzPlus programmiert mit 'Goto Sprünge zur Main-Loop
aber das ist wohl aus einer Procedure nicht möglich,da Diese dann nicht ordentlich verlassen würde
(Ich mochte auch kein Goto)

Danke im Vorraus
Olaf

_________________
Unsinnige Anweisungen von Seiten des Chef's lösen grundsätzlich ein "Syntax Error" bei mir aus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 16:36 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Also bei mir kann ich sowohl über X als auch über das Systemmenü das Beenden mit Nein stoppen:
Code:
EnableExplicit

Procedure ende()
  Protected a
 
  a = MessageRequester("Programm Exit!", "Programm schliessen?", #PB_MessageRequester_YesNo | #PB_MessageRequester_Warning)
  If a = #PB_MessageRequester_Yes
    End
  EndIf
 
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  BindEvent(#PB_Event_CloseWindow, @ende())
 
  Repeat
    Select WaitWindowEvent()
    EndSelect
  ForEver
EndIf

_________________
BildBildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 16:39 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
Ich wöllte auch gerade etwas in der Art posten, aber Du warst schneller. :-)

RSBasic hat geschrieben:
Also bei mir kann ich sowohl über X als auch über das Systemmenü das Beenden mit Nein stoppen:

Das funktioniert bei mir ebenfalls.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 16:54 
Offline
Benutzeravatar

Registriert: 07.12.2017 17:30
Wohnort: Frankrich
HALLO
Nun, das eigene Menu sowie das System-Menu arbeiten jetzt korrect,
aber der Schliess-Knopf nicht,das Prg wird auf jeden Fall geschlossen!

Olaf

_________________
Unsinnige Anweisungen von Seiten des Chef's lösen grundsätzlich ein "Syntax Error" bei mir aus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 17:02 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
Olafmagne hat geschrieben:
Nun, das eigene Menu sowie das System-Menu arbeiten jetzt korrect,
aber der Schliess-Knopf nicht,das Prg wird auf jeden Fall geschlossen!

Dann hast du da wohl etwas falsch programmiert. :D
Nur kennt außer dir niemand hier dein Programm.

Du kannst dein Programm soweit kürzen, dass nur noch der Teil übrig ist der das Problem demonstriert, und dann den Code hier posten (aber bitte lauffähigen Code). Dann können wir dir helfen.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 17:27 
Offline
Benutzeravatar

Registriert: 07.12.2017 17:30
Wohnort: Frankrich
Salut
hier der besagte Code.
Wie gesagt,es geht nur noch um den Schliess-Knopf
Code:
 UsePNGImageDecoder()
scrnx=1018
ExamineDesktops()
InitKeyboard()
InitSprite()
InitMouse()
;****************
Procedure Ende()
  Protected a
  a=MessageRequester("Programm Exit!","Programm schliessen?",#PB_MessageRequester_YesNo|#PB_MessageRequester_Warning)
  If a=#PB_MessageRequester_Yes
    End
  EndIf
EndProcedure
;****************
; menneu=LoadImage(#PB_Any,"C:\Users\Olaf\Documents\SilkTheme\page.png")
; menopn=LoadImage(#PB_Any,"C:\Users\Olaf\Documents\SilkTheme\folder_page.png")
; mensve=LoadImage(#PB_Any,"C:\Users\Olaf\Documents\SilkTheme\disk.png")
; mensva=LoadImage(#PB_Any,"C:\Users\Olaf\Documents\SilkTheme\page_save.png")
; menstn=LoadImage(#PB_Any,"C:\Users\Olaf\Documents\SilkTheme\wrench.png")
; mendel=LoadImage(#PB_Any,"C:\Users\Olaf\Documents\SilkTheme\folder_delete.png")
;****************
win=OpenWindow(#PB_Any,0,0,DesktopWidth(0),DesktopHeight(0),"Dungeon Game Editor",#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
men=CreateImageMenu(#PB_Any,WindowID(win));,#PB_Menu_ModernLook)
;**** 
  MenuTitle("Datei")
   MenuItem(1,"New");,ImageID(menneu))
   MenuItem(2,"Open");,ImageID(menopn))
   MenuBar()
   MenuItem(3,"Save");,ImageID(mensve))
   MenuItem(4,"Save as...");,ImageID(mensva))
   MenuItem(5,"Delete");,ImageID(mendel))
   MenuBar()
   MenuItem(6,"Settings");,ImageID(menstn))
   MenuBar()
   MenuItem(7,"Exit")
   ;***
;tool=CreateToolBar(#PB_Any,WindowID(win))
;   ToolBarImageButton(1,ImageID(menneu))
;   ToolBarImageButton(2,ImageID(menopn))
;   ToolBarImageButton(3,ImageID(mensve))
;   ToolBarSeparator()
;   ToolBarImageButton(5,ImageID(mendel))
  ;******
  BindMenuEvent(men,7,@Ende())
  BindEvent(#PB_Event_CloseWindow,@Ende())
FrameGadget(0,5,28,1015,640 ,"", #PB_Frame_Flat) 
OpenWindowedScreen(WindowID(win),7,30,1011,636)
ClearScreen(RGB(120,120,120))
FlipBuffers()
OpenWindow(twin,scrnx,71,342,613,"Sprite-Settings",#PB_Window_Tool,WindowID(win))

Repeat
   WaitWindowEvent()
 
Until WindowEvent()=#PB_Event_CloseWindow 


Olaf

_________________
Unsinnige Anweisungen von Seiten des Chef's lösen grundsätzlich ein "Syntax Error" bei mir aus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 17:32 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Es liegt daran, dass du in deinem Code 2x auf #PB_Event_CloseWindow prüfst. Einmal in deiner Ende-Prozedur und einmal ganz unten in deiner Eventschleife.
Ersetze folgende Zeile:
Code:
Until WindowEvent()=#PB_Event_CloseWindow

durch:
Code:
ForEver


Dann klappt es auch mit der Abfrage.

_________________
BildBildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Window-Schliessen abfangen
BeitragVerfasst: 06.03.2019 17:42 
Offline
Benutzeravatar

Registriert: 07.12.2017 17:30
Wohnort: Frankrich
Gott bin ich doof!!!! :oops:
Macht der Gewohnheit!
Einfach 'Standard-Mässig "Copy'n'Past"...,
Merci :allright: und 'nen schönen Tag noch

Olaf

_________________
Unsinnige Anweisungen von Seiten des Chef's lösen grundsätzlich ein "Syntax Error" bei mir aus


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye