Einer Schaltfläche eine Tastenkombination zuweisen
Moderator: Moderatoren
Einer Schaltfläche eine Tastenkombination zuweisen
Hallo und guten Tag
Ich würde gern einer Schaltfläche in einem Formular die Tastenkombination "Strg+V" zuweisen.
Leider finde ich weder hier im Forum noch in den Handbüchern eine Antwort. Nur wie man Macros starten kann.
Geht es eventuell ja gar nicht?
Würde mich über eine erklärende Antwort sehr freuen.
lokgeist
Ich würde gern einer Schaltfläche in einem Formular die Tastenkombination "Strg+V" zuweisen.
Leider finde ich weder hier im Forum noch in den Handbüchern eine Antwort. Nur wie man Macros starten kann.
Geht es eventuell ja gar nicht?
Würde mich über eine erklärende Antwort sehr freuen.
lokgeist
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo,
wenn Du der Schaltfläche einen Tabstop zuordnest, kannst Du sie, wenn du die Schlaltfläche beim "Formulardurchlauf" erreicht hast, per Eingabetaste auslösen.
Ausserdem ist es möglich die Schaltfläche als "Standardschaltfläche" zu definieren, dann wird sie von jedem Standpunkt aus per EIngabetaste ausgelöst.
HTH
Gruß R
wenn Du der Schaltfläche einen Tabstop zuordnest, kannst Du sie, wenn du die Schlaltfläche beim "Formulardurchlauf" erreicht hast, per Eingabetaste auslösen.
Ausserdem ist es möglich die Schaltfläche als "Standardschaltfläche" zu definieren, dann wird sie von jedem Standpunkt aus per EIngabetaste ausgelöst.
HTH
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo F3K Total
danke für Deine Antwort.
Leider verstehe ich das mit der Schaltfläche als Standardschaltfläche zuweisen nicht.
Mir geht es darum eine Schaltfläche einzubauen die die Tastenkombination "Strg + V" aus Windows ersetzt bzw vereinfacht um Text aus dem Zwischenspeicher / Ablage einzufügen.
Giebt es da eventuell noch eine Lösung?
Tschüß
lokgeist
danke für Deine Antwort.
Leider verstehe ich das mit der Schaltfläche als Standardschaltfläche zuweisen nicht.
Mir geht es darum eine Schaltfläche einzubauen die die Tastenkombination "Strg + V" aus Windows ersetzt bzw vereinfacht um Text aus dem Zwischenspeicher / Ablage einzufügen.
Giebt es da eventuell noch eine Lösung?
Tschüß
lokgeist
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo lokgeist,
wenn Du einer Schaltfläche ein Tastenkürzel zuweisen willst, so funktioniert das standardmäßig nur, wenn Du Dich im Formular befindest, also irgendwo in einem der Eingabefelder.
"Schalt~fläche", eingegeben in den Titel "Schaltfläche", macht aus dem "f" ein unterstrichenes "f" und deutet damit an, dass über Alt+f dieser Button angesteuert wird.
Auf die gleiche Art und Weise kannst Du auch Felder, die mit einem Beschriftungsfeld in einer Gruppe verbunden sind, über die Beschriftung ansteuern. Angenommen Du hast ein Feld "txtName", das Verbunden ist mit einem Labelfeld, in dem der Titel "Na~me" steht, dann erscheint bei gruppierten Felder der Hinweis auf das Beschriftungsfeld <Na~me>. Jetzt erreichts Du über Alt+m dieses Feld.
Im Handbuch haben wir das schlicht vergessen, weil ich das bisher nie angewandt habe. Wird in der nächsten Ausgabe sicher drin stehen.
Eine Möglichkeit, dies mit der Steuerungstaste zu erreichen, kenne ich nicht.
Gruß
Robert
wenn Du einer Schaltfläche ein Tastenkürzel zuweisen willst, so funktioniert das standardmäßig nur, wenn Du Dich im Formular befindest, also irgendwo in einem der Eingabefelder.
"Schalt~fläche", eingegeben in den Titel "Schaltfläche", macht aus dem "f" ein unterstrichenes "f" und deutet damit an, dass über Alt+f dieser Button angesteuert wird.
Auf die gleiche Art und Weise kannst Du auch Felder, die mit einem Beschriftungsfeld in einer Gruppe verbunden sind, über die Beschriftung ansteuern. Angenommen Du hast ein Feld "txtName", das Verbunden ist mit einem Labelfeld, in dem der Titel "Na~me" steht, dann erscheint bei gruppierten Felder der Hinweis auf das Beschriftungsfeld <Na~me>. Jetzt erreichts Du über Alt+m dieses Feld.
Im Handbuch haben wir das schlicht vergessen, weil ich das bisher nie angewandt habe. Wird in der nächsten Ausgabe sicher drin stehen.
Eine Möglichkeit, dies mit der Steuerungstaste zu erreichen, kenne ich nicht.
Gruß
Robert
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo lokgeist,
Gruß
Robert
Du meinst doch jetzt Base und dort ein Formular, oder? Inhalt der Zwischenablage kannst Du immer nur in ein Feld einfügen. Versuchst Du einfach Strg+V, dann landest Du nicht im Formular. Du musst also bereits im Formular sein, dann mit der Methode, die ich gerade beschrieben habe, ein Formularfeld ansteuern und dort Strg+V ausführen.lokgeist hat geschrieben: Mir geht es darum eine Schaltfläche einzubauen die die Tastenkombination "Strg + V" aus Windows ersetzt bzw vereinfacht um Text aus dem Zwischenspeicher / Ablage einzufügen.
Gruß
Robert
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo,
ich versuchs nochmal.
Ich bin in einem Formular und fülle meine Felder aus. Zum Schluß muß ich noch das Datumsfeld ausfüllen. Aber nicht das aktuelle. Da es meistens in 20 -30 aufeinanderfolgenden Datensätzen der Fall ist kopiere ich es mir und kann es dann über die Tastenkombination "Strg + V" einfügen. Also mit der Maus nur ein Tastenklick, mit beiden Händen auf Strg und Taste V beschwerlicher und umständlich. Die Maus habe ich sowiso schon in der Hand weil auch einige Auswahlen in Listenfeldern anzuklicken sind.
Ich habe mich eventuell vorher etwas ungenau ausgedrückt. Entschuldigung.
Tschüß
lokgeist
ich versuchs nochmal.
Ich bin in einem Formular und fülle meine Felder aus. Zum Schluß muß ich noch das Datumsfeld ausfüllen. Aber nicht das aktuelle. Da es meistens in 20 -30 aufeinanderfolgenden Datensätzen der Fall ist kopiere ich es mir und kann es dann über die Tastenkombination "Strg + V" einfügen. Also mit der Maus nur ein Tastenklick, mit beiden Händen auf Strg und Taste V beschwerlicher und umständlich. Die Maus habe ich sowiso schon in der Hand weil auch einige Auswahlen in Listenfeldern anzuklicken sind.
Ich habe mich eventuell vorher etwas ungenau ausgedrückt. Entschuldigung.
Tschüß
lokgeist
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo lokgeist,
das ist ein entsprechend anderer Ansatz. Da musst Du den Inhalt aus der Zwischenablage auslesen und als Datum einfügen. Für das Auslesen des Inhaltes aus der Zwischenablage habe ich hier ein Beispiel aus dem Buch "Makros in OpenOffice.org" von Thomas Krumbein liegen. Da könnte ich entsprechend anpassen, dass das auch auf ein Formular passt. Das zweite Problem ist aber, dass Du nicht den Inhalt der Zwischenablage einfach so reinkopieren kannst, weil es sich um ein Datum handelt. Da muss ein Feld mit updateDate bearbeitet werden und auch noch das richtige Datumsformat aus der Zwischenablage erhalten. Wenn Du nur den Inhalt als Text einfügst, dann wird das nicht als eine Formularänderung wahrgenommen. Ich werde das jetzt einmal durchtesten.
Gruß
Robert
das ist ein entsprechend anderer Ansatz. Da musst Du den Inhalt aus der Zwischenablage auslesen und als Datum einfügen. Für das Auslesen des Inhaltes aus der Zwischenablage habe ich hier ein Beispiel aus dem Buch "Makros in OpenOffice.org" von Thomas Krumbein liegen. Da könnte ich entsprechend anpassen, dass das auch auf ein Formular passt. Das zweite Problem ist aber, dass Du nicht den Inhalt der Zwischenablage einfach so reinkopieren kannst, weil es sich um ein Datum handelt. Da muss ein Feld mit updateDate bearbeitet werden und auch noch das richtige Datumsformat aus der Zwischenablage erhalten. Wenn Du nur den Inhalt als Text einfügst, dann wird das nicht als eine Formularänderung wahrgenommen. Ich werde das jetzt einmal durchtesten.
Gruß
Robert
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo Robert,
vielen Dank das Du dich der Sache so intensiv annimst.
Ich denke mit dem Datumsformat müßte es doch auch so passen ohne nochmals zu formatieren. Ich kopiere es ja beim erstenmal schon aus der entsprechenden Zelle und füge es dann bei den kommenden Datensätzen nur noch aus der Zwischenablage wieder rein. So hatte es bisher auch schon funktioniert. Nur eben zu umständlich.
Besten Dank wenn es doch noch klappen sollte.
Tschüß lokgeist
vielen Dank das Du dich der Sache so intensiv annimst.
Ich denke mit dem Datumsformat müßte es doch auch so passen ohne nochmals zu formatieren. Ich kopiere es ja beim erstenmal schon aus der entsprechenden Zelle und füge es dann bei den kommenden Datensätzen nur noch aus der Zwischenablage wieder rein. So hatte es bisher auch schon funktioniert. Nur eben zu umständlich.
Besten Dank wenn es doch noch klappen sollte.
Tschüß lokgeist
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo lokgeist,
gerade die Datumsgeschichte ist da etwas komplizierter als gedacht. Beim Einfügen über die Zwischenbanlage musst Du direkt das zugrundeliegende Formularfeld treffen, damit die Daten auch sicher übernommen werden.
Hier das, was ich jetzt zusammengesetzt habe:
Das Makro geht davon aus, dass Du ein Formular geöffnet hast, das (z.B. im Formularnavigator) den Namen "Formular" hat. In diesem Formular befindet sich ein Feld, das "Datum" heißt. Die Prozedur "Zwischenablage" sprichst Du mit Deinem Button an. Die Zwischenablage wird ausgelesen (Quelle: Buch von Thomas Krumbein) und entsprechend grob untersucht, ob es sich dabei um einen in Deinem Sinne verwertbaren Inhalt handeln kann. Dann wird das daraus erstellte Datum in das Feld eingefügt.
Einfach nur einen Text aus der Zwischenablage einzusetzen gelingt, wird aber nicht abgespeichert und erscheint übrigens bei jedem neuen Datensatz als Vorgabetext. Damit würde nur eine Eigenschaft des Formularfeldes vorübergehend geändert, die keine Auswirkung auf den Inhalt der dem Formular zugrundeliegenden Tabelle hat.
Gruß
Robert
gerade die Datumsgeschichte ist da etwas komplizierter als gedacht. Beim Einfügen über die Zwischenbanlage musst Du direkt das zugrundeliegende Formularfeld treffen, damit die Daten auch sicher übernommen werden.
Hier das, was ich jetzt zusammengesetzt habe:
Code: Alles auswählen
SUB Zwischenablage
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM sClipBoard AS STRING
DIM a()
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Datum")
sClipBoard = GetClipboard
IF sClipboard = "" THEN
sClipBoard = "Keine Daten in der Zwischenablage enthalten!"
msgbox sClipBoard
ELSE
a = split(sClipBoard,".")
IF Ubound(a)<> 2 THEN
sClipBoard = "Keine gültige Datumseingabe!"
msgbox sClipBoard
ELSE
unoDate = createUnoStruct("com.sun.star.util.Date")
IF len(a(0))= 1 THEN
a(0) = "0"+a(0)
END IF
unoDate.Day = a(0)
IF len(a(1))= 1 THEN
a(1) = "0"+a(1)
END IF
unoDate.Month = a(1)
IF len(a(2))= 0 THEN
unoDate.Year = Year(Date)
ELSEIF len(a(2)) = 2 THEN
unoDate.Year = "20"+a(2)
ELSE
unoDate.Year = a(2)
END IF
oFeld.BoundField.updateDate(unoDate)
END IF
END IF
END SUB
FUNCTION GetClipboard
On Error goto ErrorHandler
DIM ClipBoardHandle AS OBJECT
DIM DataObj AS OBJECT
DIM DataTypSeq() AS OBJECT
DIM sClipBoardString AS STRING
ClipBoardHandle = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
DataObj = createUnoService("com.sun.star.datatransfer.XTransferable")
DataObj = ClipBoardHandle.getContents()
DataTypSeq = DataObj.getTransferDataFlavors()
sClipBoardString = DataObj.getTransferData(DataTypSeq(0))
getClipboard = sClipBoardString
EXIT FUNCTION
ErrorHandler:
GetClipboard = ""
END FUNCTION
Einfach nur einen Text aus der Zwischenablage einzusetzen gelingt, wird aber nicht abgespeichert und erscheint übrigens bei jedem neuen Datensatz als Vorgabetext. Damit würde nur eine Eigenschaft des Formularfeldes vorübergehend geändert, die keine Auswirkung auf den Inhalt der dem Formular zugrundeliegenden Tabelle hat.
Gruß
Robert
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo Robert,
vielen Dank für Deine große und schnelle Mühe.
Ich schaffe es aber nicht da durchzusteigen. Mit Macros habe ich noch nie etwas zu tun gehabt.
Schade das es so kompliziert ist wo Du Dir doch so Mühe gemacht hast. Entschuldige bitte das ich es nicht nutzen kann.
Tschüß lokgeist
vielen Dank für Deine große und schnelle Mühe.
Ich schaffe es aber nicht da durchzusteigen. Mit Macros habe ich noch nie etwas zu tun gehabt.
Schade das es so kompliziert ist wo Du Dir doch so Mühe gemacht hast. Entschuldige bitte das ich es nicht nutzen kann.
Tschüß lokgeist
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Das ist zu schade.lokgeist hat geschrieben:... wo Du Dir doch so Mühe gemacht hast. Entschuldige bitte das ich es nicht nutzen kann.
Roberts Makro funktioniert hervorragend, siehe Beispiel anbei.
Gruß R
- Dateianhänge
-
- Date_from_clipboard.odb
- (12.91 KiB) 81-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Einer Schaltfläche eine Tastenkombination zuweisen
Hallo Robert und F3K Total,
das ist ja riesig.
So vorgefertigt bekomme ich es bestimmt in meinem Formular auch zum laufen.
Danke
Danke
Danke
Vielen lieben Dank
und Tschüß
lokgeist
das ist ja riesig.
So vorgefertigt bekomme ich es bestimmt in meinem Formular auch zum laufen.




Vielen lieben Dank
und Tschüß
lokgeist