In deinem Falle würde ich eine Methoden schreiben, die die ma in pixel umwandeln. Dazu ist es notwendig, dass du die Bildschirmwerte abfragst und daraus deine ma errechnest.
Das war auch mein Gedanke, nur gibt es ebend keine feste Umrechnung zwischen "ma" und Pixel. Genau das ist ja das Problem. Die Größe eines "ma" ist abhängig von der Systemschriftart, die Definition ist wie schon oben genannt:
"...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..."
Um die Größe eines "ma" zu ermitteln muß ich also:
1. den Systemfond ermitteln
2. die durchschnittliche Höhe und Breite eines Zeichens
Bloß wie mache ich das? Ich kann möglicherweise den Namen des Fonts ermitteln, aber wie ist die durchschnittliche Höhe eines Zeichen dieses Fonts?
Auf meinem System kenne ich den Font, aber nicht mal dann weiß ich wie ich "ma" rechnerisch ermitteln soll, da mir ebend unklar ist was die durchschnittliche Höhe aller Zeichen eines Fonts ist.
(Für die angegebenen Werte in meinem ersten post habe ich jeweils einen Screenshot gemacht und dann die Pixel bei 800facher Vergrößerung gezählt.)
Es geht auch nicht um Abweichungen von 1 oder 2 Pixeln, sondern (im Grundsatz) darum das die Skallierung nicht proportional ist, Beispiel:
Auf einem System ist ein BasicDialog 300 Pixel breit und 200 Pixel hoch, ich könnte es rechnerisch beherrschen, wenn auf einem anderen System der selbe Dialog 330 x 220 Pixel groß wäre, das wären dann ebend 10% mehr. Nur ist es so das auf einem anderen System der Dialog z.B. 340 x 210 Pixel groß ist (13,4% breiter aber nur 5% höher), weil auf unterschiedlichen Systemen (mit unterschiedlichen Systemfonds) das Verhältnis von durchschnittlicher Höhe und Breite eines Zeichens des jeweiligen Fonts unterschiedlich ist.
Gruß
Stephan
[quote]In deinem Falle würde ich eine Methoden schreiben, die die ma in pixel umwandeln. Dazu ist es notwendig, dass du die Bildschirmwerte abfragst und daraus deine ma errechnest.[/quote]
Das war auch mein Gedanke, nur gibt es ebend keine feste Umrechnung zwischen "ma" und Pixel. Genau das ist ja das Problem. Die Größe eines "ma" ist abhängig von der Systemschriftart, die Definition ist wie schon oben genannt:
[color=blue][i]"...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..."[/i][/color]
Um die Größe eines "ma" zu ermitteln muß ich also:
1. den Systemfond ermitteln
2. die durchschnittliche Höhe und Breite eines Zeichens
Bloß wie mache ich das? Ich kann möglicherweise den Namen des Fonts ermitteln, aber wie ist die durchschnittliche Höhe eines Zeichen dieses Fonts?
Auf meinem System kenne ich den Font, aber nicht mal dann weiß ich wie ich "ma" rechnerisch ermitteln soll, da mir ebend unklar ist was die durchschnittliche Höhe aller Zeichen eines Fonts ist.
(Für die angegebenen Werte in meinem ersten post habe ich jeweils einen Screenshot gemacht und dann die Pixel bei 800facher Vergrößerung gezählt.)
Es geht auch nicht um Abweichungen von 1 oder 2 Pixeln, sondern (im Grundsatz) darum das die Skallierung nicht proportional ist, Beispiel:
Auf einem System ist ein BasicDialog 300 Pixel breit und 200 Pixel hoch, ich könnte es rechnerisch beherrschen, wenn auf einem anderen System der selbe Dialog 330 x 220 Pixel groß wäre, das wären dann ebend 10% mehr. Nur ist es so das auf einem anderen System der Dialog z.B. 340 x 210 Pixel groß ist (13,4% breiter aber nur 5% höher), weil auf unterschiedlichen Systemen (mit unterschiedlichen Systemfonds) das Verhältnis von durchschnittlicher Höhe und Breite eines Zeichens des jeweiligen Fonts unterschiedlich ist.
Gruß
Stephan