oFont:height / oFont:width

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

oFont:height / oFont:width

Beitrag von AUGE_OHR »

hi,

wer kann mir mal den Zusammenhang von oFont:height und oFont:width
mal näher erklären. Ich komme, durch ausprobieren, auf solche Werte :

oFont:height := 60 ; oFont:width := 26
oFont:height := 30 ; oFont:width := 16

kann man das nicht irgendwie "berechnen" wie :width sein muss
wenn man :height vorgibt ?
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Jimmy,

je nach Schriftart sind da andere Werte drin (PIXEL), je nach Definition des Zeichensatzes. Du solltest den Font über seine PUNKT Größe und den Namen erzeugen und dann kannst du diese Werte abfragen. Sie zu setzen dürfte wohl keinen Sinn machen, da entweder ein 'ähnlicher' Font (als anders) gewählt wird, oder ein bestehender Font 'umgebogen' würde, was nicht schön aussieht.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
brandelh hat geschrieben: Du solltest den Font über seine PUNKT Größe und den Namen erzeugen und dann kannst du diese Werte abfragen. Sie zu setzen dürfte wohl keinen Sinn machen, da entweder ein 'ähnlicher' Font (als anders) gewählt wird, oder ein bestehender Font 'umgebogen' würde, was nicht schön aussieht.
ja genau deshalb frage ich. "Normal" wäre ja

Code: Alles auswählen

       {{ XBP_PP_COMPOUNDNAME, "28.Arial" }} 

oder

      // Font-Objekt erzeugen
      oFont := XbpFont():new():create( "28.Arial.normal" )
nun will ich aber noch die :Codepage setzten

Code: Alles auswählen

      oFont := XbpFont():new()
      oFont:familyName  := "Courier New" // Font beschreiben
      oFont:height      := 38
      IF ID_CHINA                         // chinesisches OS
         oFont:Codepage := 186      // baltisch ?
      ENDIF
      oFont:create()                      // Font erzeugen
      nSize := oFont:width            // wide feststellen
hier bekomme ich z.b. für nSize = 20 raus. Allerdings gibt es dann wieder
andere :height Werte die mit dem nSize "nicht gut aussehen", also muss
ich dann doch wieder mit :width rummachen bis es "passt".
Muss ich mir erst eine "Tabelle" mit allen "default" Werten für :width
machen oder kann man das doch irgendwie "berechnen" ?
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jimmy,
ich habe das bei mir im Verhältnis 5:2 gesetzt:

Code: Alles auswählen

oFont2:height :=  hundeschrg * 5
oFont2:width :=  hundeschrg * 2
- wobei bei mir hundeschrg den Wert 6, 8 oder 14 haben kann...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

Ich hab auch im Forum deinen ganzen Code gefunden und frage mich:

Code: Alles auswählen

oFont := XbpFont():new():create( "28.Arial" )

exakt ==

oFont         := XbpFont():New()
oFont:familyName  := "Arial"
oFont:nominalPointSize := 28
oFont:create()                      
ist ? Wenn ja, wie verhält sich das dann zu oFont:height bzw oFont:width ?

... muss/soll man dann beide "jedesmal vor" :create auf 0 setzten wie ich
es aus der Hilfe verstehe ?
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jimmy,
eigentlich würde ich Deine erste Variante der zweiten vorziehen - aus Gründen der Einfachheit.
Das auf 0 setzen von height und width kann man sicherlich ignorieren - Du legst ja ein Objekt neu an!
In meinem o.g. Beispiel konnte ich das jedoch nicht so machen, wie Du vorschlägst, da die Leute freie Wahl haben sollten (fett, kursiv, gemischt,...) und die Klartextbezeichnungen zu unterschiedlich sind - je nach Sprache des Betriebssystems (heißt das dann jetzt "Arial bold" oder "Arial fett" oder "Arial bold italic" oder...) - nur darum hatte ich das dann so gelöst!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten