Wie mit "ma"-Einheiten umgehen?
Verfasst: Mo, 23.08.2004 16:53
Die Größe von Basic-Dialogen und darauf enthaltenen Steuerelementen sowie die Koordinaten selbiger werden in "ma"-Einheiten angegeben. Im SO 7 Programmierhandbuch heißt es dazu (Kapitel 11 „Dialoge“ ; Seite 187):
„...Um eine möglichst hohe Plattformunabhängigkeit zu gewährleisten verwendet StarOffice zur Angabe von Positionen und Größen innerhalb von Dialogen die interne Einheit Namens Map AppFont (ma). Ein ma entspricht einem Achtel der durchschnittlichen Höhe eines Zeichens aus dem im Betriebssystem definierten Systemfonts sowie einem Viertel der Breite eines entsprechenden Zeichens. Durch die Verwendung von ma-Einheiten stellt StarOffice sicher, dass ein Dialog trotz unterschiedlichen Systemen und bei verschiedenen Systemeinstellungen stets gleich erscheint....“
Da ich bisher nur auf Windows-Computern (deren Desktopeinstellungen alle nach meinen Vorlieben angepaßt waren und gleich) Basic-Dialoge erstellt hatte war mir die Verwendung dieser "ma"-Einheiten nie richtig bewußt. Ich stelle jetzt fest das von mir sorgfältig erstellte Dialoge auf anderen Systemen völlig verändert aussehen. Problematisch ist das:
(a)diese Größenskallierung nicht proportional erfolgt
Beispiel:
Ein StarBasic-Dialog ist 278x242 ma-Einheiten groß, für folgende Windows-Desktopeinstellungen ergibt sich hieraus (Breite in Pixel/Höhe in Pixel/Verhältnis Höhe-Breite)
'Windows klassisch' -->(499/418/1,194)
'Flieder' -->(499/422/1,182)
"meine" Einstellungen -->(597/451/1,324)
(b)die Umrechnung von "ma" in Pixel nicht ganzzahlig erfolgen kann
Beispiel:
auf meinem Windowssystem ergibt ein Steuerelement folgende Größen:
100x100 [ma] = 212x174 [Pixel]
101x101 [ma] = 214x176 [Pixel]
jedoch
110x110 [ma] = 233x192 [Pixel]
Da die Aussage des Programmierhandbuches suggeriert das es sich bei den "ma"-Einheiten um ein Feature handelt:
Kann mir jemand sagen worin dieses (praktischerseits) besteht?
Wie kann ich das Ganze handhabbar machen?
(Ich will 4 Bilder auf einem Basic-Dialog anordnen das sie genau aneinander grenzen und nicht skalliert sind, wie realisiere ich das für verschiedene vorher unbekannte Einstellungen des Zielsystems?)
Gruß
Stephan
„...Um eine möglichst hohe Plattformunabhängigkeit zu gewährleisten verwendet StarOffice zur Angabe von Positionen und Größen innerhalb von Dialogen die interne Einheit Namens Map AppFont (ma). Ein ma entspricht einem Achtel der durchschnittlichen Höhe eines Zeichens aus dem im Betriebssystem definierten Systemfonts sowie einem Viertel der Breite eines entsprechenden Zeichens. Durch die Verwendung von ma-Einheiten stellt StarOffice sicher, dass ein Dialog trotz unterschiedlichen Systemen und bei verschiedenen Systemeinstellungen stets gleich erscheint....“
Da ich bisher nur auf Windows-Computern (deren Desktopeinstellungen alle nach meinen Vorlieben angepaßt waren und gleich) Basic-Dialoge erstellt hatte war mir die Verwendung dieser "ma"-Einheiten nie richtig bewußt. Ich stelle jetzt fest das von mir sorgfältig erstellte Dialoge auf anderen Systemen völlig verändert aussehen. Problematisch ist das:
(a)diese Größenskallierung nicht proportional erfolgt
Beispiel:
Ein StarBasic-Dialog ist 278x242 ma-Einheiten groß, für folgende Windows-Desktopeinstellungen ergibt sich hieraus (Breite in Pixel/Höhe in Pixel/Verhältnis Höhe-Breite)
'Windows klassisch' -->(499/418/1,194)
'Flieder' -->(499/422/1,182)
"meine" Einstellungen -->(597/451/1,324)
(b)die Umrechnung von "ma" in Pixel nicht ganzzahlig erfolgen kann
Beispiel:
auf meinem Windowssystem ergibt ein Steuerelement folgende Größen:
100x100 [ma] = 212x174 [Pixel]
101x101 [ma] = 214x176 [Pixel]
jedoch
110x110 [ma] = 233x192 [Pixel]
Da die Aussage des Programmierhandbuches suggeriert das es sich bei den "ma"-Einheiten um ein Feature handelt:
Kann mir jemand sagen worin dieses (praktischerseits) besteht?
Wie kann ich das Ganze handhabbar machen?
(Ich will 4 Bilder auf einem Basic-Dialog anordnen das sie genau aneinander grenzen und nicht skalliert sind, wie realisiere ich das für verschiedene vorher unbekannte Einstellungen des Zielsystems?)
Gruß
Stephan