Hallöle,
die Höhe und Breite von Dialogen und Steuerelementen wird in "ma"-Einheiten gesetzt. Schön, schön - steht im StarOffice Handbuch.
Auch dieser Thread: viewtopic.php?t=1596&highlight=h%F6he+dialog
ist hierzu interessant, hat mir aber nicht wirklich geholfen.
Ein Beispiel:
Soll der Dialog 1024 x 768 Pixel groß sein (Windows Bildschirmauflösung) dann habe ich mit viel, viel probieren gefunden:
1024 : 1,89 = 541,79
1024 x 0,528 = 540,67
768 : 1,94 = 395,87
768 x 0,51 = 391, 68, also Dialog etwa 540 x 392.
Bei 800 x 600 Auflösung stimmt es dann aber irgendwie nicht mehr.
Hat jemand eine Formel zur Umrechnung von Pixel (meinethalben auch Twips) in ma-Einheiten und umgekehrt ?
Gruß
Ralf
Dialog / Steuerelemente - Höhe und Breite
Moderator: Moderatoren
-
- **
- Beiträge: 37
- Registriert: Mo, 13.02.2006 23:55
- Wohnort: Deutschland
Hey Ralf,
Die Ma-Einheiten sind definiert als ein Teil der Größe der Systemstandardschrift (exakte Definition müsste ich nachschalgen). Also nur über diesen Weg kannst du das nachrechnen.
Also, ich probiere das einfach auf verschiedenen Systemen aus und passe manuell an - erscheint mir vom Aufwand geringer. Und dann gibt es natürlich immer eine "optimale" Größe auf einem bestimmten System
Gruss
Thomas
Nein, gibt es nicht. Ein Pixel ist eben niht ein Pixel (14 bzw 15 Twips bei Windows/LInux) und die MA einheiten sollen je gerade Systemunabhängig sein.Hat jemand eine Formel zur Umrechnung von Pixel (meinethalben auch Twips) in ma-Einheiten und umgekehrt ?
Die Ma-Einheiten sind definiert als ein Teil der Größe der Systemstandardschrift (exakte Definition müsste ich nachschalgen). Also nur über diesen Weg kannst du das nachrechnen.
Also, ich probiere das einfach auf verschiedenen Systemen aus und passe manuell an - erscheint mir vom Aufwand geringer. Und dann gibt es natürlich immer eine "optimale" Größe auf einem bestimmten System

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
und warum nicht?Auch dieser Thread: viewtopic.php...6he+dialog
ist hierzu interessant, hat mir aber nicht wirklich geholfen.
Soll der Dialog 1024 Pixel breit sein, kannst Du unter Verwendung des beim genanntenLink geposteten Codes am Schluß ergänzen:
Msgbox nWidthAppFont*1024 / nWidthPixel
Woran scheitert das? (außer an Rundungsfehlern)
Da der Code jedoch die Angaben aus einem nichtsichtbaren Dialog liest, sehe ich keine prinzipiellen Probleme die gelesenen Werte umzurechnen, dem Button zuzuweisen und erneut zu lesen und umzurechnen bis es genau 1024 Pixel sind und erst dann den Dialog sichtbar anzuzeigen.
ja, natürlich kannst Du keine 'starren' Umrechnungfaktoren benutzen sondern mußt diese dynamisch bestimmen. Weder sind die Faktoren systemunabhängig, noch wären Faktoren für Länge unnd Breite gleich, was Deine Rechnung ja zeigt.Ein Beispiel:
Wegen o.g. Rundungsfehler würde ich das also in einer Optimierungsrechnung ermitteln und dann per Code dynamisch setzen.
Da ich bei kurzem Test jedoch sehe das 1024 nach obriger Methode eingestellt sich wohl nicht auf Sowas wie die 'Bruttogröße' bezieht, müßtest Du das ggf. selbst untersuchen.
Nein, das ist nicht zwingend 'schwammig', mir scheint nur das OOo die zwei bzw. drei äußersten Pixel die für die Plastizität des Dialogs sorgen nicht mitrechnet und Du diese selbst berücksichtigen müßtest, denn diese Pixel unterliegen nicht der MA-Einstellung in sofern sie es nicht können, denn es müssen ja immer 2 bzw. 3 Pixel sein, deren Pixelbreite durch die MA-Einheiten nicht beeinflußt werden kann oder anders gesagt wen Du etwas wie 'MA-Pixel' (=1x1 MA) konstatieren würdest wären die nur in Ausnahmefällen quadratisch, Systempixel sind jedoch immer quadratisch.
Hieraus dürfte also ein Teil der Rundungsfehler sich herleiten, da 4 Pixel in Breite und Höhe zwangsweise in ihrem Seitenverhältnis feststehen und deren Einfluß auf die restlichen Pixel von der Anzahl der restlichen Pixel bestimmt ist, er ist bei kleinen Dialogen größer als bei großen.
Obwohl das nun bloß eine Interpretation von mir ist, kann ich hier bei einem kurzen Test nachvollziehen, das es sich die nach o.g. Berechnungsweise gefundene Dialogbreite sich auf die Breite bezieht die die (blaue) Titelleiste einnimmt.
Gruß
Stephan
-
- **
- Beiträge: 37
- Registriert: Mo, 13.02.2006 23:55
- Wohnort: Deutschland
Hallö Toxitom, hallo Stephan,
erst mal danke für Eure umfangreichen Antworten.
Also muss ich entweder im Dialog einen 'versteckten' Button unterbringen und diesen sozusagen als Referenzwert für die Umrechnung des Dialogs und der Steuerelemente verwenden.
Oder ich richte das auf den verschiedenen Monitoren manuell ein, d.h. erstelle 2 inhaltlich gleiche Dialoge unterschiedlicher Größe und verwende dann jeweils den einen oder den anderen.
Wir haben in der Firma nur 17'' und 19'' Monitore und 800er- und 1024er- Bildschirmauflösungen - manuell hält sich damit halbwegs in Grenzen.
Ich probiere jedenfalls beides - man lernt nämlich nie aus.
Gruß
Ralf
erst mal danke für Eure umfangreichen Antworten.

Also muss ich entweder im Dialog einen 'versteckten' Button unterbringen und diesen sozusagen als Referenzwert für die Umrechnung des Dialogs und der Steuerelemente verwenden.
Oder ich richte das auf den verschiedenen Monitoren manuell ein, d.h. erstelle 2 inhaltlich gleiche Dialoge unterschiedlicher Größe und verwende dann jeweils den einen oder den anderen.
Wir haben in der Firma nur 17'' und 19'' Monitore und 800er- und 1024er- Bildschirmauflösungen - manuell hält sich damit halbwegs in Grenzen.
Ich probiere jedenfalls beides - man lernt nämlich nie aus.

Gruß
Ralf