Ganzer Thread in "all"-Ansicht

mit Tabulator zwischen den Controls wechseln?

wxBasic-Forum (deutsch)

Geschrieben von - written by MaReK am 05. April 2006 23:18:11:

Hallo zusammen smile

hier ist ein kleines Programm mit zwei 'Pseudo'-RadioBoxen und einem Button. Mit der Maus lässt es sich zwar problemlos bedienen, aber leider nicht mit der Tastatur. sauer

Daher ein paar Freagen an die Codingcracks:

  1. Was muss ich tun, um - wie in Windows üblich - mit Tabulator bzw. Shift-Tabulator vorwärts bzw. rückwärts im Kreis zwischen den Controls zu wechseln? (RadioBox1 - RadioBox2 - Ok-Button - RadioBox1 - ... etc.)

  2. Was muss ich tun, um mit den Cursortasten innerhalb einer RadioBox die Radiobuttons zu wechseln?

  3. Was muss ich tun, um die Hotkeys, d.h. die mit '&' markierten und unterstrichenen Zeichen mit Alt+unterstrichenemZeichen zu aktivieren und damit zwischen den Controls zu wechseln?

  4. Funktioniert das dann auch auch unter Linux? (hab nur WinXP, kein Linux)

Danke für Eure Hilfe

MaReK




'PseudoRadioBox
'MaReK 2006-05-04
'wxBasic alpha 2.4c (2006-02-24) unter Windows-XP (SP2)
Option Explicit

'Frame und Panel anlegen
Dim frm = New wxFrame(Nothing, -1, "PseudoRadioBox", wxPoint(-1,-1), wxSize(232,145)),
    pnl = New wxPanel(frm, -1)

'je drei Radiobuttons mit StaticBox zu 'Pseudo'-RadioBoxen kombinieren
Dim rbox1 = New wxStaticBox(pnl, -1, "RadioBox&1", wxPoint(1,5), wxSize(110,85)),
    rbtn11 = New wxRadioButton(rbox1, -1, "R&adiobutton1", wxPoint(10,20)),
    rbtn12 = New wxRadioButton(rbox1, -1, "Ra&diobutton2", wxPoint(10,40)),
    rbtn13 = New wxRadioButton(rbox1, -1, "Rad&iobutton3", wxPoint(10,60))
Dim rbox2 = New wxStaticBox(pnl, -1, "RadioBox&2", wxPoint(113,5), wxSize(110,85)),
    rbtn21 = New wxRadioButton(rbox2, -1, "Radiobut&ton1", wxPoint(10,20)),
    rbtn22 = New wxRadioButton(rbox2, -1, "Radiobutt&on2", wxPoint(10,40)),
    rbtn23 = New wxRadioButton(rbox2, -1, "Radiobutto&n3", wxPoint(10,60))
'die jeweils obersten Radiobuttons aktivieren
rbtn11.SetValue(True)
rbtn21.SetValue(True)

'und noch ein Button
Dim btn = New wxButton(pnl, -1, "OK! Es reicht ...", wxPoint(1,92), wxSize(222,25))

'... auf den Schirm, Chekov!
frm.Show(True)


'Connections
Connect(rbtn11, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, "onRbox1Select")
Connect(rbtn12, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, "onRbox1Select")
Connect(rbtn13, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, "onRbox1Select")
Connect(rbtn21, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, "onRbox2Select")
Connect(rbtn22, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, "onRbox2Select")
Connect(rbtn23, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, "onRbox2Select")
Connect(btn, wxEVT_COMMAND_BUTTON_CLICKED, "onBtnClick")

'Subs
Sub onRbox1Select(event)
Dim rbtn = 0
  If rbtn11.GetValue() Then rbtn = 1
  If rbtn12.GetValue() Then rbtn = 2
  If rbtn13.GetValue() Then rbtn = 3
  tudies(rbtn)
End Sub

Sub onRbox2Select(event)
Dim rbtn = 0
  If rbtn21.GetValue() Then rbtn = 1
  If rbtn22.GetValue() Then rbtn = 2
  If rbtn23.GetValue() Then rbtn = 3
  tudas(rbtn)
End Sub

Sub tudies(rbtn)
  wxMessagebox("Radiobutton "&rbtn&" gewählt.", "RadioBox1", wxOK, frm)
End Sub

Sub tudas(rbtn)
  wxMessagebox("Radiobutton "&rbtn&" gewählt.", "RadioBox2", wxOK, frm)
End Sub

Sub onBtnClick(event)
  frm.Show(False)
  End
End Sub







Antworten - answers:

wxBasic-Forum (deutsch)