DCPRINT Text senkrecht drucken [ERLEDIGT]
Moderator: Moderatoren
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
DCPRINT Text senkrecht drucken [ERLEDIGT]
Hallo,
kann mir jemand auf die Sprünge helfen, wie ich einen Text vertikal drucken kann ?
kann mir jemand auf die Sprünge helfen, wie ich einen Text vertikal drucken kann ?
Zuletzt geändert von Koverhage am So, 26. Jun 2011 10:42, insgesamt 1-mal geändert.
Gruß
Klaus
Klaus
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: DCPRINT Text senkrecht drucken
gute Frage ... den Drucker auf "quer" zu stellen hilft dir wohl nicht, oder ?Koverhage hat geschrieben:kann mir jemand auf die Sprünge helfen, wie ich einen Text vertikal drucken kann ?
Ich würde die Frage gerne erweitern :
wie drucke ich von rechts oben nach rechts unten und dann die nächste Spalte links wieder von oben nach unten ?
das wäre dann in "alt" Chinesisch wie man es öfter in "Büchern" findet.
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo, Klaus.
DCPRINT ORIENTATION (In der Doku zusammengeschrieben). Soll angeblich auch innerhalb eines Jobs funktionieren.
DCPRINT ORIENTATION (In der Doku zusammengeschrieben). Soll angeblich auch innerhalb eines Jobs funktionieren.
Herzlich,
Tom
Tom
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo Tom,
erstmal Update installieren um die Hilfe (wie auch die von Xbase++) unter Windows 7 anzuzeigen.
DCPRINT ORIENTATION gilt immer nur für eine komplette Seite.
Ich habe aber folgendes Problem:
Ganz normaler Text (horizontal) und eine Balkengrafik, zu der ich links oder rechts daneben einen Text
(vertikal) drucken möchte.
Werde wohl jedes Zeichen (pro Zeile) extra drucken müssen.
erstmal Update installieren um die Hilfe (wie auch die von Xbase++) unter Windows 7 anzuzeigen.
DCPRINT ORIENTATION gilt immer nur für eine komplette Seite.
Ich habe aber folgendes Problem:
Ganz normaler Text (horizontal) und eine Balkengrafik, zu der ich links oder rechts daneben einen Text
(vertikal) drucken möchte.
Werde wohl jedes Zeichen (pro Zeile) extra drucken müssen.
Gruß
Klaus
Klaus
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo, Klaus.
DCPRINT ORIENTATION gilt m.E. auch innerhalb einer Seite, wenn Du kein DCPRINT EJECT auslöst. So steht's auch in der Doku. Mal ausprobiert?
DCPRINT ORIENTATION gilt m.E. auch innerhalb einer Seite, wenn Du kein DCPRINT EJECT auslöst. So steht's auch in der Doku. Mal ausprobiert?
Herzlich,
Tom
Tom
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Denke mal das ist die einzige Möglichkeit
Code: Alles auswählen
static function printvtext(nStartRow, nCol, lFromBottom, cString, cFont)
Local nStringLength := len(cString), i:= 0
if nStringLength > 0
DCPRINT FONT cFont PRINTER oPrinter
for i:=1 to nStringLength
@ nStartRow, nCol DCPRINT say cString[i] PRINTER oPrinter
if lFromBottom
nStartRow--
else
nStartRow++
endif
next
endif
return NIL
Gruß
Klaus
Klaus
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo Tom,
folgendes steht bei mir in der Hilfe.
This command may be used only after a DCPRINT ENDPAGE and before
a DCPRINT STARTPAGE.
Auch das Beispiel dazu ist immer für eine ganze Seite.
Aber ich werde das mal probieren, danke.
folgendes steht bei mir in der Hilfe.
This command may be used only after a DCPRINT ENDPAGE and before
a DCPRINT STARTPAGE.
Auch das Beispiel dazu ist immer für eine ganze Seite.
Aber ich werde das mal probieren, danke.
Gruß
Klaus
Klaus
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Die Funktion printvtext, die ich gepostet habe ist nicht das was ich möchte.
Sieht bescheiden aus.
Denke mal das geht nur mit GraStringAt, aber geht das auch wenn ich sonst nur DCPRINT
benutze ?
Oder ich erstelle für die Texte eine Grafik und drucke die.
Sieht bescheiden aus.
Denke mal das geht nur mit GraStringAt, aber geht das auch wenn ich sonst nur DCPRINT
benutze ?
Oder ich erstelle für die Texte eine Grafik und drucke die.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo Klaus,
ich drehe in meiner Druckerklasse die Schriften und das müsste mit express auch gehen.
Du mußt nur den PS ermitteln und an die GraFunktion übergeben. Dort zuvor die Schrift gedreht werden.
Ich schneide mal aus der Druckerklasse die passenden Pasagen aus
wie man GraSetAttrStr... nutzt musst du in der Hilfe nachsehen.
Ich meine dort steht auch ein passables Beispiel.
ich drehe in meiner Druckerklasse die Schriften und das müsste mit express auch gehen.
Du mußt nur den PS ermitteln und an die GraFunktion übergeben. Dort zuvor die Schrift gedreht werden.
Ich schneide mal aus der Druckerklasse die passenden Pasagen aus
Code: Alles auswählen
aAttribNeu := {}
...
if ! IsNil(nDrehen)
aadd(aAttribNeu, { GRA_AS_ANGLE , HbGradToXppArray(nDrehen,100) } )
endif
if ! IsNil(nFarbe)
aAltColor := GraSetColor(::oPS,nFarbe) // So nur den Fordergrund bestimmen - only foreground color
endif
if ! Empty( aAttribNeu )
aAltAttr := ::SetAttrString( aAttribNeu )
endif
...
GraStringAt(::oPS, aPos, cTxt )
...
*-------------------------------------------------------------
METHOD _HBPrinter:SetAttrString( aAttribNeu )
local aAttrib, aAttribAlt
aAttrib := Array( GRA_AS_COUNT )
aeval(aAttribNeu,{|aAttNeuWert| aAttrib[aAttNeuWert[1]] := aAttNeuWert[2] } )
aAttribAlt := GraSetAttrString( ::oPS, aAttrib )
return aAttribAlt
*----------------------------------------------------------
function HbGradToXppArray(nDrehen,nFaktor) // noch nicht perfekt ########### prüfen !!!"
local nX, nY, aCosSin, nDrehenInt
DEFAULT nFaktor TO 1 // Werte zwischen -1 und 1, für Ausgabe in Bildpunkten sind diese Werte zu klein
// über Faktor kann die Länge bestimmt werden: 1 = 1/10mm, 10 = 1 mm etc.
// Valuerange is -1 to 1, for printtext etc. are the values to low
// the length could be defined with nFaktor: 1 = 1/10mm, 10 = 1 mm etc.
aCosSin := { {1.0000000000000000,0.0000000000000000} , ; // 0 Grad -> nDrehenInt+1 -> 1. Element
{0.9998476951563913,0.0174524064372835} , ; // 1 Grad -> nDrehenInt+1 -> 2. Element
{0.9993908270190958,0.0348994967025010} , ;
{0.9986295347545739,0.0523359562429438} , ;
{0.9975640502598243,0.0697564737441253} , ;
{0.9961946980917455,0.0871557427476582} , ; // Falls jemand eine bessere Funktion weiß, bitte mitteilen.
{0.9945218953682733,0.1045284632676535} , ; // if someone knows a better (fast) way, let me know.
{0.9925461516413220,0.1218693434051475} , ;
{0.9902680687415704,0.1391731009600654} , ;
{0.9876883405951378,0.1564344650402309} , ;
{0.9848077530122080,0.1736481776669303} , ;
{0.9816271834476640,0.1908089953765448} , ;
{0.9781476007338058,0.2079116908177593} , ;
{0.9743700647852353,0.2249510543438650} , ;
{0.9702957262759965,0.2419218955996677} , ;
{0.9659258262890683,0.2588190451025208} , ;
{0.9612616959383189,0.2756373558169992} , ;
{0.9563047559630355,0.2923717047227367} , ;
{0.9510565162951535,0.3090169943749474} , ;
{0.9455185755993169,0.3255681544571567} , ;
{0.9396926207859084,0.3420201433256687} , ;
{0.9335804264972018,0.3583679495453003} , ;
{0.9271838545667874,0.3746065934159120} , ;
{0.9205048534524404,0.3907311284892738} , ;
{0.9135454576426009,0.4067366430758001} , ;
{0.9063077870366499,0.4226182617406994} , ;
{0.8987940462991670,0.4383711467890774} , ;
{0.8910065241883679,0.4539904997395468} , ;
{0.8829475928589270,0.4694715627858908} , ;
{0.8746197071393958,0.4848096202463371} , ;
{0.8660254037844388,0.4999999999999999} , ;
{0.8571673007021124,0.5150380749100541} , ;
{0.8480480961564260,0.5299192642332049} , ;
{0.8386705679454240,0.5446390350150271} , ;
{0.8290375725550418,0.5591929034707468} , ;
{0.8191520442889918,0.5735764363510460} , ;
{0.8090169943749475,0.5877852522924731} , ;
{0.7986355100472929,0.6018150231520483} , ;
{0.7880107536067219,0.6156614753256583} , ;
{0.7771459614569709,0.6293203910498374} , ;
{0.7660444431189780,0.6427876096865393} , ;
{0.7547095802227720,0.6560590289905073} , ;
{0.7431448254773943,0.6691306063588583} , ;
{0.7313537016191706,0.6819983600624985} , ;
{0.7193398003386513,0.6946583704589973} , ;
{0.7071067811865476,0.7071067811865475} , ;
{0.6946583704589973,0.7193398003386511} , ;
{0.6819983600624985,0.7313537016191705} , ;
{0.6691306063588583,0.7431448254773941} , ;
{0.6560590289905073,0.7547095802227720} , ;
{0.6427876096865394,0.7660444431189780} , ;
{0.6293203910498375,0.7771459614569709} , ;
{0.6156614753256583,0.7880107536067219} , ;
{0.6018150231520484,0.7986355100472929} , ;
{0.5877852522924731,0.8090169943749475} , ;
{0.5735764363510461,0.8191520442889918} , ;
{0.5591929034707468,0.8290375725550418} , ;
{0.5446390350150272,0.8386705679454240} , ;
{0.5299192642332049,0.8480480961564260} , ;
{0.5150380749100544,0.8571673007021123} , ;
{0.5000000000000001,0.8660254037844386} , ;
{0.4848096202463371,0.8746197071393958} , ;
{0.4694715627858909,0.8829475928589269} , ;
{0.4539904997395468,0.8910065241883678} , ;
{0.4383711467890774,0.8987940462991670} , ;
{0.4226182617406994,0.9063077870366499} , ;
{0.4067366430758002,0.9135454576426009} , ;
{0.3907311284892737,0.9205048534524404} , ;
{0.3746065934159122,0.9271838545667874} , ;
{0.3583679495453004,0.9335804264972018} , ;
{0.3420201433256688,0.9396926207859084} , ;
{0.3255681544571568,0.9455185755993168} , ;
{0.3090169943749474,0.9510565162951535} , ;
{0.2923717047227368,0.9563047559630354} , ;
{0.2756373558169992,0.9612616959383189} , ;
{0.2588190451025208,0.9659258262890683} , ;
{0.2419218955996677,0.9702957262759965} , ;
{0.2249510543438652,0.9743700647852353} , ;
{0.2079116908177595,0.9781476007338056} , ;
{0.1908089953765449,0.9816271834476640} , ;
{0.1736481776669304,0.9848077530122080} , ;
{0.1564344650402309,0.9876883405951378} , ;
{0.1391731009600655,0.9902680687415704} , ;
{0.1218693434051475,0.9925461516413220} , ;
{0.1045284632676535,0.9945218953682733} , ;
{0.0871557427476581,0.9961946980917455} , ;
{0.0697564737441255,0.9975640502598243} , ;
{0.0523359562429440,0.9986295347545739} , ;
{0.0348994967025011,0.9993908270190958} , ;
{0.0174524064372836,0.9998476951563913} , ;
{0.0000000000000000,1.0000000000000000} }
nDrehenInt := int(nDrehen) // 23.123 -> aCosSin[23, X/Y ]
do case
case nDrehenInt >= 0 .and. nDrehenInt <= 90
nX := aCosSin[nDrehenInt+1,1]
nY := aCosSin[nDrehenInt+1,2]
case nDrehenInt > 90 .and. nDrehenInt <=180
nDrehenInt := 180-nDrehenInt
nX := aCosSin[nDrehenInt+1,1] * -1
nY := aCosSin[nDrehenInt+1,2]
case nDrehenInt > 180 .and. nDrehenInt<=270
nDrehenInt -= 180
nX := aCosSin[nDrehenInt+1,1] * -1
nY := aCosSin[nDrehenInt+1,2] * -1
case nDrehenInt > 270 .and. nDrehenInt<=360
nDrehenInt := 360-nDrehenInt
nX := aCosSin[nDrehenInt+1,1]
nY := aCosSin[nDrehenInt+1,2] * -1
endcase
return {nX*nFaktor,nY*nFaktor}
Ich meine dort steht auch ein passables Beispiel.
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo Hubert,
auf den ersten Bick ist mir das zu hoch.
Werde mal schauen, wie ich an den PS drankomme und dann
versuchen das umzusetzen.
Danke
auf den ersten Bick ist mir das zu hoch.
Werde mal schauen, wie ich an den PS drankomme und dann
versuchen das umzusetzen.
Danke
Gruß
Klaus
Klaus
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Moin Klaus,
was für ein senkrecht meinst Du denn eigentlich genau?
Den Text um 90° nach links gekippt (also die Buchstaben auf der Seite liegend - man muss den Kopf auf die Schulter legen, um zu lesen)?
Oder von oben nach unten senkrecht verlaufend (wie Jimmy das meint, die Reihe läuft von oben nach unten, die Buchstaben stehen aber senkrecht)?
Viele Grüße,
Martin
was für ein senkrecht meinst Du denn eigentlich genau?
Den Text um 90° nach links gekippt (also die Buchstaben auf der Seite liegend - man muss den Kopf auf die Schulter legen, um zu lesen)?
Oder von oben nach unten senkrecht verlaufend (wie Jimmy das meint, die Reihe läuft von oben nach unten, die Buchstaben stehen aber senkrecht)?
Viele Grüße,
Martin
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.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo,
Klaus will die Schrift um 90 oder 270 Grad drehen, ich mache sowas bei uns im Büro um den Formularnamen in 8.Arial im linken Seitenrand parallel zur Seitenkante zu drucken.
Ich habe mal aus der Hilfe die Befehle zusammengesucht. Das eXpress++ Drucker PS weiß ich aber nicht wie du das bekommst.
oEPS steht hier für den Express Presentation Space der von DCPRINT verwendet wird.
Du könntest mit /P compilieren und nachsehen, was aus DCPRINT wird.
Irgendwie muss es ja auch einen XbpPrinter() Objekt verwenden, und dieses braucht einen PS ...
Klaus will die Schrift um 90 oder 270 Grad drehen, ich mache sowas bei uns im Büro um den Formularnamen in 8.Arial im linken Seitenrand parallel zur Seitenkante zu drucken.
Ich habe mal aus der Hilfe die Befehle zusammengesucht. Das eXpress++ Drucker PS weiß ich aber nicht wie du das bekommst.
Code: Alles auswählen
local aAttr, aOldAttr, oEPS, nDrehen
...
nDrehen := 90 // oder 270
aAttr := ARRAY( GRA_AS_COUNT ) // ein Array für die Schriftänderung (drehen etc.)
aAttr [ GRA_AS_ANGLE ] := HbGradToXppArray(nDrehen,100)
aOldAttr := GraSetAttrString( oEPS , aAttr )
GraStringAt( oEPS , {10,250}, oFont:compoundName )
// zurücksetzen
GraSetAttrString( oEPS , aOldAttr )
*----------------------------------------------------------
function HbGradToXppArray(nDrehen,nFaktor) // noch nicht perfekt ########### prüfen !!!"
local nX, nY, aCosSin, nDrehenInt
DEFAULT nFaktor TO 1 // Werte zwischen -1 und 1, für Ausgabe in Bildpunkten sind diese Werte zu klein
// über Faktor kann die Länge bestimmt werden: 1 = 1/10mm, 10 = 1 mm etc.
// Valuerange is -1 to 1, for printtext etc. are the values to low
// the length could be defined with nFaktor: 1 = 1/10mm, 10 = 1 mm etc.
aCosSin := { {1.0000000000000000,0.0000000000000000} , ; // 0 Grad -> nDrehenInt+1 -> 1. Element
{0.9998476951563913,0.0174524064372835} , ; // 1 Grad -> nDrehenInt+1 -> 2. Element
{0.9993908270190958,0.0348994967025010} , ;
{0.9986295347545739,0.0523359562429438} , ;
{0.9975640502598243,0.0697564737441253} , ;
{0.9961946980917455,0.0871557427476582} , ; // Falls jemand eine bessere Funktion weiß, bitte mitteilen.
{0.9945218953682733,0.1045284632676535} , ; // if someone knows a better (fast) way, let me know.
{0.9925461516413220,0.1218693434051475} , ;
{0.9902680687415704,0.1391731009600654} , ;
{0.9876883405951378,0.1564344650402309} , ;
{0.9848077530122080,0.1736481776669303} , ;
{0.9816271834476640,0.1908089953765448} , ;
{0.9781476007338058,0.2079116908177593} , ;
{0.9743700647852353,0.2249510543438650} , ;
{0.9702957262759965,0.2419218955996677} , ;
{0.9659258262890683,0.2588190451025208} , ;
{0.9612616959383189,0.2756373558169992} , ;
{0.9563047559630355,0.2923717047227367} , ;
{0.9510565162951535,0.3090169943749474} , ;
{0.9455185755993169,0.3255681544571567} , ;
{0.9396926207859084,0.3420201433256687} , ;
{0.9335804264972018,0.3583679495453003} , ;
{0.9271838545667874,0.3746065934159120} , ;
{0.9205048534524404,0.3907311284892738} , ;
{0.9135454576426009,0.4067366430758001} , ;
{0.9063077870366499,0.4226182617406994} , ;
{0.8987940462991670,0.4383711467890774} , ;
{0.8910065241883679,0.4539904997395468} , ;
{0.8829475928589270,0.4694715627858908} , ;
{0.8746197071393958,0.4848096202463371} , ;
{0.8660254037844388,0.4999999999999999} , ;
{0.8571673007021124,0.5150380749100541} , ;
{0.8480480961564260,0.5299192642332049} , ;
{0.8386705679454240,0.5446390350150271} , ;
{0.8290375725550418,0.5591929034707468} , ;
{0.8191520442889918,0.5735764363510460} , ;
{0.8090169943749475,0.5877852522924731} , ;
{0.7986355100472929,0.6018150231520483} , ;
{0.7880107536067219,0.6156614753256583} , ;
{0.7771459614569709,0.6293203910498374} , ;
{0.7660444431189780,0.6427876096865393} , ;
{0.7547095802227720,0.6560590289905073} , ;
{0.7431448254773943,0.6691306063588583} , ;
{0.7313537016191706,0.6819983600624985} , ;
{0.7193398003386513,0.6946583704589973} , ;
{0.7071067811865476,0.7071067811865475} , ;
{0.6946583704589973,0.7193398003386511} , ;
{0.6819983600624985,0.7313537016191705} , ;
{0.6691306063588583,0.7431448254773941} , ;
{0.6560590289905073,0.7547095802227720} , ;
{0.6427876096865394,0.7660444431189780} , ;
{0.6293203910498375,0.7771459614569709} , ;
{0.6156614753256583,0.7880107536067219} , ;
{0.6018150231520484,0.7986355100472929} , ;
{0.5877852522924731,0.8090169943749475} , ;
{0.5735764363510461,0.8191520442889918} , ;
{0.5591929034707468,0.8290375725550418} , ;
{0.5446390350150272,0.8386705679454240} , ;
{0.5299192642332049,0.8480480961564260} , ;
{0.5150380749100544,0.8571673007021123} , ;
{0.5000000000000001,0.8660254037844386} , ;
{0.4848096202463371,0.8746197071393958} , ;
{0.4694715627858909,0.8829475928589269} , ;
{0.4539904997395468,0.8910065241883678} , ;
{0.4383711467890774,0.8987940462991670} , ;
{0.4226182617406994,0.9063077870366499} , ;
{0.4067366430758002,0.9135454576426009} , ;
{0.3907311284892737,0.9205048534524404} , ;
{0.3746065934159122,0.9271838545667874} , ;
{0.3583679495453004,0.9335804264972018} , ;
{0.3420201433256688,0.9396926207859084} , ;
{0.3255681544571568,0.9455185755993168} , ;
{0.3090169943749474,0.9510565162951535} , ;
{0.2923717047227368,0.9563047559630354} , ;
{0.2756373558169992,0.9612616959383189} , ;
{0.2588190451025208,0.9659258262890683} , ;
{0.2419218955996677,0.9702957262759965} , ;
{0.2249510543438652,0.9743700647852353} , ;
{0.2079116908177595,0.9781476007338056} , ;
{0.1908089953765449,0.9816271834476640} , ;
{0.1736481776669304,0.9848077530122080} , ;
{0.1564344650402309,0.9876883405951378} , ;
{0.1391731009600655,0.9902680687415704} , ;
{0.1218693434051475,0.9925461516413220} , ;
{0.1045284632676535,0.9945218953682733} , ;
{0.0871557427476581,0.9961946980917455} , ;
{0.0697564737441255,0.9975640502598243} , ;
{0.0523359562429440,0.9986295347545739} , ;
{0.0348994967025011,0.9993908270190958} , ;
{0.0174524064372836,0.9998476951563913} , ;
{0.0000000000000000,1.0000000000000000} }
nDrehenInt := int(nDrehen) // 23.123 -> aCosSin[23, X/Y ]
do case
case nDrehenInt >= 0 .and. nDrehenInt <= 90
nX := aCosSin[nDrehenInt+1,1]
nY := aCosSin[nDrehenInt+1,2]
case nDrehenInt > 90 .and. nDrehenInt <=180
nDrehenInt := 180-nDrehenInt
nX := aCosSin[nDrehenInt+1,1] * -1
nY := aCosSin[nDrehenInt+1,2]
case nDrehenInt > 180 .and. nDrehenInt<=270
nDrehenInt -= 180
nX := aCosSin[nDrehenInt+1,1] * -1
nY := aCosSin[nDrehenInt+1,2] * -1
case nDrehenInt > 270 .and. nDrehenInt<=360
nDrehenInt := 360-nDrehenInt
nX := aCosSin[nDrehenInt+1,1]
nY := aCosSin[nDrehenInt+1,2] * -1
endcase
return {nX*nFaktor,nY*nFaktor}
Du könntest mit /P compilieren und nachsehen, was aus DCPRINT wird.
Irgendwie muss es ja auch einen XbpPrinter() Objekt verwenden, und dieses braucht einen PS ...
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
OK,
dann sollten die beiden sich mal GraSetAttrString() anschauen.
Jimmy: für das Attribut GRA_AS_DIRECTION entweder GRA_CHDIRN_TOPBOTTOM oder GRA_CHDIRN_BOTTOMTOP
Klaus: mit dem Attribut GRA_AS_ANGLE kann man den Winkel bestimmen, in dem die Zeichen ausgegeben werden sollen. Ein Beispiel ist bei der Erklärung zu GraQueryTextBox() dazu vorhanden.
Viele Grüße,
Martin
dann sollten die beiden sich mal GraSetAttrString() anschauen.
Jimmy: für das Attribut GRA_AS_DIRECTION entweder GRA_CHDIRN_TOPBOTTOM oder GRA_CHDIRN_BOTTOMTOP
Klaus: mit dem Attribut GRA_AS_ANGLE kann man den Winkel bestimmen, in dem die Zeichen ausgegeben werden sollen. Ein Beispiel ist bei der Erklärung zu GraQueryTextBox() dazu vorhanden.
Viele Grüße,
Martin
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.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: DCPRINT Text senkrecht drucken
Ja das sieht gut aus ... aberMartin Altmann hat geschrieben:OK,
dann sollten die beiden sich mal GraSetAttrString() anschauen.
Jimmy: für das Attribut GRA_AS_DIRECTION entweder GRA_CHDIRN_TOPBOTTOM oder GRA_CHDIRN_BOTTOMTOP
nun ist die Hilfe ja "alt" Stand XP 32bit ...Win32 - Windows unterstützt nur die Ausgaberichtung von Links nach Rechts.
ich versuche mich z.Z. an der Win 7 Ultimate und nur mit der Version "soll" so was wohl möglich sein.
... aber ich muss noch das Problem lösen wie ich die Zeichen "trenne" ... SUBSTR(cChina,n,2) ergibt leider "nicht immer" ein "darstellbares" Zeichen ...
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
In den Alaska-Samples gibt es das Programm Fancyfnt.prg. Da wird das mit GraRotate() gemacht.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Martin,
wenn ich das richtig verstehe müsste mir doch auch
GRA_AS_DIRECTION
reichen.
Wenn ich dort vertikal angebe, müsste es doch das machen. Werde die verschiedenen
Anregungen probieren.
Danke
wenn ich das richtig verstehe müsste mir doch auch
GRA_AS_DIRECTION
reichen.
Wenn ich dort vertikal angebe, müsste es doch das machen. Werde die verschiedenen
Anregungen probieren.
Danke
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hallo Klaus,
wenn express++ die Gra Routinen unterstützt, sind die speziellen Befehle dort natürlich besser.
wenn express++ die Gra Routinen unterstützt, sind die speziellen Befehle dort natürlich besser.
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: DCPRINT Text senkrecht drucken
Hier noch die Lösung damit ich das Thema als erledigt kennzeichnen kann.
aAttrVertical[ GRA_AS_ANGLE ] := { 0, 1 }
@nVZeile,0 DCPRINT SAY progversion() FONT '6.Verdana' ATTRIBUTE aAttrVertical PRINTER oPrinter
aAttrVertical[ GRA_AS_ANGLE ] := { 0, 1 }
@nVZeile,0 DCPRINT SAY progversion() FONT '6.Verdana' ATTRIBUTE aAttrVertical PRINTER oPrinter
Gruß
Klaus
Klaus