XbpComboBox Bedienung
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
XbpComboBox Bedienung
Hallo,
mir geht es diesmal um die Bedienung einer XbpComboBox, nicht um die Konfiguration o.ä.
Unterstellen wir, die XbpComboBox hat die Einträge
- drei
- eins
- zwei
(streng alphabetisch). Wenn ich nun im SLE-Teil "zw" eintippe, wird in der Listbox auf den dritten Eintrag positioniert. Wenn ich den auswählen will, muss ich die Maus verwenden - per Tastatur geht es nicht. Wenn ich z.B. Cursor-unten drücke, wechselt der Focus in der Listbox auf den ersten Eintrag.
Kennt einer von Euch einen Weg, mittels Tastatur in die Listbox zu wechseln, um dort den entsprechenden Eintrag auszuwählen?
Es geht hier um die Erfassung vieler Daten, und jedesmal die Hand von der Tastatur zu nehmen, um mit der Maus zu klicken (oder den Suchbegriff komplett einzutippen) kostet zu viel Zeit, darum suche ich nach einer reinen Tastaturlösung.
mir geht es diesmal um die Bedienung einer XbpComboBox, nicht um die Konfiguration o.ä.
Unterstellen wir, die XbpComboBox hat die Einträge
- drei
- eins
- zwei
(streng alphabetisch). Wenn ich nun im SLE-Teil "zw" eintippe, wird in der Listbox auf den dritten Eintrag positioniert. Wenn ich den auswählen will, muss ich die Maus verwenden - per Tastatur geht es nicht. Wenn ich z.B. Cursor-unten drücke, wechselt der Focus in der Listbox auf den ersten Eintrag.
Kennt einer von Euch einen Weg, mittels Tastatur in die Listbox zu wechseln, um dort den entsprechenden Eintrag auszuwählen?
Es geht hier um die Erfassung vieler Daten, und jedesmal die Hand von der Tastatur zu nehmen, um mit der Maus zu klicken (oder den Suchbegriff komplett einzutippen) kostet zu viel Zeit, darum suche ich nach einer reinen Tastaturlösung.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: XbpComboBox Bedienung
Hallo, Jimmy -
es geht mir darum, dass das XbpSLE-Element den Fokus hat. Wenn das der Fall ist, löscht F4 das Eingabefeld.
es geht mir darum, dass das XbpSLE-Element den Fokus hat. Wenn das der Fall ist, löscht F4 das Eingabefeld.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpComboBox Bedienung
Hallo Georg,
wenn ich das richtig in Erinnerung habe kannst Du nach Eingabe des (Anfangs des) Suchbgriffes im SLE-Bereich der ComboBox mit den Cursor-Tasten in dem Listbox-Bereich der Combobox wandern. Und dann auch mit Enter auswählen. Als ob die Pfeiltaste automatisch den Fokus darauf legt.
Jan
wenn ich das richtig in Erinnerung habe kannst Du nach Eingabe des (Anfangs des) Suchbgriffes im SLE-Bereich der ComboBox mit den Cursor-Tasten in dem Listbox-Bereich der Combobox wandern. Und dann auch mit Enter auswählen. Als ob die Pfeiltaste automatisch den Fokus darauf legt.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: XbpComboBox Bedienung
Hallo, Jan -
da ich mit einer abgeleiteten Klasse arbeite, kann sich da ja was verstecken. Also habe ich mal den Code aus der Dokumentation kopiert und eine XBPCOMBOBOX_SIMPLE draus gemacht: oben ein SLE, unten eine ListBox.
Wenn in im SLE etwas eingebe, und dann Cursor-unten drücke, geht der Focus auf die ListBox, aber es wird das erste Element der Liste angesprungen, und meine Eingabe ist weg, sie wird mit dem Wert des ersten Eintrags in der Liste überschrieben.
Ich habe in der Zwischenzeit auch mit dem :keyboard-Callback experimentiert, aber wenn das Event kommt, ist der Focus bereits auf dem ListBox-Teil, und das erste Element in der Liste ausgewählt.
(Gleiches Verhalten wie bei meiner Klasse.)
da ich mit einer abgeleiteten Klasse arbeite, kann sich da ja was verstecken. Also habe ich mal den Code aus der Dokumentation kopiert und eine XBPCOMBOBOX_SIMPLE draus gemacht: oben ein SLE, unten eine ListBox.
Wenn in im SLE etwas eingebe, und dann Cursor-unten drücke, geht der Focus auf die ListBox, aber es wird das erste Element der Liste angesprungen, und meine Eingabe ist weg, sie wird mit dem Wert des ersten Eintrags in der Liste überschrieben.
Ich habe in der Zwischenzeit auch mit dem :keyboard-Callback experimentiert, aber wenn das Event kommt, ist der Focus bereits auf dem ListBox-Teil, und das erste Element in der Liste ausgewählt.
(Gleiches Verhalten wie bei meiner Klasse.)
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: XbpComboBox Bedienung
Ich weiß jetzt nicht wie bei Xbase++ die ComboBox technisch realisiert ist.
Aber in vielen Windows-Programmen öffnet in einer ComboBox die F4-Taste die Liste.
Zb. in Word, Excel, NotePad++ und auch in der Xbase++-WB.
Und überall ist es so, dass bei einer Vorauswahl im SLE-Control/TextBox nach dem Betätigen von F4 auf die Vorauswahl fokussiert wird.
Ich frage mich deshalb, warum bei dir F4 den Inhalt löscht und nicht die Liste der ComboBox öffnet
Aber in vielen Windows-Programmen öffnet in einer ComboBox die F4-Taste die Liste.
Zb. in Word, Excel, NotePad++ und auch in der Xbase++-WB.
Und überall ist es so, dass bei einer Vorauswahl im SLE-Control/TextBox nach dem Betätigen von F4 auf die Vorauswahl fokussiert wird.
Ich frage mich deshalb, warum bei dir F4 den Inhalt löscht und nicht die Liste der ComboBox öffnet
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: XbpComboBox Bedienung
Hallo, Hans-Peter -
ich verwende die XbpComboBox so, dass die Liste bereits geöffnet ist. Das könnte der Grund sein, warum F4 nicht den gewünschten Effekt hat.
ich verwende die XbpComboBox so, dass die Liste bereits geöffnet ist. Das könnte der Grund sein, warum F4 nicht den gewünschten Effekt hat.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: XbpComboBox Bedienung
Guten Morgen Georg !
Das heißt, mit F4 auf und mit dem nächsten F4 wieder zu.
Ich kann mir nicht vorstellen, dass Alaska das Verhalten anders als alle Anderen umsetzt.
Bei allen Beispielen bzw. Tests, wird beim erneuten Betätigen von F4 die Liste der ComboBox wieder geschlossen.ich verwende die XbpComboBox so, dass die Liste bereits geöffnet ist. Das könnte der Grund sein, warum F4 nicht den gewünschten Effekt hat.
Das heißt, mit F4 auf und mit dem nächsten F4 wieder zu.
Ich kann mir nicht vorstellen, dass Alaska das Verhalten anders als alle Anderen umsetzt.
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: XbpComboBox Bedienung
Hallo, Hans-Peter -
also, ich denke, dass Alaska die XbpComboBox so darstellt, wie es unter Windows geht.
Allerdings gibt es da die Instanzvariable :type, die über das Aussehen entscheidet. Aus technischen Gründen habe ich die XBPCOMBOBOX_SIMPLE Variante gewählt, bei der die XbpComboBox ausgeklappt angezeigt wird und auch nicht eingeklappt werden kann.
Auf diese Variante beziehe ich mich, und dafür suche ich (falls es existiert) eine Lösung zur Tastaturbedienung. Und zwar, um zu dem korrespondierenden Eintrag in der Listbox zu springen.
Ich hänge gleich mal das Beispiel aus der Dokumentation an, dann kannst Du das ja mal überprüfen. Wobei, wie schon geschrieben, ich es so angepasst habe, dass eine SIMPLE Combobox verwendet wird.
also, ich denke, dass Alaska die XbpComboBox so darstellt, wie es unter Windows geht.
Allerdings gibt es da die Instanzvariable :type, die über das Aussehen entscheidet. Aus technischen Gründen habe ich die XBPCOMBOBOX_SIMPLE Variante gewählt, bei der die XbpComboBox ausgeklappt angezeigt wird und auch nicht eingeklappt werden kann.
Auf diese Variante beziehe ich mich, und dafür suche ich (falls es existiert) eine Lösung zur Tastaturbedienung. Und zwar, um zu dem korrespondierenden Eintrag in der Listbox zu springen.
Ich hänge gleich mal das Beispiel aus der Dokumentation an, dann kannst Du das ja mal überprüfen. Wobei, wie schon geschrieben, ich es so angepasst habe, dass eine SIMPLE Combobox verwendet wird.
- Dateianhänge
-
- Test.zip
- (958 Bytes) 141-mal heruntergeladen
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: XbpComboBox Bedienung
Guten Abend,
also ich habe jetzt eine programmtechnische Lösung gefunden, wenn sie aus meiner Sicht auch nicht so elegant ist, wie ich mir das wünsche:
Da beim Drücken von Cursor-runter der :editbuffer() geleert wird, speichere ich bei jedem Durchlauf den aktuellen Inhalt, um darauf zurück zu greifen, wenn die entsprechende Taste erkannt wird.
Theoretisch könnte ich die Items der XbpComboBox auch etwas optimierter durchsuchen (sie sind alphabetisch sortiert), aber das geht von der Geschwindigkeit aktuell.
Ärgerlich ist halt eben, dass das Eingabefeld Daten enthält, leer ist, und dann wieder die gleichen Daten enthält, aber es erfüllt seinen Zweck.
Trotzdem frage ich mich, ob es dafür nicht doch eine Tastenkombination gibt?
also ich habe jetzt eine programmtechnische Lösung gefunden, wenn sie aus meiner Sicht auch nicht so elegant ist, wie ich mir das wünsche:
Code: Alles auswählen
// Definition der XbpComboBox:
oXbp:keyboard := {|nKey, uNIL, self| CheckKeyEntry(nKey, self)}
STATIC FUNCTION CheckKeyEntry(nKey, oList)
Local cToken
Local nLen, nI
Static cOldValue
IF nKey <> xbeK_DOWN
cOldValue := Trim(oList:XbpSLE:editBuffer())
RETU(oList)
ENDIF
oList:XbpSLE:setData(cOldValue)
nLen := oList:numItems()
FOR nI := 1 TO nLen
cToken := oList:getItem(nI)
IF cToken = cOldValue // auch ein Teiltreffer trifft
oList:setData(nI)
RETU(oList)
ENDIF
NEXT
RETURN (oList)
Theoretisch könnte ich die Items der XbpComboBox auch etwas optimierter durchsuchen (sie sind alphabetisch sortiert), aber das geht von der Geschwindigkeit aktuell.
Ärgerlich ist halt eben, dass das Eingabefeld Daten enthält, leer ist, und dann wieder die gleichen Daten enthält, aber es erfüllt seinen Zweck.
Trotzdem frage ich mich, ob es dafür nicht doch eine Tastenkombination gibt?
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.