Code in einer AnsiString Zeile
-
hallo,
[C++/Code]
versuche vergeblich in der Hilfe.
benötige die Code(C++) für
a: Zeilenvorschub
b: TabDiese werden in einem AnsiString an entsprechender Stelle eingefügt.
Danach drucke ich über die " Printer() " Befehle den String auf dem Drucker aus.gruß Siegfried

-
a: '\n'
b: '\t'Sofern es das ist, was du wolltest

-
Hallo,
Siehe in der BCB-Hilfe : "Escape-Sequenzen".
Bis dann denn,

Nash
-
hallo,
danke für die hilfe.
habe leider noch Probleme.
im Debugmodus sieht es in der Variable AnsiString so aus:
myString "Hallo Leute\n\r\twir gehen aus"
im Druck werden die "Escape-Sequenzen" falsch dargestellt.
es sind für die Steuerzeichen nur Quatrate vorhanden.Gruß Siegfried

-
Hallo,
Versuch mal "\r\n" (ist bei Dir verdreht)...

Bis dann denn,

Nash
-
hallo
habe im Forum die Reihenfolge \r\n vertauscht.
klappt trotzdem nicht. auch \t für Tab klappt nicht.gruß Siegfried#

-
Zeige mal deinen Code. Die Funktion, die du benutzt hast unterstützt wahrscheinlich keine Multiline-Strings und du musst eine andere Lösung finden.
-
Hallo,
hier in verkürzter Form mein Code:[C++/Code]
AnsiString strFields;
strFields = "Key - Code ";
strFields += '\t'; //0x09; Tab
strFields += '\t'; //0x09; Tab
strFields += '\t'; //0x09; Tab
strFields +=
DataModule1->Query2->Fields->FieldByName
("KeyCode")->AsString;
//...
//..
yG=yG+ZA+Printer()->Canvas->TextHeight(strFields);
ygs=ygs+yG;if ((ygs + yG + Printer()->Canvas->TextHeight(strFields) >
Printer()->PageHeight) || (Seite==0))
//
{
if (Seite>0) Printer()->NewPage();
Printer()->Canvas->Font->Style
= TFontStyles()<< fsBold << fsUnderline;
Printer()->Canvas->Font->Size = 14;
Seite++;
AnsiString Kopfzeile =
"Produkt-Aktivierung Seite: "+IntToStr(Seite)
+ " " + DateBuf + " " + TimeBuf;
Printer()->Canvas->TextOut(LR,0,Kopfzeile);
y=200; // Abstand zum Text
ygs = y;
}
Printer()->Canvas->TextOutA(LR,y,strFields);
y=y+ZA+Printer()->Canvas->TextHeight(strFields);
}
}
Printer()->EndDoc(); // Beendet DruckauftragGruß Siegfried

-
Ich kann zwar keine bessere Lösung anbieten, da ich mit der VCL nicht vertraut bin, aber die Funktion TextOut unterstützt definitiv keine Zeilenumbrüche. Musst du eine andere Lösung finden und notfalls "per Hand" die Zeilen positionieren. Aber da wird es sicherlich auch noch eine komfortablere Möglichkeit geben.
-
Hallo
mit dem WinAPI-Befehl DrawText() und dem Flag DT_WORDBREAK kann man auch mehrzeiligen Text ausgeben.
Such mal im Forum danach.bis bald
akari
-
hallo
danke an alle. Werde dann eine andere Lösung suchen und bei Bedarf auf das Forum zurückgreifen.
Gruß Siegfried
PS: wüchnsche allen ein frohes Osterfest.
