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]Reihenfolge der Kontrollelemente

Alles zur Programmierung im LibreOffice.
erikafuchs
Beiträge: 30
Registriert: Mi 20. Mär 2013, 18:07

[gelöst]Reihenfolge der Kontrollelemente

Beitrag von erikafuchs » Di 23. Nov 2021, 18:14

Ich schreibe in den Titel mal gelöst, auch wenn das Problem mit der Reihenfolge der Felder in Dialogen nicht wirklich gelöst ist - wahrscheinlich gibt es keine Möglichkeit, ein Feld nach vorne oder hinten zu bringen. Ich habe das Problem jetzt so gelöst, dass ich die Felder penibel nebeneinander angeordnet habe und sie sich im Zweifelsfall nicht überdecken.

Hallo Leute,

ich komme mal wieder nicht weiter. Ich benötige in meinem Dialog mit Matheaufgaben ein Wurzelzeichen über einer Summe. Zusätzlich zum Wurzelzeichen plaziere ich dafür eine horizontale Linie über der Summe. Das geht in OpenOffice wunderbar (nun ja, es ist etwas Arbeit, es an die verschiedenen Längen der Summe anzupassen):
Bruchstrich OO.jpg
Bruchstrich OO.jpg (24.31 KiB) 2107 mal betrachtet
In LibreOffice klappt das nicht, die Linie sieht man nicht und die Aufgabe hat dann natürlich auch eine andere Lösung. Der "Bruchstrich" liegt hinter dem Textfeld mit der Aufgabe:
Bruchstrich LO.jpg
Bruchstrich LO.jpg (69.07 KiB) 2107 mal betrachtet
... obwohl er im Dialogeditor vorne liegt (Ich habe hier das Textfeld zur Anschaulichkeit etwas verkleinert, damit man sieht, dass der Strich hinter dem Textfeld liegt). Ich habe den Strich auch schon entfernt und neu eingefügt, in der Hoffnung, dass er dann oben liegt. Außerdem ist mir aufgefallen, dass der Strich auch nicht dicker wird, auch wenn ich die Textgröße ändere.
Ich habe keine Idee, wie ich das Problem lösen kann.

Bei der Gelegenheit: Wo liegt der Unterschied bei einer Linie zwischen aktiviert und nicht aktiviert, außer dass die Linie heller und dunkler wird?

Und noch was: Zur Not muss ich in LibreOffice eine Klammer um die Summe machen. Dazu müsste ich aber auslesen können unter welchem Programm mein Rechentrainer genutzt wird. Ich weiß nicht mehr, ob und wie das geht. (Das mit der Klammer hilft mir allerdings nichts bei meinen Aufgaben zu den Potenzgesetzen mit Brüchen, da brauche ich unbedingt diesen Bruchstrich.)

Pit
Zuletzt geändert von erikafuchs am Mo 6. Dez 2021, 17:32, insgesamt 1-mal geändert.

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Reihenfolge der Kontrollelemente

Beitrag von craig » Di 23. Nov 2021, 19:52

Hallo Pit,

hier ein Makro aus dem englichen Forum, welches ich angepasst habe.
Es fügt ein Math-Shape (Formel) in ein Tabellenblatt ein:

Code: Alles auswählen

REM  *****  BASIC  *****

REM QUELLE: https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=45282#
sub InsertSquareRoot
   Dim oDoc As Object
   Dim oSheet As Object
   Dim oShape As Object
   
   oDoc = ThisComponent
   oSheet = oDoc.Sheets(0)
   
   oShape = oDoc.createInstance("com.sun.star.drawing.OLE2Shape")
   oShape.CLSID = "078B7ABA-54FC-457F-8551-6147e776a997"
   
   oSheet.Drawpage.Add(oShape)
'   oShape.Model.Formula = "size 20 e^{i%pi} + 1 = 0"
   oShape.Model.Formula = "sqrt(9+64)"
   oShape.setSize(oShape.OriginalSize)
end sub
Das Shape kannst Du dann in ein Bild-Steuerelement einfügen.
Wie das ginge, habe ich noch nicht heraus gefunden.
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

erikafuchs
Beiträge: 30
Registriert: Mi 20. Mär 2013, 18:07

Re: Reihenfolge der Kontrollelemente

Beitrag von erikafuchs » Di 23. Nov 2021, 22:28

Hallo Craig,
ich habe das jetzt noch nicht ausprobiert. Das sieht aber so aus, als würde dieser Code ein Object in der drawpage einfügen und nicht in den Dialog. Das ist, fürchte ich, nicht hilfreich, da es nicht wirklich klar positioniert werden kann. Die Objekte im Dialog werden relativ zum linken oberen Ende des Objektes eingefügt und die auf der Drawpage, nach meiner Einschätzung, relativ zum Tabellenblatt, ich fürchte, das hilft nicht, wie soll ich das positionieren? Den Dialog kann ich ja verschieben und der "bruchstrich" bleibt dann stehen?. .... In OpenOffice klappt das ja nun mal einwandfrei, da muss es doch eine andere Lösung geben!?

erikafuchs
Beiträge: 30
Registriert: Mi 20. Mär 2013, 18:07

Re: Reihenfolge der Kontrollelemente

Beitrag von erikafuchs » Mi 24. Nov 2021, 16:55

Ich habe mal eine Beispieldatei gebastelt, vielleicht hilft es. In AOO sieht man den Strich unter LO nicht.
Dateianhänge
Bruchstrich.ods
(11.53 KiB) 91-mal heruntergeladen

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

Re: Reihenfolge der Kontrollelemente

Beitrag von F3K Total » Mi 24. Nov 2021, 17:02

Hallo Pit,
ich denke ich habe eine Lösung, die Z-Order scheint an der Aktivierungsreihenfolge zu hängen.
Habe dir ein Beispiel gebaut.

Gruß R

Edit: dein Datei geht auch
Dateianhänge
Bruchstrich.ods
(12.26 KiB) 90-mal heruntergeladen
Erika.odt
(12.9 KiB) 86-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

erikafuchs
Beiträge: 30
Registriert: Mi 20. Mär 2013, 18:07

Re: Reihenfolge der Kontrollelemente

Beitrag von erikafuchs » Mi 24. Nov 2021, 17:49

Hallo Rick,
vielen Dank, ich hatte schon die Hoffnung aufgegeben!
Nur .... hast du das auch mal mit OO ausprobiert? Es ist nicht zu glauben, da ist der Bruchstrich jetzt weg. ... Oder spinne ich?
Das heißt, ich muss jetzt, je nach Version, diese Aktivierungsreihenfolge per Makro ändern - das ist doch zum Mäusemelken!

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

Re: Reihenfolge der Kontrollelemente

Beitrag von F3K Total » Do 25. Nov 2021, 14:03

Hallo Pit,
habe es mir nochmal angesehen, OO und LO verhalten sich bei mir gleich, siehe nochmal geändertes Beispiel anbei.
Ich denke der TabIndex muss nach dem Füllen des Textfeldes gesetzt werden, sonst ist der Strich wieder weg.

Gruß R
Dateianhänge
Erika.odt
(12.96 KiB) 86-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

erikafuchs
Beiträge: 30
Registriert: Mi 20. Mär 2013, 18:07

Re: Reihenfolge der Kontrollelemente

Beitrag von erikafuchs » Do 25. Nov 2021, 16:34

Hallo Rick,
ja, bei deinem blinkenden Beispiel schon, aber ohne Blinken geht das bei mir nicht. Vielleicht stelle ich mich ja auch wieder blöd an.
Folgender Code funktioniert jetzt bei beiden Versionen - ich muss aber die Aktivierungsreihenfolge nur in LO wechseln:

Code: Alles auswählen

Sub Main
    DialogLibraries.loadLibrary("Standard")
	oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1)

    oFixedLine1 = oDialog.getControl("FixedLine1")
    oFixedLine1Model = oFixedLine1.Model	    
	oTextfield1 = oDialog.getControl("TextField1")
	

	oTextfield1.text = space(40) & chr(8730) & "4 + 5"
	oFixedLine1Model.PositionX=72
	oFixedLine1Model.PositionY=65	
	oFixedLine1Model.width=14
	
	if getSolarVersion>500 then
	    tTab = oTextField1.Model.TabIndex
	    lTab = oFixedLine1.Model.TabIndex
	    
	    oTextField1.Model.TabIndex = lTab		
	    oFixedLine1.Model.TabIndex = tTab
	end if	
		
	oDialog.execute()	
end sub
Das heißt, ich muss die 4 entsprechenden Zeilen in OO "ausschalten". Oder siehst du das anders?
... und dann muss ich das wahrscheinlich auch noch jeweils für Linux und beim Mac ausprobieren.

Ach ja: Mir ist nichts Besseres eingefallen, als zwischen LO und OO zu unterscheiden, indem ich die Versionsnummer auslese - das ist ja nicht so ganz elegant. Dein Code sieht ja sehr elaboriert aus, den verstehe ich allerdings mal wieder nicht. Gibt es dafür eine Gebrauchsanweisung:

Code: Alles auswählen

function getVersion AS string
    Dim nNumber as integer
    Dim aSettings, aConfigProvider
    Dim aParams2(0) As new com.sun.star.beans.PropertyValue
    Dim sProvider$, sAccess$
    sProvider = "com.sun.star.configuration.ConfigurationProvider"
    sAccess   = "com.sun.star.configuration.ConfigurationAccess"
    aConfigProvider = createUnoService(sProvider)
    aParams2(0).Name = "nodepath"
    aParams2(0).Value = "/org.openoffice.Setup/Product"
    aSettings = aConfigProvider.createInstanceWithArguments(sAccess, aParams2())
    getVersion = aSettings.ooName & " " & aSettings.ooSetupVersionAboutBox
end function
Dateianhänge
Bruchstrich2.ods
(12.5 KiB) 92-mal heruntergeladen

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

Re: Reihenfolge der Kontrollelemente

Beitrag von F3K Total » Do 25. Nov 2021, 20:55

Habe ich nicht parat, bin nicht am Rechner. Untersuche asettings mit xray. Ich schätze das mitgelieferte Makro getsolarversion hat Ähnlichkeit mit meinem getVersion.

EDIT: muss mich korrigieren, getsolarversion scheint kein Starbasic Makro zu sein, zumindest kann ich keinen Code dazu finden.

Zur Erklärung, soweit ich es verstanden habe, mit

Code: Alles auswählen

    sProvider = "com.sun.star.configuration.ConfigurationProvider"
    sAccess   = "com.sun.star.configuration.ConfigurationAccess"
    aConfigProvider = createUnoService(sProvider)
erzeugt man einen Service, mit dem man auf verschiedenste Dinge zugreitfen kann, z.B. auf den Nodepath

Code: Alles auswählen

"/org.openoffice.Setup/Product"
Ergebnis der XRay Analyse von aSettings:
pit1.png
pit1.png (21.83 KiB) 1888 mal betrachtet
wenn man /Product weglässt, kommt man an andere Informationen zum Setup von OpenOffice, da muss man sich durchwühlen.
pit2.png
pit2.png (18.24 KiB) 1888 mal betrachtet
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

erikafuchs
Beiträge: 30
Registriert: Mi 20. Mär 2013, 18:07

Re: Reihenfolge der Kontrollelemente

Beitrag von erikafuchs » Sa 27. Nov 2021, 17:10

Ich gebe es jetzt auf! Ich habe das mit dem IndexTab in meinem Rechentrainer eingebaut. Egal was ich mache, es klappt nicht ... zumindest im ersten Durchgang.
Wenn ich den Aufgabentyp mehrmals aufrufe, ist beim ersten Durchgang der Strich nicht da:
wurzello1.jpg
wurzello1.jpg (23.14 KiB) 1860 mal betrachtet
im zweiten Durchgang (und den weiteren) ist er da:
wurzello2.jpg
wurzello2.jpg (20.76 KiB) 1860 mal betrachtet
(Ich muss nicht erwähnen, das das in OO nicht passiert.)
Ebenso bei meinen Aufgaben zu den Potenzgesetzen. Erster Durchlauf (Der Zähler fehlt, wie man an der Lösung erkennen kann):
potenzenlo.jpg
potenzenlo.jpg (26.71 KiB) 1860 mal betrachtet
im zweiten Durchlauf ist der Zähler da, der Bruchstrich ist wahrscheinlich verdeckt:
potenzenlo2.jpg
potenzenlo2.jpg (21.48 KiB) 1860 mal betrachtet
Ich werde in LO jetzt halt bei diesen Wurzelaufgaben eine Klammer einfügen und die entsprechenden Aufgaben bei den Potengesetzen ganz weglassen. Außerdem werde ich meine Nutzer informieren, dass sie besser mit OpenOffice arbeiten.

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