Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 29 von 29

Thema: Boolesche variable setzen bzw. rücksetzen über einen Button

  1. #21
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    das erscheint mir unlogisch warum soll sich Aktion als mein Joystick-Button auf true Setzen wenn er zuvor false war ich will doch eine variable setzen und nicht den Button

  2. #22
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Frage

    Das Funktioniert leider noch nicht wie von mir gewünscht

    Code:
    Private Sub lblButton2_Change()
    If Not bButton(2) And Not bPressed1(2) Then
       shpHoM(0).Visible = True
    Else
       shpHoM(0).Visible = False
    End If
    bPressed1(2) = bButton(2)
    
    End Sub
    Sofort nach dem das Fom gelden ist ist shpHoM(0).visibil = True
    wenn ich dann die Taste am Joystick drücke wird shpHoM(0).visibil = False
    und bei weiterem drücken der Taste pasiert nichts mehr?

  3. #23
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.265
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Irgenwie ist dein code komisch.

    bhmButton (statische Variable, die sich den Buttonwert merkt)


    Code:
    Private Sub lblButton2_Change()
    If Not bPressed1(2)AND bButton(2) Then
      If Not bhmButton then 
         shpHoM(0).Visible = True
         bhmButton = True
      Else
         shpHoM(0).Visible = False
         bhmButton = False
      End If 
    End If
    bPressed1(2) = bButton(2)
    
    End Sub
    Bin zwar kein vb-Könner, aber hilft das?
    Man müßte statt der neuen statischen Variablen auch direkt shpHoM(0).Visible abfragen können.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #24
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hm jetzt wird beim drücken der Joystick-Taste shpHoM(0).Visible = True
    bei erneutem drücken aber nicht wieder False

  5. #25
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.265
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von borsti87 Beitrag anzeigen
    hm jetzt wird beim drücken der Joystick-Taste shpHoM(0).Visible = True
    bei erneutem drücken aber nicht wieder False
    bhmButton muß eine globale Variable sein, die im gesamten Programm Gültigkeit hat.
    Oder du versuchst, wie schon erwähnt das hier:

    Man müßte statt der neuen statischen Variablen auch direkt shpHoM(0).Visible abfragen können.
    Code:
    Private Sub lblButton2_Change()
    If Not bPressed1(2)AND bButton(2) Then
      If Not shpHoM(0).Visible then 
         shpHoM(0).Visible = True
      Else
         shpHoM(0).Visible = False
      End If 
    End If
    bPressed1(2) = bButton(2)
    
    End Sub
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #26
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich bleib dabei

    Zitat Zitat von borsti87 Beitrag anzeigen
    hm jetzt wird beim drücken der Joystick-Taste shpHoM(0).Visible = True
    bei erneutem drücken aber nicht wieder False

  7. #27
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.265
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von borsti87 Beitrag anzeigen
    ich bleib dabei
    Ich glaube, du mußt bPressed1(2) zurücksetzen, wenn der Joystickknopf nicht mehr betätigt ist. Das mußt du doch im Debugger sehen können, was diese Variable macht, oder? Ich vermute mal, sie bleibt auf True, da die Subroutine lblButton2_Change() doch sicher nach dem Loslassen des Buttons nicht mehr aufgerufen wird. Also wird beim 2. Aufruf die Variable bPressed1(2) noch immer auf True sein und das bleibt sie praktisch für immer. Die könnte man evtl. auch als lokale Variable in der Subroutine definieren, dann sollte es gehen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #28
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.797
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... was ist denn das Aufruf-Kriterium für dein Script "lblButton2_Change" ?

  9. #29
    Registriert seit
    09.11.2007
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich glaube, ich habe es verstanden. Wie wäre's mit:

    Code:
    Public Static oldValue as Bool, newValue as Bool, state as Bool
    
    Private Sub lblButton2_Change()
      'Der Wert hat sich geändert, sollen wir toggeln?
      if oldValue = newValue then
        ' Wir toggeln und merken uns das
        newValue = not newValue
        state = not state
      else
        ' Wir toggeln nicht und merken uns auch das
        oldValue = newValue
      end if
    
    End Sub
    Dein Zustand ist natürlich in "state" gespeichert.
    Ich hoffe, ich konnte Dir helfen.

Ähnliche Themen

  1. Ausgang setzen und rücksetzen
    Von Andreas k im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.07.2010, 16:39
  2. Antworten: 29
    Letzter Beitrag: 18.11.2009, 08:51
  3. Über WinCC einen Button in Excel drücken
    Von Anfängerproggi im Forum HMI
    Antworten: 3
    Letzter Beitrag: 26.07.2007, 11:17
  4. Bool-Variable setzen/rücksetzen
    Von Supervisor im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.07.2006, 12:29
  5. WinCC!! über C++ eine Variable für 8sek auf eins setzen
    Von dellamorte-dellamore im Forum HMI
    Antworten: 5
    Letzter Beitrag: 25.09.2005, 11:28

Lesezeichen

Berechtigungen

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