🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Formularfeld sichtbar schalten
Re: Formularfeld sichtbar schalten
360 km ? Schade.
Ich habe mal versucht die letzten beiden Datenbanken zu kombinieren. Klappt auch erst mal, leider wird der Farbenstatus der Buttons falsch angezeigt.
Beispiel:
Wenn die Felder einzeln aufgedeckt werden, wird beim anschließenden Umschalten des Datensatzes der Farbenstatus falsch angezeigt. Kannst du noch mal rüberschauen ?
Ich habe mal versucht die letzten beiden Datenbanken zu kombinieren. Klappt auch erst mal, leider wird der Farbenstatus der Buttons falsch angezeigt.
Beispiel:
Wenn die Felder einzeln aufgedeckt werden, wird beim anschließenden Umschalten des Datensatzes der Farbenstatus falsch angezeigt. Kannst du noch mal rüberschauen ?
- Dateianhänge
-
- Englisch-Grundwortschatz3.zip
- (23.64 KiB) 290-mal heruntergeladen
Re: Formularfeld sichtbar schalten
So, das kostet jetzt mindestens eine Kiste ...
Gruß R
Code: Alles auswählen
Sub Navigieren (oEvent)
oButton = oEvent.source.model
oDrawpage = ThisComponent.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
IF oButton.Label = "DE-ANZEIGEN-ALLES" then
oButton.Label = "NÄCHSTE KARTE"
oButton.BackgroundColor = 16763904 'Orange
for i = 0 to oForm.Count - 1
oFeld = oForm.getByindex(i)
if oFeld.tag = "AN_AUS" then oFeld.enableVisible = true
if oFeld.Name ="EINZELBUTTON" then
oFeld.Label = "DE-AUSBLENDEN"
oFeld.BackgroundColor = 16763904 'Orange
endif
next i
ELSE
oButton.Label = "DE-ANZEIGEN-ALLES"
oButton.BackgroundColor = 52224 'Grün 3
for i = 0 to oForm.Count - 1
oFeld = oForm.getByindex(i)
if oFeld.tag = "AN_AUS" then oFeld.enableVisible = false
if oFeld.Name ="EINZELBUTTON" then
oFeld.Label = "DE-ANZEIGEN"
oFeld.BackgroundColor = 52224
endif
next i
if oform.islast then
if msgbox ("Das war die letzte Karte,"+chr(13)+"nochmal von vorne beginnen",292,"Letzter Datensatz") = 6 then
oform.first
exit sub
else
exit sub
endif
endif
oForm.next
ENDIF
end sub
Sub UnsichtbarAnAus (oEvent)
oButton = oEvent.source.model
sFields = oButton.tag
aFields = split(sFields,";")
oDrawpage = ThisComponent.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
IF oButton.Label = "DE-ANZEIGEN" THEN
oButton.Label = "DE-AUSBLENDEN"
oButton.BackgroundColor = 16763904 'Orange
for i = 0 to 1
oFeld = oForm.getByName(aFields(i))
oFeld.enableVisible = true
next i
ELSE
oButton.Label = "DE-ANZEIGEN"
oButton.BackgroundColor = 52224 'Grün 3
for i = 0 to 1
oFeld = oForm.getByName(aFields(i))
oFeld.enableVisible = false
next i
END IF
nCount = 0
for i = 0 to oForm.Count - 1
oFeld = oForm.getByindex(i)
if oFeld.NAME = "EINZELBUTTON" then
if oFeld.Label = "DE-AUSBLENDEN" then nCount = nCount + 1
endif
next i
oButton = oForm.getbyname("GESAMTBUTTON")
if nCount = 4 then
oButton.Label = "NÄCHSTE KARTE"
oButton.BackgroundColor = 16763904 'Orange
else
oButton.Label = "DE-ANZEIGEN-ALLES"
oButton.BackgroundColor = 52224 'Grün 3
endif
end sub
- Dateianhänge
-
- Englisch-Grundwortschatz3.zip
- (23.52 KiB) 226-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld sichtbar schalten
Uiiii .... das war wohl eine Menge Arbeit am Code. Jetzt ist aber auch gut .... nochmals vielen Dank für deine Mühe.
Bei Eigenschaften "Schaltfläche" von DE-ANZEIGEN-ALLES sehe ich nur "fokussieren bei Klick". Das automatische Fokussieren (ohne Mausklick) direkt nach dem Start der Datenbank auf DE-ANZEIGEN-ALLES ist wohl nicht möglich, oder ? Wenn das jetzt wieder umfangreich wird am code rumzubasteln, lasse es bitte. Ich bin hochzufrieden mit der Datenbank.
Jetzt werde ich mal anfangen 800 Karteikarten mit über 1400 Begriffen zu füllen. Das wird lustig
Gruß Gundo
Bei Eigenschaften "Schaltfläche" von DE-ANZEIGEN-ALLES sehe ich nur "fokussieren bei Klick". Das automatische Fokussieren (ohne Mausklick) direkt nach dem Start der Datenbank auf DE-ANZEIGEN-ALLES ist wohl nicht möglich, oder ? Wenn das jetzt wieder umfangreich wird am code rumzubasteln, lasse es bitte. Ich bin hochzufrieden mit der Datenbank.
Jetzt werde ich mal anfangen 800 Karteikarten mit über 1400 Begriffen zu füllen. Das wird lustig

Gruß Gundo
Re: Formularfeld sichtbar schalten
Habs hinbekommen.
Code: Alles auswählen
Sub FokusSetzen
oDoc = ThisComponent
oDocView = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms(0)
oFeld = oForm.getByName("GESAMTBUTTON")
oDocView.getControl(oFeld).setFocus()
End Sub
Re: Formularfeld sichtbar schalten
Moin,
das geht auch ohne Makro, indem die Schaltfläche die Aktivierungsreihenfolge 1 bekommt und der automatische Kontrollelementefokus eingeschaltet wird: Gruß R
das geht auch ohne Makro, indem die Schaltfläche die Aktivierungsreihenfolge 1 bekommt und der automatische Kontrollelementefokus eingeschaltet wird: Gruß R
- Dateianhänge
-
- Englisch-Grundwortschatz3.zip
- (23.16 KiB) 246-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld sichtbar schalten
Hallo,
Hab's korrigiert und noch einige Buttons integriert. Diese Datenbank erhält sicher keinen Schönheitspreis, ist aber für meine Bedürfnisse wunderbar zu gebrauchen.
Wüßte nicht was da noch fehlen könnte.
Gruß Gundo
Hab's korrigiert und noch einige Buttons integriert. Diese Datenbank erhält sicher keinen Schönheitspreis, ist aber für meine Bedürfnisse wunderbar zu gebrauchen.
Wüßte nicht was da noch fehlen könnte.
Gruß Gundo
- Dateianhänge
-
- Englisch-Grundwortschatz-Final.zip
- (27.14 KiB) 215-mal heruntergeladen
Re: Formularfeld sichtbar schalten
Mhmmm .... ist das eigentlich möglich über einen Button eine Audiodatei abzuspielen ?
Man klickt also einen Button an, und die dort verlinkte z.B. MP3-Datei wird abgespielt. Geht das überhaupt ?
Gruß Gundo
EDIT: Ist wohl möglich: http://de.openoffice.info/viewtopic.php ... 60#p244476 aber in meinem Fall kaum praktikabel.
EDIT2: Oder doch. Bei diesem Beispiel wird ein Feld ausgelesen und die Datei geöffnet/ausgeführt. Hab ich jedenfalls so verstanden:
D.h. man müßte nur einen Button erstellen der ein bestimmtes Feld ausliest (Makro) und dann die Audiodatei abspielt. Und wenn die MP3-Datei mit einem Player verknüpft ist sollte das doch funktionieren. Ob' s praktikabel ist ... mal sehen. Ich versuch's mal.
Man klickt also einen Button an, und die dort verlinkte z.B. MP3-Datei wird abgespielt. Geht das überhaupt ?
Gruß Gundo
EDIT: Ist wohl möglich: http://de.openoffice.info/viewtopic.php ... 60#p244476 aber in meinem Fall kaum praktikabel.
EDIT2: Oder doch. Bei diesem Beispiel wird ein Feld ausgelesen und die Datei geöffnet/ausgeführt. Hab ich jedenfalls so verstanden:
Code: Alles auswählen
SUB DateiOeffnen
DIM vaDoc
DIM Arg()
DIM stUrl AS STRING
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Feld")
stUrl = ConvertToUrl(oFeld.getCurrentValue())
vaDoc = StarDesktop.loadComponentFromURL(stUrl, "_blank", 0, Arg())
END SUB
Re: Formularfeld sichtbar schalten
Hallo Gundo,
Audiodateien abspielen ist möglich. Allgemein allerdings über
Schau dazu im Handbuch das Kapitel "Aufruf von Anwendungen zum Öffnen von Dateien" an.
Gruß
Robert
Audiodateien abspielen ist möglich. Allgemein allerdings über
Code: Alles auswählen
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stPfad,,0)
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formularfeld sichtbar schalten
Hallo Robert,
So hab ich das verstanden:
Das auszulesende Feld heißt also "play 1". Der entsprechende Button löst dieses Script aus. Im Feld steht der komplette Pfad zur mp3-Datei:
Die Verknüpfung im System (Linux Mint 18.1) ist vorhanden. Trotzdem funktioniert es nicht. Es tut sich nichts wenn der Button angeklickt wird. Ich würde auch gerne den Kommandozeilenplayer mpg312 minimalisiert verwenden. Der muß ja auch dann auch hier im Script eingetragen werden. Wie geht das denn ?
Gruß Gundo
EDIT:
Gut, aber ich kapier noch nicht wie wie man den Inhalt von dem Feld "play 1" übergibt.
EDIT2:
Jetzt hab ich es ...
So hab ich das verstanden:
Code: Alles auswählen
SUB Link_oeffnen
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oShell AS OBJECT
DIM stFeld AS STRING
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oFeld = oForm.getByName("play 1")
stFeld = oFeld.Text
IF stFeld = "" THEN
EXIT SUB
END IF
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stFeld,,0)
END SUB
Code: Alles auswählen
/home/user/Dokumente/test.mp3
Gruß Gundo
EDIT:
Code: Alles auswählen
Shell(Pathname, Windowstyle, Param,bSync)
EDIT2:
Jetzt hab ich es ...
Code: Alles auswählen
shell("/usr/bin/mpg321", 1,stFeld)
Re: Formularfeld sichtbar schalten
Hallo Gundo,
Du hast aus dem Handbuch einen Teil nicht mit eingebunden:
Das macht dann aus
Gruß
Robert
Du hast aus dem Handbuch einen Teil nicht mit eingebunden:
Code: Alles auswählen
stFeld = convertToUrl(stFeld)
Code: Alles auswählen
/home/user/Dokumente/test.mp3
Code: Alles auswählen
file:///home/user/Dokumente/test.mp3
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.