Ergebnis 1 bis 4 von 4

Thema: Timer und etwas mehr in PB

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    waitwindowevent() nur einmalig in einer solchen Schleife. Ich würde hier entweder mit Select - case oder Elseif arbeiten. Nebenher gesagt, waitwindowevent() gehört auch immer ein eine Hauptschleife, damit es sich ständig wiederholt. Ein Event ist auch schon das bloße bewegen der Maus, und damit danach das Programm nicht ausgeht, muss das in einer Schleife stehen. Ach ja, noch ganz wichtig, Der Rückgabewert von WaitwindowEvent() gibt den Eventwert als Long Variable zurück, du solltest also nicht per If waitwindowevent() arbeiten sondern das Event in eine Variable sichern um es später weiternutzen zu können:

    Code:
    #false = 0
    #true = 1
    
    
    OpenWindow(0, 0,0,200,200, #PB_Window_Systemmenu, "test")
    
    ;... Die ganzen Dinge wie Gadgets und Co.
    
    ; Folgendes wird die Hauptschleife aus der u.A. Prozeduren aufgerufen werden
    
    
    Repeat
    
      eventID.l = WaitWindowEvent()
      
      Select eventID
    
        Case #PB_Event_Closewindow
          quit.b = #true
    
        Case #PB_Event_Gadget
          Select EventMenuID()
            
            Case #menueintrag_1
    
            Case #menueintrag_2
            
            Case #menueintrag_3
    
    ;       usw...
    
    
        Case #PB_Event_Gadget
          Select EventGadgetID()
    
            Case #gadget1
    
            Case #gadget2
            
            Case #gadget3
            
    ;       usw...
    
          EndSelect
      EndSelect
    Until quit = #true
    Unter die Case-Anweisungen kommt natürlich immer der Code welcher abgearbeitet werden soll, wenn die der Case-Fall korrekt ist.

    Wie du siehst ist das so um ein vielfaches übersichtlicher, alle Sparten wie Menüevents, Gadgetevent und sonstiges kann man so leicht trennen. Wurde erst einmal ein Menüevent erkannt, so wir mittels eines weiteren Select Zweiges abgefragt, welches der vorhandenen Menüs gedrückt ausgewählt wurde. Die Liste ist nun beliebig zu erweitern bzw. kann das Muster so übernommen werden für deine Anwendungen.

    Alternativ das, von mir angesprochene System per Elseif:

    Code:
    #false = 0
    #true = 1
    
    
    OpenWindow(0, 0,0,200,200, #PB_Window_Systemmenu, "test")
    
    ;... Die ganzen Dinge wie Gadgets und Co.
    
    ; Folgendes wird die Hauptschleife aus der u.A. Prozeduren aufgerufen werden
    
    
    Repeat
    
      eventID.l = WaitWindowEvent()
      
      If eventID = #PB_Event_Closewindow
          quit.b = #true
    
    
      ElseIf eventID = #PB_Event_Gadget
        If EventMenuID() = #menueintrag_1
        
        ElseIf EventMenuID() = #menueintrag_2
    
        ElseIf EventMenuID() = #menueintrag_3
    
        EndIf
    
    
      ElseIf eventID = #PB_Event_Gadget
        If EventGadgetID() = #gadget1
    
        ElseIf EventGadgetID() = #gadget2
        
        ElseIf EventGadgetID() = #gadget3
    
        EndIf
      EndIf
    Until quit = #true
    Unter die IF - Elseif folgen dann die Codeteile welche bei erfolgreichem Drücken des Buttons ausgeführt werden sollen, versteht sich.

    Auch recht übersichtlich, allerdings muss hier die Abfrage immer neu gestellt werden, beim Select müssen nur die unterschiedlichen Möglichkeiten aufgelistet werden. (Im Vergleich war die Select-Methode etwas langsamer, aber für Fensteranwendungen reicht es laaaange aus.)

    Zitat Zitat
    Und noch ne Frage, gibt es ne Möglichkeit direkt die BIOS Zeit abzufragen?
    Reicht die normale Systemzeit nicht aus? Wenn nicht, es gab im PB Forum kürzlich sogar einen Code, um die genaue Uhrzeit per Internet aufzurufen. Wenn es also 100% sein soll, dann diese Methode. Ich denke aber, die Windows-Systemzeit sollte reichen. Aber die Möglichkeit auf das Bios zuzugreifen müsst auch gehen, hab zumindest mal davon gelesen im PB Forum.
    (Übrigends, gerade gestern ist ein neues PureBasic Update 3.90 für Windows erschienen, dies bietet weitere neue Methoden und Funktionien die man sich mal ansehen sollte)

    http://robsite.de/php/pureboard/view...t=4274&start=0

    Geändert von Ynnus (14.04.2004 um 07:49 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •