setFontCompoundName()

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

Moderator: Moderatoren

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

setFontCompoundName()

Beitrag 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
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
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 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
: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
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag 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
: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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag 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
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag 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
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
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,
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
: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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag 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.
Zuletzt geändert von brandelh am Do, 14. Dez 2006 16:05, insgesamt 1-mal geändert.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag 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
: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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag 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
Antworten