BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Tastatur - Abfrage, wie?
Tastatur - Abfrage, wie?
moin,
ich möchte bei einem Textfeld eines Dialogs, die Tasten abfragen.
Bei 'Return', 'Enter' und 'Esc' soll in eine andere Sub verzweigt werden.
Wie kann ich den ASCII des letzen Tastendrucks auslesen, oder gibt es was besseres?
Ich lese den Inhalt des Textfeldes in ein String ein, sehe aber kein 'Return', 'Enter' und 'Esc'!
ich möchte bei einem Textfeld eines Dialogs, die Tasten abfragen.
Bei 'Return', 'Enter' und 'Esc' soll in eine andere Sub verzweigt werden.
Wie kann ich den ASCII des letzen Tastendrucks auslesen, oder gibt es was besseres?
Ich lese den Inhalt des Textfeldes in ein String ein, sehe aber kein 'Return', 'Enter' und 'Esc'!
gruss
Re: Tastatur - Abfrage, wie?
Hallo,
ich habe hier mal was gebastelt:
Start-Routine ist:
Ich war etwas zu faul alles durchgängig zu kommentieren.
ich habe hier mal was gebastelt:
Code: Alles auswählen
Option Explicit
REM ***********************************************************************************
REM Dieses Makro zeichnet einen dynamischen Dialog ohne Dialog-Designer.
REM Auf dem Dialog wird eine Editbox platziert.
REM Bei Drücken eine der in der Editbox angezeigten Tasten:
REM Drücke: ESC | END | F2 | A
REM Wird eine MsgBox aufgerufen.
REM ***********************************************************************************
Dim oDlgModel as Object
Dim oDlg as Object
Dim oEditModel1 as Object
Dim oEdit1 as Object
Dim oEditModel2 as Object
Dim oEdit2 as Object
Public oKeyListener as Object
Sub DynamicDialog
oDlgModel=createUnoService("com.sun.star.awt.UnoControlDialogModel")
With oDlgModel
.Title="Tasten-Checker"
.Width=180
.Height=110
.BackgroundColor=RGB(140,140,140)
End With
' Was ist XRAY?
' https://wiki.openoffice.org/wiki/DE/Makro_Basic_Tutorial#X-Ray_tool
'xray oDlgModel
oDlg=createUnoService("com.sun.star.awt.UnoControlDialog")
oDlg.setModel(oDlgModel)
oEditModel1=oDlgModel.createInstance("com.sun.star.awt.UnoControlEditModel")
With oEditModel1
.Name = "txtEdit1"
.PositionX = 10
.PositionY = 20
.Width = 150
.Height = 15
.TabIndex = 0
.BackgroundColor=RGB(200,200,200)
.Text="Drücke: ESC | END | F2 | A"
.TextColor=RGB(255,0,0)
End With
oEditModel2=oDlgModel.createInstance("com.sun.star.awt.UnoControlEditModel")
With oEditModel2
.Name = "txtEdit2"
.PositionX = 10
.PositionY = 40
.Width = 150
.Height = 60
.TabIndex = 0
.BackgroundColor=RGB(220,220,220)
.Multiline=True
.Text="Hier reagiert der Listener nicht!" & chr(10) &_
"Kein Listener = Keine Msgbox!" & chr(10) &_
"ESC = Dialog wird beendet" & chr(10) &_
"F2 = keine Reaktion" & chr(10) &_
"END = Cursor springt in der Box an das Ende der Zeile" & chr(10) &_
"a = schreibt ein a in die Box"
.TextColor=RGB(0,0,255)
End With
'xray oEditModel2
' EditBoxen anzeigen
oDlgModel.insertByName("txtEdit1",oEditModel1)
oDlgModel.insertByName("txtEdit2",oEditModel2)
' Broadcaster-Service laden
oKeyListener=CreateUnoListener("KeyEvent_","com.sun.star.awt.XKeyListener")
'xray oKeyListener
' Objektzeiger auf EditBox1 setzen
oEdit1=oDlg.getControl("txtEdit1")
' Listner auf EditBox1 setzen
oEdit1.addKeyListener(oKeyListener)
oDlg.setVisible(True)
oDlg.Execute()
End Sub
REM Taste drücken ? KeyPressed
Sub KeyEvent_KeyPressed(oKeyEvent)
REM constants group Key:
REM https://www.openoffice.org/api/docs/common/ref/com/sun/star/awt/Key.html
REM und hier:
REM https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1Key.html
Select Case oKeyEvent.KeyCode
Case com.sun.star.awt.Key.ESCAPE
Msgbox "ESC" & chr(10) &_
"Key-Konstante = " & oKeyEvent.KeyCode
Case com.sun.star.awt.Key.A
Msgbox "A" & chr(10) &_
"Key-Konstante = " & oKeyEvent.KeyCode
Case com.sun.star.awt.Key.END
Msgbox "END" & chr(10) &_
"Key-Konstante = " & oKeyEvent.KeyCode
Case com.sun.star.awt.Key.F2
Msgbox "F2" & chr(10) &_
"Key-Konstante = " & oKeyEvent.KeyCode
End Select
oDlg.EndExecute()
End Sub
Sub KeyEvent_KeyReleased(oKeyEvent)
End Sub
Sub KeyEvent_disposing(oKeyEvent)
' dieser Dummy ist UNBEDINGT erforderlich, damit der Listener entladen wird.
' siehe hier: https://www.openoffice.org/api/docs/common/ref/com/sun/star/lang/XComponent.html#dispose
End Sub
Code: Alles auswählen
Sub DynamicDialog
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Tastatur - Abfrage, wie?
@ craig: Danke Dir,
das ist schon mal was. Muß es nur bei mir reinfrickeln.
Ich versuche es so: 'Kode = oKeyEvent.KeyCode' , dann werte ich 'Kode' aus
Es ist alles andere als ASCII-Code. Aber die Links von Dir haben schon mal die Zahlen schon mal gezeigt.
Was mich aber stört ist, daß die 'ESC-Taste' ohne die Abfrage alles abbricht und den Dialog schließt.
Wo findet man denn sowas? Habe vorher versucht was zu finden, wie man den KeyCode ausließt, habe aber ichts gefunden.
Ich kann auch kein english.
das ist schon mal was. Muß es nur bei mir reinfrickeln.
Ich versuche es so: 'Kode = oKeyEvent.KeyCode' , dann werte ich 'Kode' aus
Es ist alles andere als ASCII-Code. Aber die Links von Dir haben schon mal die Zahlen schon mal gezeigt.
Was mich aber stört ist, daß die 'ESC-Taste' ohne die Abfrage alles abbricht und den Dialog schließt.
Wo findet man denn sowas? Habe vorher versucht was zu finden, wie man den KeyCode ausließt, habe aber ichts gefunden.
Ich kann auch kein english.
gruss
Re: Tastatur - Abfrage, wie?
Hallo K-LOFF,
hatte eben was fertig geschrieben: Ein unachtsamer Klick und alles war weg
Nun, auf‘s Neue.
Kein englisch? Oh, je.
Es gibt Hilfmittel:
Der Google-Übersetzer, ist nicht immer korrekt, aber hilfreich.
Office Extensions. Diese Erweiterungen übersetzen ganze Writer-Dokumente.
Der Nachteil ist, dass auch Code-Passagen übersetzt werden und Beispielcodes nicht mehr zu gebrauchen sind.
Ausserdem kann man bei längeren Texten mindestens eine Tasse Kaffee oder Tee trinken
Es handelt sich hierbei um ein deutschsprachiges Writer-Dokument, welches nach einem Klick auf den Button „Installieren“, XRAY installiert. Es ist gleichzeitig die Doku zu diesem Tool.
Andrew Pitonyak's OpenOffice Macro Information
Ebenfalls ein MUSS ist Andrew‘s Werk: „OpenOffice.org Macros Explained“
Welches auf derselben Seite in einer deutschen Übersetzung von Volker Lenhardt herunterladbar ist.
OOME_3_0_deutsch.pdf
Gibt es als Writer-File und als PDF-File.
Hiernoch ein Buch von Oracle, ist zwar schon ein wenig betagt, aber hilfreich:
StarOffice TM 7 Office Suite – Basic Programmierhandbuch
Dannenhöfer‘s Seite kennst Du schon.
Im englischen AOO-Forum gibt es auch jede Menge Informationen. Oben rechts befindet sich ein Suchfeld (Search). Tippe dort einen Suchbegriff ein und Dir wird hoffentlich brauchbares angezeigt. Übersetzung sollte nun kein Problem mehr sein
Und dann geht es noch so:
Suchmaschine öffnen und einen der folgenden Suchbegriffe eingeben:
------------------------
und z.B. Liste der Unicodeblöcke
Siehe im selben Kapitel
ESC Escape = Fluchtsymbol – Die Esc-Taste auf der Tastatur
Was bedeutet ESCAPE wörtlich? → Siehe Google-Übersetzer.
hatte eben was fertig geschrieben: Ein unachtsamer Klick und alles war weg
Nun, auf‘s Neue.
Kein englisch? Oh, je.
Es gibt Hilfmittel:
Der Google-Übersetzer, ist nicht immer korrekt, aber hilfreich.
Office Extensions. Diese Erweiterungen übersetzen ganze Writer-Dokumente.
Der Nachteil ist, dass auch Code-Passagen übersetzt werden und Beispielcodes nicht mehr zu gebrauchen sind.
Ausserdem kann man bei längeren Texten mindestens eine Tasse Kaffee oder Tee trinken
- PageTranslate → LibreOffice-Plugin zum Übersetzen von Dokumenten, das die Formatierung beibehalten soll.
- Anaphraseus
Es handelt sich hierbei um ein deutschsprachiges Writer-Dokument, welches nach einem Klick auf den Button „Installieren“, XRAY installiert. Es ist gleichzeitig die Doku zu diesem Tool.
Andrew Pitonyak's OpenOffice Macro Information
Ebenfalls ein MUSS ist Andrew‘s Werk: „OpenOffice.org Macros Explained“
Welches auf derselben Seite in einer deutschen Übersetzung von Volker Lenhardt herunterladbar ist.
OOME_3_0_deutsch.pdf
Gibt es als Writer-File und als PDF-File.
Hiernoch ein Buch von Oracle, ist zwar schon ein wenig betagt, aber hilfreich:
StarOffice TM 7 Office Suite – Basic Programmierhandbuch
Dannenhöfer‘s Seite kennst Du schon.
Im englischen AOO-Forum gibt es auch jede Menge Informationen. Oben rechts befindet sich ein Suchfeld (Search). Tippe dort einen Suchbegriff ein und Dir wird hoffentlich brauchbares angezeigt. Übersetzung sollte nun kein Problem mehr sein
Und dann geht es noch so:
Suchmaschine öffnen und einen der folgenden Suchbegriffe eingeben:
- Listener site:de.openoffice.info
- Listener site:openoffice-forum.de
- Banane site:libreoffice-forum.de
- Key Code site:forum.openoffice.org
- KeyCode site:forum.openoffice.org
- Key Handler site:forum.openoffice.org
- Keyhandler site:forum.openoffice.org
- Openoffice +Key +Handler +Listener
- und sonstige vielfältige Suchbegriffskombinationen
------------------------
Lese hierzu OOME...pdf, Kapitel "7.1. ASCII- und Unicode-Werte"K-LOFF hat geschrieben:Es ist alles andere als ASCII-Code. Aber die Links von Dir haben schon mal die Zahlen schon mal gezeigt.
und z.B. Liste der Unicodeblöcke
Das ist SInn und Zweck einer ESCAPE-Sequence.K-LOFF hat geschrieben:Was mich aber stört ist, daß die 'ESC-Taste' ohne die Abfrage alles abbricht und den Dialog schließt.
Siehe im selben Kapitel
ESC Escape = Fluchtsymbol – Die Esc-Taste auf der Tastatur
Was bedeutet ESCAPE wörtlich? → Siehe Google-Übersetzer.
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Tastatur - Abfrage, wie?
Hier geht es entsprechend Deiner Frage um Keycodes. Die Zuordnung von Zeichen erfolgt später.Es ist alles andere als ASCII-Code. Aber die Links von Dir haben schon mal die Zahlen schon mal gezeigt.
Oben hattest Du Return und Enter genannt, wobei erstere die Taste im Buchstabenblock, letztere die im Ziffernblock sein kann.
Die Tasten kann man unterscheiden, beiden wird aber normalerweise dasselbe Zeichen als Ergebnis zugeordnet, wobei über die Verschiedenen Betriebssysteme CR, lf und CR+LF vorkommen und - wie Du schon gemerkt hast - das eigentliche Zeichen oft nicht im String steht.
Mit ASCII kommst Du bei einem Programm, das mit Unicode arbeitet auch nicht wirklich weit.
Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️