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

Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen (gelöst)

Alles zur Programmierung im LibreOffice.
Antworten
ejomi
Beiträge: 6
Registriert: Mo 23. Jul 2012, 17:16

Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen (gelöst)

Beitrag von ejomi » Fr 7. Sep 2018, 22:33

Hallo liebe LO-Gemeinde!
Zunächst die Begriffserklärung:
Mit "Makro-Dialog" meine ich die in der Makro-Umgebung/Star-Basic (z.B. unter Writer) selbst erstellten Dialog-Formulare.
Gegebenheiten:
Ich habe ein sehr dicht bepacktes Dialog-Fenster (30 "belabelte" Input-Felder, 6 Radio-Buttons uvm.). Dieses komplexe Eingebeforumlar läßt sich nicht vereinfachen, weil der Anwender alle Felder gleichzeitig im Blick haben soll/muß. Es war schwer genug mit schmalen Schriftgrößen (Arial Narrow) alles halbwegs leserlich und aufgeräumt im Dialogfeld zu platzieren.
Das Problem:
Entworfen habe ich das Formular auf meinem Heim-Rechner mit 1920x1080-Monitor aber darauf geachtet, dass das Dialogfenster unter 800 px hoch bleibt weil ich im Büro - wo das Skript zum Einsatz kommen soll - unterschiedliche Monitore mit z.T. erheblich kleineren Auflösungen habe. Dort werden jetzt aber die Schriftgrößen - obwohl fest vorgegeben - nicht skaliert und so passen z.B. die mühsam eingepassten Beschriftungstexte nicht mehr in die relativ eng aneinanderliegenden Labels - die ganze Arbeit für die Katz!
Die Frage:
Kann man die Schrift-Skalierung in "Makro-Dialogen" irgendwie beeinflussen, sodass die Dialoge unabhängig von der Bildschirmauflösung immer gleich aussehen bzw. das Verhätniss Control-Größe zu seiner enthaltenen Schriftgröße im gleichen Verhältnis skaliert wird?
Bin für jeden Tipp dankbar, weil ich nach all der Arbeit ziemlich enttäusch bin. Übrigens: Passe ich die Dialog-Schriften an die Büro-Monitore an, dann sind sie Zuhause auf dem großen Monitor so winzig, dass sie kaum noch entzifferbar sind!! Es ist zum verzweifeln ...
Gruß: ejomi
Zuletzt geändert von ejomi am Di 18. Sep 2018, 23:12, insgesamt 1-mal geändert.

balu
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von balu » Sa 8. Sep 2018, 11:56

Moin moin ejomi,

super extrem wichtig ist für uns zu wissen, welche Betriebssysteme zum Einsatz kommen, einerseits bei dir zu Hause und anderseits auf der Arbeit. Und ferner ist auch das eingesetzte Office mit der genauen Versionsnummer wichtig zu wissen.

selbst erstellten Dialog-Formulare
Damit es nicht zu weiteren missverständnissen kommt, meinst Du jetzt einen Dialog den Du in der BASIC-IDE gezeichnet hast, oder ein Formular welches Du im Writer erstellt hast. Beides sind nämlich 2 verschiedene paar Schuhe.

Kann man die Schrift-Skalierung in "Makro-Dialogen" irgendwie beeinflussen
Ja kann man. Aber dazu ist es zwingend erforderlich, das überall die gleiche Schrift installiert ist, und ferner das überall das gleiche Betriebssystem installiert ist.

Hört sich jetzt vielleicht viel versprechend an, da ich aber nur weiss das man irgendwie die Bildschirmauflösung auslesen kann (jetzt aber nicht ausm Stehgreif weiss wie), kann ich nur sagen das dies auslesen etwas komplizierter ist.

dass das Dialogfenster unter 800 px hoch bleibt weil ich im Büro [...] unterschiedliche Monitore mit z.T. erheblich kleineren Auflösungen habe.
Was verstehst Du unter dem unterstrichenen Teil?


Mal angenommen das folgende Punkte zutreffen:
  • Überall das gleiche Betriebssystem
  • Überall die gleichen Schriften vorhanden sind
  • Überall das gleiche Office verwendet wird
  • Du wirklich einen Dialog meinst, und nicht ein Formular
dann ist damit der Grundstock für folgendes Szenario gelegt.
Wenn Du "den Weg des geringsten Widerstands gehen" willst (*), dann musst Du bei dir zu Hause deine Monitorauflösung auf die kleinst mögliche Auflösung einstellen die bei dir auf der Arbeit verwendet wird. Erst dann erstellst Du den Dialog, und zwar komplett neu für diese Auflösung.

Dieses komplexe Eingebeforumlar läßt sich nicht vereinfachen, weil der Anwender alle Felder gleichzeitig im Blick haben soll/muß.
Ich weiss das es für einen aussenstehenden wie mich recht einfach ist zu sagen: "Das würde ich mir noch mal ganz genau überlegen", aber ich habe auch meine Erfahrungen gesammelt wo diese/deine Überlegung fehl am Platze war.

Ich hatte mal für jemand so nach und nach einen recht Umfangreichen und Komplexen Dialog erstellt der über mehrere Doalog-Seiten ging. Auch wenn die Handhabung, dank einer einfachen von mir eingebauten Hilfe, recht einfach zu hanhaben ist, so musste ich sehr viele Punkte berücksichtigen. Als da beispielsweise wären:
  • Daten übernehmen, oder verwerfen?
  • Daten schon vorhanden, wie weiter?
  • Richtige Seite, oder eine andere Seite auswählen?
Hört sich simpel an, was es aber nicht war. Zumal das ja nur ein Bruchteil von möglichen Bedingungen ist.
Ich muss aber auch gestehen, das ich da für Calc einen Dialog erstellt hatte, wo es ja um Datenerfassung und Datenänderung ging. Aber manche Dinge sind halt auch generell zu betrachten und zu Überlegen, egal ob Wirter oder Calc.


Ach ja, beinahe Vergessen!
(*)
Das gegenteil von "den Weg des geringsten Widerstands gehen" ist in diesem Falle: Den Dialog nicht zu zeichnen, sondern zur Laufzeit zu erstellen. Und was das genau bedeutet habe ich dir mal als eine minimalistische Beispieldatei angehängt.
Der Dialog der zu sehen ist, wenn Du in Calc auf den Button "Fenster" klickst, hat wohl diverse Elemente und die dortigen Buttons sind ohne "richtige" Funktion, aber er demonstriert das er nicht in der BASIC-IDE vorher gezeichnet wurde, sondern erst zur Laufzeit durch den Makro-Code "gezeichnet" / erstellt wird.

Dieses Verfahren hätte den Vorteil das man eventuell z.B. die Auflösung auslesen kann, und auf Grund dessen den Dialog zur Laufzeit erstellt. Der Nachteil dabei ist aber, das das Programmieren nicht ganz so einfach und schnell erledigt ist. Dazu gehört aber auch, das keine unterschiedliche Betriebssysteme verwendet werden dürfen, wie z.B. Linux und Windows, denn dann ist Panik und Chaos angesagt (kannste mir ruhig glauben).


Am besten hängst Du mal eine Beispieldatei mit deinem Dialog hier an, und sagst etwas mehr dazu. Vielleicht können wir dir dann noch den ein oder anderen Tipp geben.



Gruß
balu
Dateianhänge
Test_Laufzeit-Dialog_for_Forum_x1.ods
(12.82 KiB) 186-mal heruntergeladen

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von mikele » Sa 8. Sep 2018, 12:13

Hallo,
ich glaube, dass die Auflösung nicht das eigentliche Problem ist. Ich habe mal einen einfachen Dialog hergenommen und auf einem (meinem) Rechner mit verschiedenen Monitorauflösungen gestartet. Sowohl die Controls als auch die Schrift wird entsprechend skaliert. Wobei, eigentlich werden sie nicht skaliert, sondern die Dinge sehen nur größer/kleiner aus, 10 Pixel bleiben 10 Pixel (es ändert sich "nur" die Pixelgröße, -abstand).
Entscheidend scheint mir die verwendete Schriftart und (implizit) das Betriebssystem. Meine Erfahrung zeigt z. B. einen erheblichen Unterschied desselben Dialogs unter Windows und unter Linux (basierend auf unterschiedlichen Systemschriften).
Gruß,
mikele

balu
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von balu » Sa 8. Sep 2018, 13:29

Mahlzeit,
mikele hat geschrieben: ich glaube, dass die Auflösung nicht das eigentliche Problem ist.
Nicht nur. Aber sehe gleich selbst, und dort besonders mein Beitrag vom Fr, 05.08.2011 22:32 (seite 1 weit unten).

ich hatte mal im anderen Forum, 'de.openoffice.info', einen Thread gestartet, wo es eigentlich nur um unterschiedliche Linux-Systeme gehen sollte, aber auch interessante andere Infos von anderen Usern von z.B. Windows beigetragen wurden.

Ich verlinke mal den dementsprechenden Beitrag, da er doch so einiges an Infos liefert, auch wenn er schon über 7 Jahre alt ist.
Unterschiedliche Dialoggrößen zwischen Linux Systemen?



Gruß
balu

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von mikele » So 9. Sep 2018, 17:40

Hallo,
die Dimensionierung von Dialogen und Dialogelementen scheint schon eine knifflige Geschichte zu sein.
Wie gesagt habe ich das Ganze mal mit einem einfachen Dialog getestet.
Auf einem Rechner, unter gleichem Betriebssystem, aber verschiedenen Bildschirmauflösungen gibt es kein Problem.
Derselbe Dialog unter einem anderen Betriebsystem liefert ein anderes Aussehen. Dabei geht es weniger um die Größenrelatione der einzelnen Elemente zueinander, als um das Verhältnis von Kontrollelement zu Text/Beschriftung.
Bei Thomas Krumbein "Makros in OpenOffice.org" (S. 564 um genau zu sein) habe ich dazu Interessentes gefunden:
Ein Knackpunkt bei der Gestaltung der Dialoge sind die Einheiten der Dimensionen. In meinem einfachen Dialog habe ich einem Textfeld mal die Höhe 10 gegeben (im Dialogeditor). Unter Linux wird der Text (Schriftgröße 10) auch gut dargestellt. Unter Windows passt der Text aber nicht mehr in das Textfeld - es ist einfach nicht hoch genug!!!
Und nun kommt's: Schaut man sich die Größe des Textfeldes an, so gibt es zwei Möglichkeiten:
1) über das Model des Textfeldes: .getModel.Height (oder kurz: .Model.Height)
Hier liefern Linux und Windows den (eingestellten) Wert 10.
2) über den View des Textfeldes: .getView.Size.Height (oder kurz: .Size.Height)
Hier liefert Windows den Wert 16 und Linux den Wert 21!!!
Offensichtlich sind die Werte des View wirklich Pixelwerte. Allerdings können diese nicht eingestellt werden, sondern ergeben sich aus den Modelwerten.
Bei diesen soll es sich um Maßeinheit namens Map AppFont handeln. Eine Map AppFont Einheit soll geräte- und auflösungsunabhängig sein und dafür sorgen, dass Dialoge auf verschiedenen Systemen gleich aussehen. Das Ziel wurde anscheinend verfehlt!
(vgl. https://www.openoffice.org/ui/proposals ... etrics.htm und https://wiki.openoffice.org/wiki/Docume ... Properties)
Für die Dartsellung am Rechnung erscheint mir die Angabe von Pixeln sinnvoller, weil es sich auf die sichtbare Darstellung bezieht. Blöderweise gibt es keine feste Umrechung zwischen Maps AppFont Unit zu Pixel. Der Umrechungsfaktor ist für jedes System und für Höhe und Breite anders. Es gibt allerdings die Methode convertSizeToLogic.
Soweit das Dilemma.
Aus meiner Sicht gibt es nun zwei Wege:
1) Auf einem System macht man den Dialog optisch passend (Festlegung der Modelwerte in Maps AppFont Units). Per Makro liest man für z. B. Höhe und Breite des Dialogs die View-Werte in Pixeln aus. Mit diesen Werten kann man jetzt die Anpassung aller (!) Dialogelemente programmieren.
Die Position der Dialogelemente muss dabei (glaube ich zumindest auch mitkorrigiert werden).
2) Man passt die Schriftgröße an die View-Werte an.
Variante 2 könnte einfacher werden (bin ich mir aber nicht sicher, insbesondere wegen der Schriftbreite).
Für den Weg 1 habe ich mal einen Ansatz programmiert.
Dateianhänge
makro_dialog_einfach_pixelangepasst.ods
(11.67 KiB) 177-mal heruntergeladen
Gruß,
mikele

ejomi
Beiträge: 6
Registriert: Mo 23. Jul 2012, 17:16

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von ejomi » Di 11. Sep 2018, 00:59

Erst mal herzlichen Dank für die ausführlichen Antworten.
Vorallem die Meinung von "mikele" scheint hier weiterzuführen:
Ich habe schon seit Jahren die diversen "Schwarten" von Thomas Krumbein im Regal (übrigens bis heute immer noch empfehlenswert) und kann mich dunkel an das dort beschriebene Einheiten-Problem erinnern - da muß ich noch mal genauer nachlesen.
Noch eine nachträgliche Info:
Entwickelt habe ich die Makros auf Win7-Rechner mit LibO V.5.4.7.2 und im Büro habe ich sowohl Win7 als auch Win10 uns sogar noch einen alten XP-Rechner, der schon seit Jahren treue Dienste leistet. Da auf den meisten Rechnern nur Standard-Büroanwendungen (offline) laufen, hat sich die Frage nach dem Betriebssystem und evtl. Updates nach dem Motto "Never change a running system" bisher noch nicht gestellt.
Ich stelle diesen Thread noch nicht auf "gelöst" sondern warte noch einige Tage - vielleicht hat ja noch Jemand eine Idee.
Bis dahin - Grüße aus Dresden (wo - entgegen vielen falschen Darstellungen - mehr vernünftige Leute leben als allgemein angenommen):
ejomi

balu
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von balu » Di 11. Sep 2018, 12:35

Mahlzeit
ejomi hat geschrieben: Da auf den meisten Rechnern nur Standard-Büroanwendungen (offline) laufen, hat sich die Frage nach dem Betriebssystem und evtl. Updates nach dem Motto "Never change a running system" bisher noch nicht gestellt.
Die Frage nach dem Betriebssystem hat nix mit Updates zu tun gehabt, sondern lediglich wegen verschiedenen Betriebssystemen, vorangig Windows zu Linux.

ejomi hat geschrieben: Entwickelt habe ich die Makros auf Win7-Rechner mit LibO V.5.4.7.2
Okay, das wäre geklärt.
ejomi hat geschrieben: und im Büro habe ich sowohl Win7 als auch Win10 uns sogar noch einen alten XP-Rechner,
Aber die Frage auf welchem Rechner im Büro welches Office installiert ist, und auf welchem die kleinste Auflösung (deren Größe Du immer noch nicht angegebnen hast) gefahren wird, bleibt noch immer offen.

Klar, so extreme Versionsunterschiede bei den Officen wirst Du wohl höchstwahrscheinlich nicht haben. Aber ich hatte gestern mal nur so aus Spaß an der dollerei die Beispieldatei von mikele genommen und in 3 (in Worten: Drei) verschiedene Office mir den Dialog angeschaut. Ich habe übrigens noch immer WinXP.

OpenOffice.org 3.2.1
340*268

LibreOffice 5.1.5.2
349*296

ApacheOpenOffice 4.1.5
349*296

Alle Maße in Pixel und ca.-Angaben. Und immer mit der Titelzeile. Screenshot gemacht, und mit IrfanView mir die Größen ausgeben gelassen.
Und im Makro von mikele steht sinngemäß: 346*274. Wobei ich jetzt nicht weiss ob mit oder ohne Titelzeile.

Wie Du aber sehen kannst, sind LO und AOO identisch. Lediglich die ältere OO.O ist etwas kleiner.


mikele hat geschrieben: Unter Linux wird der Text (Schriftgröße 10) auch gut dargestellt. Unter Windows passt der Text aber nicht mehr in das Textfeld - es ist einfach nicht hoch genug!!!
Ich hatte doch schon im verlinkten Beitrag auf eine sonderheit hingewiesen. Hier der Link zu dem Beitrag: klick mich.
Und hier die Passage auf die ich hier hinaus wollte.
balu hat geschrieben: ich hatte ja schon Eingangs die Faktoren aufgezählt die die Größe eines Dialogs beeinflussen können. Es fehlt aber noch ein Punkt, den ich bei der Eröffnung dieses Threads noch nicht wusste. Und das ist die Auflösung Pixel pro Zoll. Klar, unter Windows(XP) kann man die auch dementsprechend ändern, jedoch werden die Änderungen erst nach einem nervenden Rechnerneustart wirksam. Unter Fedora geht dies ohne Neustart, und man kann Live dabei zusehen wie sich die Änderung der Pixelangaben sofort bemerkbar machen.
Um das noch mal zu verdeutlichen.
Unter WinXP heißt das nicht wie bei Fedora (Linux) Auflösung Pixel pro Zoll, sondern DPI-Einstellung. Zu finden unter:
- Rechtsklick aufm Desktop
- Eigenschaften
-- Eigenschaften von Anzeige
-- Reiter "Einstellungen"
-- Button "Erweitert"
dann kommt ein weiteres Fenster mit sinngemäßem Tittel "Eigenschaften von ... Monitor..." Und dort kann man dann bei "Allgemein" die DPI-Einstellung ändern.
Ich weiss nicht wie das bei Win7 oder höher ausieht, der Weg zu dieser Einstellung, aber man kann auch unter Win die DPIs ändern, und daraus folgt eine geänderte Dialoggröße. Da dies dort aber ein unbequemer Weg ist, wird man das nicht all zu oft machen.

Wie auch immer, das nur noch mal so als ergänzende Info zu dem Beitrag.


ejomi hat geschrieben: warte noch einige Tage - vielleicht hat ja noch Jemand eine Idee.
Was gefällt dir nicht an meiner Idee, die ich schon zu eingangs dir vorgeschlagen hatte?
balu hat geschrieben: Wenn Du "den Weg des geringsten Widerstands gehen" willst (*), dann musst Du bei dir zu Hause deine Monitorauflösung auf die kleinst mögliche Auflösung einstellen die bei dir auf der Arbeit verwendet wird. Erst dann erstellst Du den Dialog, und zwar komplett neu für diese Auflösung.
Und wie soll man dir noch weitere Ideen unterbreiten, wenn Du nicht mal in Zahlen ausdrücken kannst, was das folgende zu bedeuten hat?
ejomi hat geschrieben: mit z.T. erheblich kleineren Auflösungen

Du kannst dich aber durchaus gerne mal an der Kombination von a und b versuchen.
a)
NICHT "den Weg des geringsten Widerstands gehen", sondern den Dialog zur Laufzeit zu erstellen.

b)
Bei der Laufzeiterstellung integrierst Du den Vorschlag (die Idee) von mikele.



Gruß
balu

ejomi
Beiträge: 6
Registriert: Mo 23. Jul 2012, 17:16

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von ejomi » Mi 12. Sep 2018, 13:54

Naja, balu - ich will Dir ja nicht zu nahe treten, aber die Auflistung von Trivialitäten hilft hier nicht wirklich weiter.
Unter WinXP heißt das nicht wie bei Fedora (Linux) Auflösung Pixel pro Zoll, sondern DPI-Einstellung. Zu finden unter:
... ach "balu": DPI ist lediglich die engl. Abkürzung für "Dots per Inch", auf Deutsch "Pixel pro Zoll" - Wahnsinns Erkenntnis, wa? Und die Bedienung von Windows brauchst Du mir auch nicht zu explizit zu erklären zumal das mit dem Problem von OO oder den Versionsunterschieden AO ode LO überhaupt nix zu tun hat!

Die exakten Monitorgrößen mögen ja vielleicht staunenswert sein, helfen aber Zeiten dymamischer Displaygrößen auch nicht viel weiter. Es geht eben um das Wörtchen "dynamisch"! Aber bitte: Ich hätte z.B. anzubieten 680 × 1050, 2560 x 1440, 1920 x 1080 und noch andere - wem nützt diese Info? ... und wenn ich morgen dann noch einen anderen Bildschirm kaufe, der wieder eine ander Auflösung hat??

Der Ansatz von "mikele" ist schon richtig: Es geht um die dynamisch angepasste Größe des Dialog-Fensters die von OO leider nicht proportional zur Schriftgröße berechnet wird (bzw. umgekehrt). Ergebnis: Wenn der Anwender-Bildschirm kleiner ist als der Entwickler-Bildschirm, dann wird zwar das Dialogfenster einschließlich seiner enthaltenen Controlls verkleinert (= passt sich dem Bilschirm an) aber die Orginal-Schriftgröße bleibt erhalten. Leider kann man bei OO die Schrift nicht wie bei HTML/CSS als relativen Wert (z.B. in Prozent oder als "em", "rem") definieren.

DAS ist also das Kernproblem, das es hier zu lösen gilt!!

Das von "mikele" beigelegte Skript geht folgenden Ansatz: Zur Laufzeit die Abmessungen des gesamten Dialogfensters einschließlich enthaltener Inhalte dynamisch ändern. Im Script sind zwar z.Zt. noch feste Werte angegeben, aber diese müsste man abhängig von der vorher - ebenfalls scriptseitig - zu ermittelnden Bildschirmgröße dynamisch ändern - das könnte dann klappen. Außerdem muß auch noch die X/Y-Anordnung der Conrolls proportional verschoben werden. Hier muß also noch ein bißchen nachgebessert werden aber dieser Weg scheint mir z.Z. die einzige Lösung zu sein. Das wäre also "the state of the art" - bis jetzt.

Sobald ich die fehlende X/Y-Korrektur in mikeles Skript eingebaut und alles mal an meinen diversen Monitoren getestet habe, werde ich es gerne an dieser Stelle veröffentlichen.

Vielleicht hat aber noch Jemand eine bessere Idee oder andere Vorschläge?

Bis dahin - Gruße aus Dresden:
ejomi

balu
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von balu » Mi 12. Sep 2018, 16:10

Hallo ejomi,
DPI ist lediglich die engl. Abkürzung für "Dots per Inch", auf Deutsch "Pixel pro Zoll"
Klar doch! In Fedora Linux steht (stand) nun mal halt das was ich verlinkt hatte. Und der Menüeintrag war nun mal hat: Auflösung Pixel pro Zoll, was man aber nicht in Windows so findet. Aber Schwamm drüber.


[...] aber die Orginal-Schriftgröße bleibt erhalten. Leider kann man bei OO die Schrift nicht wie bei HTML/CSS als relativen Wert (z.B. in Prozent oder als "em", "rem") definieren.
Tja, wenn nur die Dialoggröße geändert wird, ist das ja klar das die Schriftgröße sich nicht anpasst. Denn schließlich ist die Schrift, nicht nur die Größe, ein "Nebenelement" von z.B. einer Listbox oder dem Dialog. Das heißt, sie wird nicht wie bei Formatvorlagen in Calc vererbt.

Du musst also jedes einzelne Element, egal ob ein Textfeld, eine Listbox, die Schrift, oder was auch immer, einzeln und seperat behandeln. Hast du z.B. 15 Textfelder mit einer bestimmten Schrift, so musst Du halt jede Schrift in jedem Textfeld einzeln bearbeiten, egal ob größer, fetter, unterstrichen, oder sonstwas. Die Schriftgröße muss halt mittels eines bestimmten Wertes angepasst werden. Da frührt kein Weg dran vorbei.

Änderst Du die Größe des Dialogs, musst Du jedes einzelne Element anschließend auch per Makro ändern lassen.


Mikele hat dir den Weg gezeigt wie man welche Werte ermitteln kann, und ich hatte schon in meinem ersten Beitrag eine Beispieldatei für einen "Laufzeitdialog" angehängt. Wenn Du nun beides miteinander kombinierst, dann erreichst Du dadurch dein Ziel.



Gruß
balu

ejomi
Beiträge: 6
Registriert: Mo 23. Jul 2012, 17:16

Re: Makro-Dialoge bei unterschidl. Bildschirm-Auflösungen

Beitrag von ejomi » Di 18. Sep 2018, 23:11

Sooo - nach einigem Herumprobieren mit diversen Monitoren hat sich die Annahme von "mikele" bestätigt:
ich glaube, dass die Auflösung nicht das eigentliche Problem ist.
... so ist es! Die Dialogfenster passen sich nämlich normalerweise doch ganz gut den unterschiedlichen Bildschirmauflösungen an - Voraussetzung: man beläßt die System-Standardschriftgröße im "Normalzustand"!!

Ha - und genau da liegt die Fußfalle: Ich hatte nämlich übersehen, dass ich bei meinem Entwickler-PC wegen meines großen Bildschirms die Standard-Schriftgröße unter Windows (zu finden irgendwo verschachtelt unter den Display-Einstellungen) vergrößert hatte. Entwirft man nun das Dialogfenster mit einer solchen vergößerten Schrift (wie in meinem Fall), dann passen die Texte bei anderen PCs mit normaler Standardschriftgöße nicht mehr - und genau das was das Problem!
Softwareseitig ist - so mein bisheriger Kenntnisstand - eine Veränderung der Standardtextgröße nicht ermittelbar. Fazit: Man muß dem Benutzer eine Option anbieten, das Dialogfenster selbst per Umschalter in eine vergrößerte oder verkleinerte Version zu ändern.

Die von "mikele" vorgeschlagene softwareseitige Skalierung aller Controls ist relativ aufwendig und rechenintensiv (erkennbar an der langsamen Reaktionszeit des Skripts). Dagegen ist aber die Beschreibung eines Dialogfensters unter Star-Basic intern durch XML sehr kompakt realisiert und jagt deshalb auch erheblich schnelller durch den Interpreter als ein komplexer Macro-Code. Deshalb: Man baut 2 Dialogfenster unter unterschiedlichen Bedingungen (hier mit Standardschriften "Normal" und "Vergrößert"). Dem Benutzer überläßt man eine Auswahl, die dann aber nicht ein Referenz-Dialogfenster mühsam per Skript skaliert, sondern lediglich intern die Pfade zu den passend vorgefertigten Dialog-Libraries Nr.1 oder Nr.2 ändert - das geht am schnellsten und ist letztlich auch vom Skript-Umfang am geringsten.

Das also wäre mein vorläufiges Workarround solange keine besseren Vorschläge kommen. Deshalb setze ich diesen Thread heute auf "gelöst".

Vielen Dank für Eure Mithilfe - bis zum nächsten Mal: ejomi

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