Toetsencombinaties met control: Ctrl-s

Om te bewaren wordt in programma’s standaard toetsencombinatie Ctrl-s gebruikt, dat kan je ook in je Gambas programma’s.

Voorbeeldsituatie:

  • een scherm FMain met een paar tekstvelden “TextLabel1”, “TextLabel2″…
  • de toetsen worden opgevangen in het aktieve scherm “FMain”.

Dat kan in Gambas2 zo:

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
  
END

PUBLIC SUB Form_KeyPress()

  IF Key.Control AND (Key.Code = Key["A"] OR Key.Code = Key["a"])
    TextLabel1.Text = "CTRL-"
    TextLabel2.Text = "Aa"
  ENDIF 

  IF Key.Control AND Key.Code = Key["z"]
    TextLabel1.Text = "CTRL-"
    TextLabel2.Text = "z"
  ENDIF 

END

Group van een control definiëren vanuit code

In de IDE kan je de group invullen bij de eigenschappen van een control, rechts in de lijst van eigenschappen.
Bovenaan heb je telkens

(Class)
(Name)
(Group)

Die group kan je gebruiken om een aktie op te vangen, bv een klik of een drop event.

Als je een object of control vanuit code gemaakt hebt, kan je niet eevoudigweg die eigenschap invullen zoals de andere eigenschappen.

FOR i = iEerste TO iLaatste
  arrayControls[i] = NEW ToggleButton(frameKnoppen)
  WITH arrayControls[i]
    .Text = Str$(i)
'    .Group="groupKnoppen"
    .Drop = TRUE
  END WITH
NEXT

Geen enkel van die “tussen haakjes” eigenschappen kan je vanuit code wijzigen; ze worden bepaald bij declaratie/initiatie.

De manier om die group toe te kennen is de declaratie/initiatie uit te breiden met de groupnaam als string in AS “groupname”

FOR i = iEerste TO iLaatste
  arrayControls[i] = NEW ToggleButton(frameKnoppen) AS "groupKnoppen"
  WITH arrayControls[i]
    .Text = Str$(i)
'    .Group="groupKnoppen"
    .Drop = TRUE
  END WITH
NEXT

Dan kan de group verder gebruikt worden om events op te vangen:

PUBLIC SUB grpKnoppen_Drop()
  LAST.Text = Drag.Data
  LAST.Value = TRUE
END