Markierfeld größer darstellen

Hallo!
gibt es eine Möglichkeit , dass MArkierfeld in Writer größer darzustellen. Über Eigenschaften - Höhe verändert sich nur der Rahmen, nicht das Kästchen selber.

Grüße von der Ostsee
Susanne

Nein, das Feld ist so fest einprogrammiert. Ich würde so etwas gegebenenfalls mit Makros und einem Textfeld lösen, das z.B. ein großes X in das Textfeld setzt, wenn das Feld angeklickt wird.

Hi!
Ich habe dasselbe Problem - möchte gerne das Markierfeld grösser darstellen. Nur habe ich leider überhaupt keine Ahnung von Makros… Wie lautet der Code für die Lösung mit dem Textfeld und dem X?

Beste Grüsse
Regula

Wenn Du bisher überhaupt nichts mit Makros zu tun hattest, dann ist dies wohl nicht der geeignete Einstieg. Du müsstest nämlich beim Einlesen des Wertes eine Umwandlung von “True” zu einem “X” erstellen und beim Abspeichern wiederum aus dem “X” ein “True” machen.
Markierfeld.odb (12.1 KB)
Schau einmal, ob Dir die Alternative mit einem Listenfeld nicht genügt, die ich hier angehängt habe. Ich habe in dem Formular extra noch ein Markierfeld mit drin gelassen, das das gleiche Feld bedient. Du kannst statt des “X” in so einem Listenfeld auch einen Haken anzeigen lassen. Ich würde dazu bei den Sonderzeichen nachschauen, was denn passend ist.

Ich habe jetzt auch noch eine entsprechende Makrolösung erstellt:

GLOBAL stChecked AS STRING

REM +++ Einstellen des Boolean-Feldes beim Wechsel des Datensatzes im Formular
REM +++ Der Name des Feldes steht in einem versteckten Kontrollfeld, Bei mehreren Feldern durch ein Semikolon getrennt
REM +++ In den Zusatzinformationen des Feldes steht der Name des Datenfeldes
SUB BoolStart(oEvent AS OBJECT)
	DIM oForm AS OBJECT
	DIM oField AS OBJECT
	DIM stCheckbox AS STRING
	DIM stCheck AS STRING
	DIM stValue AS STRING
	DIM arCheck()
	oForm = oEvent.Source
	IF hasUnoInterfaces( oForm, "com.sun.star.form.XForm" ) THEN		
		stChecked = ""
		stCheckbox = oForm.getByName("hidCheckbox").HiddenValue
		arCheck = split(stCheckbox,";")
		FOR n = LBound(arCheck()) TO UBound(arCheck())
			oField = oForm.getByName(Trim(arCheck(n)))
			stCheck = oField.Tag
			stValue = oForm.getString(oForm.findColumn(stCheck))
			IF stValue = "true" THEN
				oField.Text = stChecked
			ELSE
				oField.Text = ""	'Gegebenenfalls kann über die globale Variable hier ein anderes Zeichen eingebaut werden.
			END IF
		NEXT		
	END IF
END SUB

REM +++ Änderung der Anzeige eines Wertes in dem Textfeld, das als Checkbox angelegt sein soll
REM +++ Das Makro wird von dem Textfeld über Ereignisse → Teste gedrückt (Umweg über SUB BoolChangeKey) und über Ereignisse → Maustaste gedrückt ausgelöst.
SUB BoolChange(oEvent AS OBJECT)
	DIM oField AS OBJECT
	DIM oForm AS OBJECT
	oField = oEvent.Source.Model
	oForm = oField.Parent
	IF oField.Text = stChecked THEN
		oField.Text = ""
		oForm.updateBoolean(oForm.findColumn(oField.Tag),false)
	ELSE
		oField.Text = stChecked
		oForm.updateBoolean(oForm.findColumn(oField.Tag),true)
	END IF
END SUB


REM +++ Das Makro wird von dem Textfeld über Ereignisse → Teste gedrückt ausgelöst.
SUB BoolChangeKey(oEvent AS OBJECT)
	REM 1282 ist der Code für den Tablulator, siehe http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1Key.html
	REM Wird der Tabulator nicht ausgeschlossen, so wird er wie eine Taste und nimmt auch Änderungen an dem Feld vor.
	IF oEvent.KeyCode <> 1282 THEN
		BoolChange(oEvent)
	END IF
END SUB

In dem Formular befindet sich ein verstecktes Kontrollfeld, hier mit dem Namen “hidCheckbox”. In dem sind die Checkboxfelder mit dem Namen aufgeführt, der in dem Formularnavigator angezeigt wird. Die Checkboxfelder sind mit keinem Datenfeld verbunden. Das Datenfeld steht lediglich in den Zusatzinformationen des jeweiligen Checkboxfeldes.

Eine Prozedur wird über das Formular ausgeführt (beim Datensatzwechsel), eine andere Prozedur wird ausgeführt, wenn die Chekbox mit der Maus auf dem Feld gedrückt wird und eine kurze Prozedur muss für das Drücken der Taste vorhergeschoben werden. Dadurch wird die Tabulatortaste davon ausgenommen, die Felder umzustellen.

Die Checkboxfelder selbst enthalten nur ein Zeichen und sind auf “Nur lesen” eingestellt.

Markierfeld.odb (23.1 KB)

Hallo Robert, ich habe lang nach einer anderen Lösung gesucht, denn für meinen Gebrauch
sind die Markierfelder einfach zu klein.
Leider kann ich deine Dateien nicht öffnen. Ich bekomme ständig die Fehlermeldung, ich hätte Java nicht installiert.
Aber selbst nach mehrmaligen Updates, Deinstalation und erneutem Aufspielen gibt es bei Libreoffice die oben genannte Fehlermeldung.
Könntest du mir für dein Lösung eine Anleitung schicken oder die Dateien direkt zusenden?
Meine Emailadresse lautet:
treibholz17@web.de

Vielen Dank für deine Hilfe.

PS. Ich arbeite auf einem Mac mit M2 Prozessor. Mit neuester Version von libreoffice.

Wenn die Java-Abfrage kommt, dann liegt das daran, dass ich damals wohl die interne HSQLDB verwandt habe. Die kann ohne Java nicht. Und beim Mac gibt es dann auch Versionen von LibreOffice, die grundsätzlich so amputiert sind, dass Java nicht dabei sein darf, weil wohl die Softwareverwaltung sagt: Software, die andere Pakete nach sich zieht, wollen wir nicht.

Ich hänge die damalige Datei einmal hier mit Firebird als Datenbank an, schicke Dir aber auch noch eine private Mail mit schönerer Lösung.
Markierfeld.odb (25.4 KB)