Seite 1 von 1

setFontCompoundName()

Verfasst: Mi, 13. Dez 2006 18:26
von AUGE_OHR
hi,

ich habe ein Etiketten Modul was auf einem "normalen" Drucker keine
Probleme macht. Nun hab ich eine FRITZ!Card statt TELES installiert
und bekomme beim "FAX" Drucker Probleme :

oError:args :
-> VALTYPE: O CLASS: XbpFont
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Methode ist f

Verfasst: Mi, 13. Dez 2006 18:40
von Martin Altmann
Hallo Jimmy,
ich nehme mal an, es handelt sich nicht um ein XbpCrt()-Window, oder?
Wenn doch, trifft der folgende Hinweis in der Hilfe zu:
Online Hilfe hat geschrieben:Hinweis: Der Zeichensatz, der in <oXbpFont> angegeben ist, muß ein Nicht-Proportional-Font, d.h. ein Zeichensatz mit fester Breite, sein, andernfalls wird ein Laufzeitfehler ausgelöst. Um Grafikkommandos wie zum Beispiel @..BOX in XbpCrt-Fenstern verwenden zu können, muss der Zeichensatz die dafür benötigten Spezialzeichen enthalten. Dies ist normalerweise nur bei den sogenannten OEM-Fonts der Fall.
Viele Grüße,
Martin

Verfasst: Mi, 13. Dez 2006 18:52
von Martin Altmann
Ähhh,
ich sollte aufmerksamer lesen: XbpFont() kennt keine Methode mit dem Namen SetFontCompoundName()!
Nimm mal :compoundName, dann klappt es sicherlich auch...

Viele Grüße,
Martin

Verfasst: Mi, 13. Dez 2006 23:56
von AUGE_OHR
hi,
Jimmy hat geschrieben: Wie schon gesagt, er "druckt" auf einem "echten" Drucker aber nicht
mehr auf dem FRITZ! "FAX" Drucker ...
Ich hätte schwören können das er auf einem "echten" Drucker druckt,
aber das tut er (auch) nicht mehr. Dabei hab ich doch nichts verändert ...

Also das tut er nicht (mehr) :

Code: Alles auswählen

oFont := XbpFont():new():create( "28.Arial.normal" )
MSGBOX(oFont:setFontCompoundName())
Martin Altmann hat geschrieben: ich nehme mal an, es handelt sich nicht um ein XbpCrt()-Window, oder?
Nope, es handelt sich um einen "Druck".

Was will ich überhaupt :
In der DO CASE hab ich die "Schrift" gewählt. Für die "Überschrift" will
ich nun der "gewählte" Schrift aber in "BOLD" haben.
Martin Altmann hat geschrieben: Nimm mal :compoundName, dann klappt es sicherlich auch
mit :compoundName kann ich aber nur eine Font setzen, nicht abfragen.

gruss by OHR
Jimmy

Verfasst: Do, 14. Dez 2006 5:08
von AUGE_OHR
moin,
AUGE_OHR hat geschrieben:
Martin Altmann hat geschrieben: Nimm mal :compoundName, dann klappt es sicherlich auch
mit :compoundName kann ich aber nur eine Font setzen, nicht abfragen.
Quatsch, mit :compoundName bekomme ich natürlich den Namen des Font.

Code: Alles auswählen

oBold    := STRTRAN(oFont:setFontCompoundName(),"normal","")+FONT_STYLE_BOLD
GraSetFont( oPrinter, oBold )
auch das kann nicht so funktionieren den :setFontCompoundName()
würde ja einen String zurück geben und kein Font Object.

... irgendwie muss ich es geträumt haben das "die" Version so lief #-o

gruss by OHR
Jimmy

Verfasst: Do, 14. Dez 2006 8:13
von Martin Altmann
Hallo Jimmy,
warum gehst Du nicht den einfacheren Weg und bist dann Sprachenunabhängig?
Wenn Du ein XbpFont()-Objekt hast, dann schau Dir doch mal :weightClass (und :bold) und :italic an - mit diesen Properties kannst Du doch die gewünschten Einstellungen bequem vornehmen.

Viele Grüße,
Martin

Verfasst: Do, 14. Dez 2006 8:26
von brandelh
Hi,

ich vermeide das Ändern von Fonts im Programm.
Ich setzte die benötigten sehr früh und halte sie vor.
Im Programm wechsle ich dann vom einen zum anderen.
Dies hätte auch den Vorteil, dass der Anwender die zentral vorgehaltenen Fonts leicht mit dem Fontauswahldialog durch andere ersetzen könnte, falls ich jemals diese Option zulassen wollte ;-)

Nützlich könnte je nach Situation auch die Methode LIST() sein.
So könnte man grob vorgeben was man will, create() und danach list() aufrufen und im Array das Ergebnis heraussuchen, das am Besten passt (per internem Vergleich der Eigenschaften).
Hierbei ist auch zu Beachten, dass nicht jeder Font für alles zu gebrauchen ist.

Verfasst: Do, 14. Dez 2006 8:33
von Martin Altmann
Hallo Hubert,
brandelh hat geschrieben:Ich setzte die benötigten sehr früh und halte sie vor.
Im Programm wechsle ich dann vom einen zum anderen.
genauso mache ich es im Allgemeinen auch!
Aber trotzdem kann es ja mal sein, dass der Arial in Größe 12 mal in fett und mal in kursiv gebraucht wird - und dann kann man das darüber abfackeln.
Bei meinen Formularen können die Kunden die Schriftart frei wählen. Dann wird diese Schriftart (für jedes ausdruckbare Element in dem Formular) in ihrer Größe (bis zu 3) und ihrem Aussehen (fett, kursiv, beides, weder noch) angepasst - und dies geschieht halt darüber, so dass ich mir in diesem Fall nur ein XbpFont()-Objekt erzeuge und das dann für jedes zu druckende Element vorher anpasse.

Viele Grüße,
Martin

Verfasst: Do, 14. Dez 2006 15:32
von AUGE_OHR
hi,
Martin Altmann hat geschrieben: warum gehst Du nicht den einfacheren Weg und bist dann Sprachenunabhängig?
Wenn Du ein XbpFont()-Objekt hast, dann schau Dir doch
mal :weightClass (und :bold) und :italic an - mit diesen Properties
kannst Du doch die gewünschten Einstellungen bequem vornehmen.
Ja gute Idee.
Hubert hat geschrieben: Ich setzte die benötigten sehr früh und halte sie vor.
Ja das sollte oBOLD eigendlich auch sein ...

danke noch mal für eure Hilfe.
gruss by OHR
Jimmy