Doppelklick im Dialog abfangen, ausschalten?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Doppelklick im Dialog abfangen, ausschalten?

Beitrag von balu »

Hallo Liebe Gemeinde,

gibt es irgendwo etwas zum lesen, wie man in einem Dialog einen Mausklick auswertet, genauer gesagt den Doppelklick abfängt? Oder könnt ihr mir bei meinem Problem irgendwie behilflich sein? Mit der Forensuche hatte ich bis jetzt kein Glück.

Also folgende Situation.

Im Dialog habe ich mehrere Listboxen, und einige Schaltflächen (Commandbutton) die stellenweise sehr eng untereinander liegen. Jetzt kann es vorkommen das bei Auswahl in einer Listbox bei einem versehentlichem Doppelklick der erste Klick die Listboxauswahl übernimmt, aber durch den zweiten Klick der Commandbutton aktiviert wird. Und das kann im schlimmstem Falle der Abbruch des Dialogs bedeuten ohne das Daten übernommen wurden.

Mein Schlußfrage lautet.
Gibt es irgendwie eine Möglichkeit einen Doppelklick abzufangen, oder ihn sogar während der Laufzeit des Dialogs gänzlich auszuschalten?

Freue mich auf eure Antworten, und bedanke mich schon mal recht herzlich für eure Bemühungen.


Wünsche euch allen noch schöne Ostern :D


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von komma4 »

Kap. 13.2.7 Example 4: com.sun.star.awt.XMouseClickHandler in Andrews Makro-Dokument
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von balu »

Moin, Mahlzeit, gudn 'nabend oder was auch immer, lieber Winfried.

Erst mal danke schön für deine Antwort :).

Ich weiss jetzt nicht was für eine Version Du von Andrews-Dokument hast, aber ich hat mir eben das aktuelle "PDF English Macro Document" (March 31, 2011 12:35:25 AM EDT) gedownloaded. Und dabei ist mir aufgefallen, das entweder Du dich vertan hast, oder aber das Andrew die Kapitel neu nummeriert hat. Denn das was Du meinst ist nämlich unter: 14.3.7. und nicht unter 13.3.7 zu finden. Das aber nur zur Info.

Ich hatte mir wohl den Dialog schon mal mit xray angeschaut und dabei

Code: Alles auswählen

addMouseListener
addMouseMotionListener
gefunden, aber damit kann ich überhaupt nichts anfangen. Hab nämlich noch immer so meine Schwierigkeiten das gefundene praktisch anzuwenden.

Nun muss ich mal schaun wie ich Andrew's Beispiel in meine Datei am besten angepasst einbinden kann. Oh, je! Dat wird Luschdich :roll:


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von turtle47 »

Hallo Balu,
balu hat geschrieben: Jetzt kann es vorkommen das bei Auswahl in einer Listbox bei einem versehentlichem Doppelklick der erste Klick die Listboxauswahl übernimmt, aber durch den zweiten Klick der Commandbutton aktiviert wird. Und das kann im schlimmstem Falle der Abbruch des Dialogs bedeuten ohne das Daten übernommen wurden.
Mein Vorschlag ist es den Button zunächst zu deaktivieren und nach Auswahl in der Listbox den Button nach einer gewissen Zeit (z.B. Wait 1000) zu aktivieren.
Ausgelöst durch das Ereignis "Status geändert" der Listbox. Siehe beigefügtes Beispiel.

Viel Erfolg.

Jürgen
Dialog Listbox.ods
(10.46 KiB) 82-mal heruntergeladen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von balu »

Hallo Jürgen,

auch dir ein Danke schön für deine Antwort :).

Aber weißt Du was der Hammer ist?
Auf so eine ähnliche Idee war ich auch schon gekommen (*). Nur das ich es ein klein wenig anders angegangen bin, da es sich um mehrere Listboxen handelt wovon 3 immer zusammengehören, also so gesehen eine *Einheit* bilden. Dazu, aber nicht nur deswegen, habe ich über jeder Einheit eine Checkbox die man anklicken muss.

Und dadurch wird die unterste Schaltflächenleiste deaktiviert. Die bleibt auch so lange inaktiv, bis das die dritte Listbox aus dieser Einheit ausgewählt wurde. Und dieser Listbox habe ich bei "Status geändert" ein Makro zugeordnet, welches unter anderem nach einer kurzen Verzögerungszeit (250) die Schaltflächenleiste wieder aktiviert.

Na ja, so im Groben etwa. Es geschieht schon ein wenig mehr bei den besagten Listboxen, aber das alles jetzt zu erklären tut net not.

(*) Deshalb hab ich mal eine abgespeckte Version von der besagten Datei angehängt (ist noch alles Baustelle). Und in ihr geht es um die Seite 3, in der sich die Listboxen befinden.

Mein bisheriges Verfahren funktioniert wohl so weit, aber störent und irritierent ist es doch etwas. Deshalb wäre es schöner wenn ich den Doppelklick noch deaktiviert bekomme. Nur so weit bin ich noch nicht, leider.


Gruß
balu
Dateianhänge
Demo_Forum_0.ods
(60.76 KiB) 66-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von komma4 »

balu hat geschrieben:Ich weiss jetzt nicht was für eine Version Du von Andrews-Dokument hast
Oje - habe hier eine ODT-Version (erstellt: 2003!?), mit letztem Druckdatum 23.05.2005, 23:28:34, Andrew Pitonyak


Mit Deinem Beispieldokument kann ich hier nix anfangen: ich kann zwar einen Namen wählen, dann ein Datum... das war es dann aber auch. Nix passiert mehr.

So sieht das aus:
Screenshot des Dialogs
Screenshot des Dialogs
de48162.png (21.73 KiB) 1107 mal betrachtet
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von balu »

Hallo Winfried,
Oje - habe hier eine ODT-Version (erstellt: 2003!?), mit letztem Druckdatum 23.05.2005, 23:28:34, Andrew Pitonyak
Macht ja nix. Hatte ja das gemeinte ja dennoch gefunden. Denn wozu gibts denn eine Suchfunktion innerhalb eines Dokuments.

Mit Deinem Beispieldokument kann ich hier nix anfangen: ich kann zwar einen Namen wählen, dann ein Datum... das war es dann aber auch. Nix passiert mehr.
Danke für diese Info. Sie ist wohl leider weniger schön, aber dennoch interessant.
Habe eben die Datei unter LO 3.3.0.(Build:6), OOo 3.1.0.(Build:9399) & 3.3.0.(Build:9551) getestet und überall war alles Korrekt. Erstellt habe ich sie unter der 3.2.1.(Build:9502)

Aussehen sollte es eigentlich so.
So_soll.png
So_soll.png (21.67 KiB) 1102 mal betrachtet


Und wenn ich die Datei unter Go-oo 3.2.1.(Build:9502) öffne, dann sieht es so aus.
so_is_Go-oo.png
so_is_Go-oo.png (17.63 KiB) 1102 mal betrachtet
Also muss das wohl irgendwie an deiner Version liegen. Denn bis auf die Icons in den Buttons in der Go-oo habe ich hier nirgend funktionseinschränkungen. Sehr märkwürzik.

Was passiert denn bei dir, wenn Du die Datei lädst und dann
- Makros verwalten
- OpenOffice.org Basic
- Standard
-- Formular
--- Vorhandene Makros in: Formular => *EingabeFormular* auswählst
und dort dann etwas runter scrollst bis zu dem Eintrag

Code: Alles auswählen

	oDialog1.Model.Step = 1
und diesen auf 3 setzt? Danach noch mal erneut den Button "Eingabeformular aufrufen" anklickst.
Bei mir hier komme ich dann automatisch zu der jetzt eingestellten Seite. Ich befürchte aber fast, dass Du dort dann auch nicht viel machen kannst, wenn schon aus unerklärlichen Gründen die Seite 1 bei dir nicht funktioniert.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von komma4 »

Die "eingeschränkte Sicht" liegt an der fest eingestellten Dialoggrösse (788*489) und meiner Auflösung (1920x1080).

Setze ich die Grösse auf 1250*700 dann sehe ich auch den ganzen Dialog - inkl. Icons :wink:


Jetzt weiss ich aber noch nicht, wo Dir ein Doppelklick Probleme bereitet, damit man ihn abstellen kann... ?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Doppelklick im Dialog abfangen, ausschalten?

Beitrag von balu »

Hallo Winfried,

na das is ja nen Ding. Das durch die Änderung der Auflösung es auf einmal passt. Ich fahre hier momentan mit 1280*780 und da passt dann alles. Also sollte ich das mit der festen Dialoggröße doch wieder besser raus nehmen, da die fertige Datei unter anderem auch unter Fedora eingesetzt wird.
Habe die feste Größe aktuell rausgenommen.
Jetzt weiss ich aber noch nicht, wo Dir ein Doppelklick Probleme bereitet, damit man ihn abstellen kann... ?
Ja das kommt daher, das ich die Datei schon etwas umgeschrieben und das Layout etwas geändert hatte. Das hab ich jetzt mal eben wieder alles rausgenommen. Nun wird die unterste Buttonleiste nicht mehr ausgeblendet, die Zeit-Listboxen zeigen wieder mehr Einträge an, und der Hilfe-Button ist auch wieder unten.

Ich habe aber jetzt nicht die Abhängigkeiten der Zeit-Listboxen rausgenommen, da die aufeinander aufbauen. Und von daher muss man halt jetzt *Zeit 1* und *Zeit 2* durchklicken, bis das man zur gefährlichen *Zeit 3* kommt.

Ferner hab ich gleich auf Seite 3 eingestellt, so das man nich immer wieder dahin klicken muss.

Wenn man jetzt z.B. bei *Zeit 1* die Von-Zeit anklickt und dann auf 09:45 doppelklickt, dann wird wohl die Zeitauswahl in die Listbox eingetragen, aber gleichzeitig öffnet sich das Hilfefenster. Das ist ja noch halb so wild.

Aber anders siehts aus, wenn man bei *Zeit 3* in der breiten Listbox per Doppelklick Urlaub oder Krank auswählt. Denn dann verabschiedet sich das Eingabeformular ohne das Daten in die Datei geschrieben werden, was natürlich nicht gut ist. Oder man wählt dort bei der Bis-Zeit einen Eintrag aus der dann auf dem Button "Daten verwerfen und neu eingeben" liegt. Dann werden die Daten gelöscht, was natürlich auch nicht gut ist.


Meine Makrokenntnisse sind nun mal halt noch nicht so berauschend, und deshalb hatte ich mich bis jetzt für das Aus/Einblenden entschieden. Aber irgendwie ist das halt noch nicht das gelbe vom Ei, da das Auge diese Aktion wahr nimmt und das als störend empfindet. Meine zumindest ich.


Gruß
balu



[edit]
Sorry! Hatte doch nicht die Dialoggröße rausgenommen. Jetzt aber ja.
Dateianhänge
Demo_Forum_1b.ods
(60.52 KiB) 99-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten