Hallo zusammen,
gibt es einen Listener, mit dem ich beispielsweise den Click mit der linken Maus-Taste auf das Kopier-Icon in der Symbolleiste abfangen und durch eine andere Aktion ersetzen kann?
Oder wenn's ne andere Lösung dafür gibt, wie sieht die aus?
Vielen Dank und viele Grüße
Lupo
Listener für Maus-Click auf Kopier-Icon in Symbolleiste?
Moderator: Moderatoren
Re: Listener für Maus-Click auf Kopier-Icon in Symbolleiste?
Hey Lupo,
na ja, du kannst natürlich einen Maus-Klick Listener registrieren - auf den Frame, auf die Symbolleiste - vielleicht sogar auf das spezielle Symbol - nur dadurch änderst du ja nicht die jetzt schon zugewiesene Aktion. Das Registrieren eines Listeners ersetzt ja nicht die internen Listener - sich wirken jetzt nur zusätzlich!
Was willst du denn endgültig erreichen? Wäre es nicht einfacher, das Symbol komplet aus der Sysmbolleiste zu entfernen und - eventuell - ein eigenen symbol dort einzufügen? Wenn ich dich recht verstehe, soll der Benutzer doch "kopieren in Zwischenablage" nicht mehr ausführen können? Was aber ist mit der Tastaturkombination "Ctrl + C", die bewirkt das gleiche - oder dem Menübefehl "Kopieren" (im Kontextmenü und in der Bearbeiten-Leiste?
Gruss
Thomas
na ja, du kannst natürlich einen Maus-Klick Listener registrieren - auf den Frame, auf die Symbolleiste - vielleicht sogar auf das spezielle Symbol - nur dadurch änderst du ja nicht die jetzt schon zugewiesene Aktion. Das Registrieren eines Listeners ersetzt ja nicht die internen Listener - sich wirken jetzt nur zusätzlich!
Was willst du denn endgültig erreichen? Wäre es nicht einfacher, das Symbol komplet aus der Sysmbolleiste zu entfernen und - eventuell - ein eigenen symbol dort einzufügen? Wenn ich dich recht verstehe, soll der Benutzer doch "kopieren in Zwischenablage" nicht mehr ausführen können? Was aber ist mit der Tastaturkombination "Ctrl + C", die bewirkt das gleiche - oder dem Menübefehl "Kopieren" (im Kontextmenü und in der Bearbeiten-Leiste?
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Listener für Maus-Click auf Kopier-Icon in Symbolleiste?
Hi Thomas,
du hast richtig erkannt, dass der User den Kopierbutton nicht mehr nutzen soll.
Wenn ich den aber nun aus der Symbolleiste rausnehme, ist er doch auch bei allen anderen Dokumenten nicht mehr vorhanden, oder?
Dann würde sich auch das Problem stellen, dass ein User, dem ich das Calc-Dokument maile, bei sich den Kopierbutton nutzen kann.
Ich möchte verhindern, dass jemand beispielsweise Daten und Formate aus Spalte C in Spalte D kopieren kann.
Innerhalb der einzelnen Spalten soll aber ein Kopieren möglich sein, also immer spaltenkonform; bespielsweise soll das Kopieren von CellRange C25:D30 nach C50:D55 möglich sein.
Die Tastenkombination kann ich mit einem KeyHandler abfangen, das habe ich bereits programmiert.
Kannst du mir eine Lösung anbieten? Ich hatte eben die Idee, den Kopierauftrag wie mit dem KeyHandler mit einem MausListener oder -Handler abzufangen und erst einmal auf seine Zulässigkeit zu prüfen.
Vielen Dank für deine Hilfe
Lupo
du hast richtig erkannt, dass der User den Kopierbutton nicht mehr nutzen soll.
Wenn ich den aber nun aus der Symbolleiste rausnehme, ist er doch auch bei allen anderen Dokumenten nicht mehr vorhanden, oder?
Dann würde sich auch das Problem stellen, dass ein User, dem ich das Calc-Dokument maile, bei sich den Kopierbutton nutzen kann.
Ich möchte verhindern, dass jemand beispielsweise Daten und Formate aus Spalte C in Spalte D kopieren kann.
Innerhalb der einzelnen Spalten soll aber ein Kopieren möglich sein, also immer spaltenkonform; bespielsweise soll das Kopieren von CellRange C25:D30 nach C50:D55 möglich sein.
Die Tastenkombination kann ich mit einem KeyHandler abfangen, das habe ich bereits programmiert.
Kannst du mir eine Lösung anbieten? Ich hatte eben die Idee, den Kopierauftrag wie mit dem KeyHandler mit einem MausListener oder -Handler abzufangen und erst einmal auf seine Zulässigkeit zu prüfen.
Vielen Dank für deine Hilfe
Lupo
Re: Listener für Maus-Click auf Kopier-Icon in Symbolleiste?
Hey Lupo,
nein, eine Lösung habe ich auch nicht.
Du könntest vielleicht einen Maus-Listener registrieren und jeweils beim Auslösen (Click) die aktuelle Cursorposition prüfen und den Inhalt der Zwischenablage. Und aus der Kombination dann auf den Kopiervorgang schliessen?
Die andere Varainte wäre die Position des Mauszeigers auszulesen und dann auf die passende Schaltfläche zu schliessen - hat aber das Risiko, dass die Symbolleiste geändert werden kann...
Ich denke, du kannst den Mauslistener auch direkt auf die Sysmbolleiste registrieren - aber dennoch bleibt das Risiko der Verschiebung der Icons.
Sorry, keine echte Lösung.
Gruss
Thomas
PS: Wie wäre es mit einer anderen Logik? Schützen des Tabellendokumentes, erlaubte Funktionen per Makro nachprogrammieren und über Buttons realisieren?
nein, eine Lösung habe ich auch nicht.
Du könntest vielleicht einen Maus-Listener registrieren und jeweils beim Auslösen (Click) die aktuelle Cursorposition prüfen und den Inhalt der Zwischenablage. Und aus der Kombination dann auf den Kopiervorgang schliessen?
Die andere Varainte wäre die Position des Mauszeigers auszulesen und dann auf die passende Schaltfläche zu schliessen - hat aber das Risiko, dass die Symbolleiste geändert werden kann...
Ich denke, du kannst den Mauslistener auch direkt auf die Sysmbolleiste registrieren - aber dennoch bleibt das Risiko der Verschiebung der Icons.
Sorry, keine echte Lösung.
Gruss
Thomas
PS: Wie wäre es mit einer anderen Logik? Schützen des Tabellendokumentes, erlaubte Funktionen per Makro nachprogrammieren und über Buttons realisieren?
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Listener für Maus-Click auf Kopier-Icon in Symbolleiste?
Hallo Thomas,
vielen Dank für deine Ideen.
Ich war auch schon auf den Gedanken gekommen, die Zwischenablage mit der Cursorposition abzugleichen, ich glaube aber, das dürfte ziemlich kompliziert werden.
Ich habe in meinem Programm einen "eigenen Cursor programmiert". Über einen KeyHandler und den SelectionChangeListener ändere ich jeweils die Hintergrundfarbe der aktuellen Zelle in ein zartes Gelb und setze sie wieder auf "durchsichtig" zurück, wenn die Zelle verlassen wird.
Das Schützen des Dokumentes führt hierbei aber zu Fehlermeldungen und ich habe bisher noch nicht rausgefunden, wie ich den Schutz konfigurieren kann, so dass es zu keinen Fehlermeldungen mehr kommt.
Ich schreibe das Programm zeitgleich in MS-Excel VB. Da ist bei gleicher Vorgehensweise gar kein Kopieren über die Symbolleiste mehr möglich, was ja eigentlich schlechter ist. Da habe ich dann auch eigene Kopier- und Einfügebuttons programmiert. Ich hatte die Hoffnung, da das Kopieren über den normalen Button funktioniert, dass es in OOBasic einfacher wäre.
Grundsätzlich muss ich aber sagen, dass mir OOBasic von den Funktionen und Möglichkeiten her (zumindest die, die ich bisher kenne) besser gefällt.
Auch wenn der Programmcode in VB manchmal etwas kürzer gestaltet werden kann, weil der Zugriff auf die Excel-Tabelle einfacher ist.
Vielen Dank nochmal und viele Grüße
Lupo
vielen Dank für deine Ideen.
Ich war auch schon auf den Gedanken gekommen, die Zwischenablage mit der Cursorposition abzugleichen, ich glaube aber, das dürfte ziemlich kompliziert werden.
Ich habe in meinem Programm einen "eigenen Cursor programmiert". Über einen KeyHandler und den SelectionChangeListener ändere ich jeweils die Hintergrundfarbe der aktuellen Zelle in ein zartes Gelb und setze sie wieder auf "durchsichtig" zurück, wenn die Zelle verlassen wird.
Das Schützen des Dokumentes führt hierbei aber zu Fehlermeldungen und ich habe bisher noch nicht rausgefunden, wie ich den Schutz konfigurieren kann, so dass es zu keinen Fehlermeldungen mehr kommt.
Ich schreibe das Programm zeitgleich in MS-Excel VB. Da ist bei gleicher Vorgehensweise gar kein Kopieren über die Symbolleiste mehr möglich, was ja eigentlich schlechter ist. Da habe ich dann auch eigene Kopier- und Einfügebuttons programmiert. Ich hatte die Hoffnung, da das Kopieren über den normalen Button funktioniert, dass es in OOBasic einfacher wäre.
Grundsätzlich muss ich aber sagen, dass mir OOBasic von den Funktionen und Möglichkeiten her (zumindest die, die ich bisher kenne) besser gefällt.
Auch wenn der Programmcode in VB manchmal etwas kürzer gestaltet werden kann, weil der Zugriff auf die Excel-Tabelle einfacher ist.
Vielen Dank nochmal und viele Grüße
Lupo
Re: Listener für Maus-Click auf Kopier-Icon in Symbolleiste?
Hey Lupo,

Gruss
Thomas
Gar nicht. Du musst den Schutz per Makro aufheben, die Farbe ändern und dann wieder schützen. Dann sollte keine Fehlermeldung auftauchen. Und solange das Makro läuft, kann der Benutzer eh nichts machen - in der UI. Die ist blockiertDas Schützen des Dokumentes führt hierbei aber zu Fehlermeldungen und ich habe bisher noch nicht rausgefunden, wie ich den Schutz konfigurieren kann, so dass es zu keinen Fehlermeldungen mehr kommt.

Kann ich bestätigen - geht mir genauso. Manches geht in VBA schneller (vielleicht auch einfacher), aber vielseitiger (und für mich logischer) ist OOoGrundsätzlich muss ich aber sagen, dass mir OOBasic von den Funktionen und Möglichkeiten her ... besser gefällt.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic