Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Символ перехода на новую строку


Автор: Ner-zul 13.4.2007, 14:47
Добрый День.

 Я работаю с длинной строкой и вывожу ее на экран(Вообще я вывожу ее на холст принтера). Моя задача разбить эту длинную строку на несколько. Чтобы отобразить красиво. 

Я хочу после каждого 3-его пробела в своей строке вставлять в нее символ перехода на новую строку и откат каретки. Подскажите что это за символы и с каким синтаксисом их вставлять.

Из Ассемблера помню.. что Это символы 10 и 13. Но вот как их вставить в строковую переменную я не понимаю. Там наверняка должны быть какиенить служебные символы????

С Уважением,

Ner-zul.

Автор: Matematik 13.4.2007, 14:54
#13 - CR carriage return — возврат каретки
#10 - LF line feed — перевод строки

В windows новая строка обозначается #13#10

Вставить можно Insert()

Автор: Ner-zul 13.4.2007, 14:54
Так , сорри за левый вопрос. 
Синтаксис я нашел. #13#10

У меня вопрос теперь иной формы. 
Найдя символы и синтаксис их использования, это мне не помогло, так как теперь вместо символов пеерхода отображаются квадратики. 

Не подскажите есть ли возможность как нить форматировать текстовую строку в плане переходов и выравниваний прямо сразу на холсте принтера. ???

Автор: MetalFan 13.4.2007, 15:14
а вообще в делфи определена константа - sLineBreak ;) собстно которая и есть #13#10
Цитата(Ner-zul @  13.4.2007,  14:54 Найти цитируемый пост)
форматировать текстовую строку в плане переходов и выравниваний прямо сразу на холсте принтера

если рисовать с пом. DrawText, то переносы буду учитываться... если это то конечно

Автор: Ner-zul 13.4.2007, 15:43

А у меня нет такого метода как DrawText...=(

Автор: VICTAR 13.4.2007, 15:47
Ner-zul,  ошибаешься, есть такой метод ;)
Цитата

The DrawText function draws formatted text in the specified rectangle. It formats the text according to the specified method (expanding tabs, justifying characters, breaking lines, and so forth). 

int DrawText(

    HDC hDC,    // handle to device context 
    LPCTSTR lpString,    // pointer to string to draw 
    int nCount,    // string length, in characters 
    LPRECT lpRect,    // pointer to structure with formatting dimensions  
    UINT uFormat  // text-drawing flags 
   );

Return Values

If the function succeeds, the return value is the height of the text. 

Remarks

The DrawText function uses the device context's selected font, text color, and background color to draw the text. Unless the DT_NOCLIP format is used, DrawText clips the text so that it does not appear outside the specified rectangle. All formatting is assumed to have multiple lines unless the DT_SINGLELINE format is specified. 
If the selected font is too large for the specified rectangle, the DrawText function does not attempt to substitute a smaller font. 


Автор: Ner-zul 13.4.2007, 15:54

Да Правда?
Есть такой метод???

Printer.Canvas.DrawText.... Вы Уверены?

Автор: VICTAR 13.4.2007, 16:05
нет, есть DrawText(Printer.Canvas.Handle, ...)

Автор: MetalFan 13.4.2007, 16:07
а кто тебе сказал, что это метод канвы? это не метод, а функция WinApi.
Windows.DrawText();

Автор: Ner-zul 13.4.2007, 16:12
Окей. Ладно . С этим ясно. Впринципе я разобрался. Спасибо. Щас другую еще тему открою по принтерам=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)