BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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. 🤗

[gelöst] Schaltfläche tut nicht...

Alles zur Programmierung im LibreOffice.
Antworten
fbarc
Beiträge: 33
Registriert: Mi 8. Dez 2021, 02:47

[gelöst] Schaltfläche tut nicht...

Beitrag von fbarc » Sa 13. Aug 2022, 03:04

Hallo zusammen,

Ich habe 2 Schaltflächen.

Eine normale zum einfachen klicken...
eine Umschaltfläche - um etwas ein/auszuschalten

Beiden Schaltflächen habe ich das gleiche Makro beim Mausklick gegeben "btnGedrueckt"

Code: Alles auswählen

Sub btnGedrueckt ( event )

	Dim oChkBox as Object

	oChkBox					=	Event.Source.Model

		
	if oChkBox.State = 1 then
		Text="an"
	else
		Text="aus"
	End If

'	msgbox (Text)
'	msgbox "Text"

End Sub
Das funktioniert soweit ganz gut.

Doch sobald ich z.B. eine Msgbox oder ein Print ausführe, klemmt die Umschaltfläche.
Der Status bleibt auf 0... nach ein paar Klicks geht er auf 1 und dann nicht mehr zurück.

Die Msgbox muß noch nichteinmal etwas mit dem Event zu tun haben.

Anderer Code dazuschreiben funktioniert.

Ist das ein Programmfehler, oder mach ich da was falsch??
Dateianhänge
Umschaltfläche-geht-nicht.ods
mit Msgbox aktiv geht die Umschaltfläche nicht
(12.76 KiB) 52-mal heruntergeladen
Zuletzt geändert von fbarc am Sa 13. Aug 2022, 23:34, insgesamt 2-mal geändert.
Gruß
Fabi

--------------------------------
Mein System: Linuxmint 20.2 | LibreOffice Version: 7.3.4.2
--------------------------------
Meine Signatur steht auf der Rückseite

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: Schaltfläche tut nicht...

Beitrag von F3K Total » Sa 13. Aug 2022, 09:42

Moin,
kann ich nachvollziehen, es aber auch nicht ändern. Wenn du also die Msgbox unbedingt benötigst habe ich keine Lösung.
Wenn du nur die Information sehen willst, vielleicht so:

Code: Alles auswählen

Sub btnGedrueckt ( event )

	Dim ocmdButton as Object
	Dim I as Integer
	meinDok		=	thisComponent
	meinBlatt	=	meinDok.sheets(0)
	ocmdButton = Event.Source.Model
	
	if ocmdButton.State = 0 then
		Text="Umschaltfläche (an)"
		nColor = RGB(0,255,0)
	else
		Text="Umschaltfläche (aus)"
		nColor = RGB(255,0,0)
	End If
	ocmdButton.BackgroundColor = nColor
    ocmdButton.label = Text
	I	=	meinBlatt.getCellRangeByName("A1").Value
	meinBlatt.getCellRangeByName("C10").String = "Test Test " & I
	meinBlatt.getCellRangeByName("A1").Value = I + 1
End Sub
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: Schaltfläche tut nicht...

Beitrag von gogo » Sa 13. Aug 2022, 10:07

Das Makro an "Maustaste losgelassen" binden und schon geht's
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

fbarc
Beiträge: 33
Registriert: Mi 8. Dez 2021, 02:47

Re: Schaltfläche tut nicht...

Beitrag von fbarc » Sa 13. Aug 2022, 23:33

gogo hat geschrieben:
Sa 13. Aug 2022, 10:07
Das Makro an "Maustaste losgelassen" binden und schon geht's
Ja, so geht es...

Ich versteh zwar nicht wieso, aber ist ja auch egal... Hauptsache es gibt einen Weg wie es läuft
F3K Total hat geschrieben:
Sa 13. Aug 2022, 09:42
kann ich nachvollziehen, es aber auch nicht ändern. Wenn du also die Msgbox unbedingt benötigst habe ich keine Lösung.
Wenn du nur die Information sehen willst, vielleicht so:
Das mit den Farben und Text ändern, speicher ich mir auch gleich in den Hinterkopf.


Danke euch beiden :)
Gruß
Fabi

--------------------------------
Mein System: Linuxmint 20.2 | LibreOffice Version: 7.3.4.2
--------------------------------
Meine Signatur steht auf der Rückseite

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: [gelöst] Schaltfläche tut nicht...

Beitrag von gogo » So 14. Aug 2022, 10:02

Vermutlich wird das Aktualisieren der Umschaltfläche (.status() sowie dann die grafische Anzeige) irgendwo unterbrochen, oder die Reihenfolge ist nicht so wie man sie erwartet. Print-Anweisungen unterbrechen den Code auch anders als MSG-Boxen, ggf verhält sich die Oberfläche auch anders wenn man statt der MSG-Box die MSG als Funktion benutzt...
Das "Mausklick-Event" ist übrigens - so weit mir aufgefallen ist immer erst mit dem Loslassen der Taste verbunden, d.h. auf "Maustaste gedrückt" kannst Du ggf. die Useraktion nochmal validieren ...
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

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 ❤️

Antworten