Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Maus, Rechteck zeichnen[gelöst],neues Problem mit Beenden
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 20.03.2010, 14:47    Titel: Antworten mit Zitat

Edit: falsch gelesen, ich seh das Problem doch nicht...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 20.03.2010, 16:09    Titel: Antworten mit Zitat

Im Zweifelsfall kannst du in der SUB quit() noch ein paar Bildschirmausgaben einbauen, um zu sehen, ob die SUB korrekt aufgerufen bzw. die IMAGEDESTROYs abgearbeitet werden und an welchem Punkt sich das Programm aufhängt.

Das hier
Code:
LOOP UNTIL (mousex>583 AND mousex<615 AND mousey>428 AND mousey<460 AND buttons=1)

sagst du, funktioniert nicht?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 20.03.2010, 16:13    Titel: Antworten mit Zitat

Ja, das funktioniert leider nicht. Egal was nach 'Then' steht, das Programm hängt sich immer auf und ich muss rebooten traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 20.03.2010, 16:17    Titel: Antworten mit Zitat

Seit wann muss man rebooten, wenn sich ein Programm aufhängt? Schonmal was vom Taskmanager gehört?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 20.03.2010, 16:19    Titel: Antworten mit Zitat

Ich nutze Linux(Gnome), da kann man die Systemüberwachung nur über ein Menü starten oder falls eine Tastenbelegung festgelegt ist auch darüber. Da ich allerdings keine Tastenbelegung für die Systemüberwachung festgelegt habe, starte ich Gnome neu(Alt+Druck+K) zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 20.03.2010, 17:28    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
Seit wann muss man rebooten, wenn sich ein Programm aufhängt? Schonmal was vom Taskmanager gehört?


Oder dem TTY, wo man mit kill(all) noch retten kann was zu retten is.
Oder der Magischen S-Abf-taste.
Rebooten is nich lächeln
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 20.03.2010, 17:54    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Das hier
Code:
LOOP UNTIL (mousex>583 AND mousex<615 AND mousey>428 AND mousey<460 AND buttons=1)

sagst du, funktioniert nicht?

Westbeam hat Folgendes geschrieben:
Ja, das funktioniert leider nicht. Egal was nach 'Then' steht, das Programm hängt sich immer auf und ich muss rebooten traurig

Komisch, in der Zeile kommt doch gar kein THEN vor ...


Vorhin schriebst du
Westbeam hat Folgendes geschrieben:
Komisch ist nur das folgendes sich nicht aufhängt:
Code:
if (mousex>583 and mousex<615 and mousey>428 and mousey<460 and buttons=1) then draw string(100,100),"Test"

Ich bin etwas verwirrt.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 20.03.2010, 17:57    Titel: Antworten mit Zitat

@Westbeam: könntest du den kompletten Code nochmal posten ?...
Wie es scheint gibts wohl schon etliches an Veränderungen und man kann deinen Problemen nicht so ganz folgen(zumindest iche zwinkern )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 20.03.2010, 18:09    Titel: Antworten mit Zitat

Klar, hier der ganze neue Code:
Code:
Screen 18,24,,1
Dim shared as string taste,txt
dim shared as integer mousex, mousey,buttons,help,textz,f,texty
declare sub hintergrund()
declare sub quit()
declare sub button(anfangx as integer,anfangy as integer,text as string)
declare sub textview(datei as string)

Dim shared mousepic As Any Ptr
mousepic = ImageCreate(11,16)
bload "GFX/MOUSE.bmp", mousepic

Dim shared progpic As Any Ptr
progpic = ImageCreate(32,32)
bload "GFX/ICONS/PROGS.bmp", progpic

Dim shared quitpic As Any Ptr
quitpic = ImageCreate(32,32)
bload "GFX/ICONS/QUIT.bmp", quitpic

Dim shared aboutpic As Any Ptr
aboutpic = ImageCreate(32,32)
bload "GFX/ICONS/ABOUT.bmp", aboutpic

Dim shared fullpic As Any Ptr
fullpic = ImageCreate(640,480)
bload "GFX/FULL.bmp", fullpic

Function set_fbfont (ByVal x As Integer) As Integer
Dim As Integer breit2, hoch2
ScreenInfo breit2, hoch2
Select Case x
Case 8, 14, 16 'nur 8, 14 oder 16 funktioniert richtig
Width breit2\8, hoch2\x ' hier wird auto. Cls ausgeführt
Case Else
Return 0 'etwas lief schief
End Select
Return 1 'Font erfolgreich gesetzt
End Function
set_fbfont(8)

setmouse 0,0,0
do
   taste=Inkey
   getmouse mousex,mousey,,buttons
   screenlock
      hintergrund()
   screenunlock
   sleep 1
loop until taste=Chr(27)
quit()

sub hintergrund()
   cls
   Line (0,0)-(640,480),&h0054A8,BF   
   Color &hFFFFFF
   Put (25,10),progpic,Trans
   Draw String (10,45),"Programs"
   Put (583,428),quitpic,Trans
   draw string(565,463),"Quit MIW"
   put (25,80),aboutpic,Trans
   Draw String(27,115),"Help"
   if help=1 then
      put(0,0),fullpic,trans
      button(570,450,"Quit")
      textview("Test.txt")
      if (mousex>570 and mousex<570+textz and mousey>450 and mousey<464 and buttons and 1) then help=0
   end if
   if taste="q" then help=0
   Put (mousex,mousey),mousepic,Trans
   if (mousex>583 and mousex<615 and mousey>428 and mousey<460 and buttons and 1) then
      screenlock
         cls
         Line (0,0)-(640,480),&h0054A8,BF   
         sleep 300
         cls
         color &hFFFFFF
         Draw string(240,430),"Press any key to shutdown MIW"
      screenunlock
      getkey
      imagedestroy progpic
      imagedestroy quitpic
      imagedestroy aboutpic
      imagedestroy mousepic
      end
   end if
   if (mousex>25 and mousex<57 and mousey>80 and mousey<112 and buttons and 1) then help=1
End sub

sub quit()
   do
      screenlock
         cls
         Line (0,0)-(640,480),&h0054A8,BF   
         sleep 300
         cls
         color &hFFFFFF
         Draw string(240,430),"Press any key to shutdown MIW"
      screenunlock
      sleep 1
   loop
   getkey
   imagedestroy progpic
   imagedestroy quitpic
   imagedestroy aboutpic
   imagedestroy mousepic
   end
end sub

sub button(anfangx as integer,anfangy as integer,text as string)
   textz=(Len(text)*8)+4
   line (anfangx,anfangy)-(anfangx+textz,anfangy),&hFFFFFF
   line (anfangx,anfangy+1)-(anfangx-1+textz,anfangy+1),&hFFFFFF
   line (anfangx,anfangy)-(anfangx,anfangy+12),&hFFFFFF
   line (anfangx+1,anfangy)-(anfangx+1,anfangy+11),&hFFFFFF
   line (anfangx,anfangy+14)-(anfangx+textz,anfangy+14),&h545454
   line (anfangx+1,anfangy+13)-(anfangx+textz,anfangy+13),&h545454
   line (anfangx+textz,anfangy+14)-(anfangx+textz,anfangy),&h545454
   line (anfangx+textz-1,anfangy+14)-(anfangx+textz-1,anfangy+1),&h545454
   color &H000000
   draw string(anfangx+3,anfangy+3),text
   color &hFFFFFF
end sub

sub textview(datei as string)
   f=freefile
   open datei for input as #f
   color &hFFFFFF,&hbbbbbb
   do until eof(f)
      input #f,txt
      locate 5,8
      print txt
   loop
end sub
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 20.03.2010, 18:30    Titel: Antworten mit Zitat

Das Aufhängen kommt vom SCREENLOCK bzw. dem, was dazwischen alles getan wird:
Code:
DO
   taste=INKEY
   GETMOUSE mousex,mousey,,buttons
   ' hier jetzt mal kein SCREENLOCK
      hintergrund()
   ' hier jetzt mal kein SCREENUNLOCK
   SLEEP 1
LOOP UNTIL taste=CHR(27)

Wenn ich die zwei auskommentierten Zeilen herausnehme, gibt es keinen Absturz mehr.
Unter anderem schachtelst du zwei SCREENLOCK ineinander, und das ist ziemlich böse. Überhaupt ist SCREENLOCK nur für äußerst kurze Einsätze (schnell mal was zeichnen und fertig) gedacht.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 20.03.2010, 18:44    Titel: Antworten mit Zitat

Cool wenn ich jetzt noch ein 'Flip' in den Code einbringe stottert das Bild auch nicht. Vielen Dank happy

EDIT: Doch nicht, das Bild stottert doch traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz