B&R: Steuerelemente ausblenden

fighter

Level-1
Beiträge
29
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Wie ist es möglich im AS Steuerungselemente (Butons usw.) zur Laufzeit auszublenden?
Mann kann ja einen Status Datenpoint setzten jedoch wie verwendet man diesen?
In der Hilfe wird immer von Bits gesprochen die man setzen muss, jedoch man kann ja nur einen Interger anhängen.

mfg
 
Hallo fighter,
meines Wissens kannst du ein UINT anschliessen (16 Bits). In der Hilfe findest du die Bedeutung der einzelnen Bits. Das ein/ausblenden von Steuerelementen steuert, glaub ich, Bit 1

Code:
Status=Status | 2;  /* setzen des 2. Bits in Status */
Status=Status & ~2; /* löschen des 2. Bits in Status */

siehe auch hier

Grüsse, harrylask
 
hi,
danke für die Antwort.
Jedoch klappt es nicht wenn ich es so eingebe:

Status=Status | 2; /* setzen des 2. Bits in Status */
Status=Status & ~2; /* löschen des 2. Bits in Status */
in der Hilfe habe ich auch nur die Bedeutung der Bits gefunden und nicht wie man sie setzt.

mfg
 
Hast du die Variable mit dem Status Datapoint des Steuerelements verknüpft? Ist auch gewiss Bit 1 zum Ein/Ausblenden zuständig? Ich kann es im Moment nicht verifizieren, hab kein AS zur Hand.

is spät ... bin müde ... ich hau mich in die Horizontale, bis morgen
 
Hallo fighter,
falls du mit Bitmasken noch nichts zu tun hattest solltest du dich alsbald damit auseinandersetzen.
PS: Die Sichtbarkeit eines Steuerelements wird mit Bit 0 gesteuert.

Ungetestet!

Code:
_LOCAL UINT State;   /* Status Datapoint */
_LOCAL BOOL Visible; /* Steuert die Sichtbarkeit */

int IsVisible(UINT State)
{
  return (State & 1) != 0;
}

_CYCLIC void cyclic(void)
{
  /* Diese paar Zeilen setzen/löschen Bit 0, alle anderen bleiben unverändert */
  if (Visible)
    State|=1;      /* Sichtbar -> Bit 0 setzen */
  else
    State&=~1;     /* Verstecken -> Bit 0 löschen */

  /* Irgendeine Aktion starten wenn SE sichtbar */
  if (IsVisible(State))
  {
    ...
  }
}

Willst du zum Testen einzelne Bits setzen/löschen schalte im Watchfenster auf binäre Darstellung (Button #2), damit gehts einfacher.

Grüsse, harrylask
 
Zurück
Oben