![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Это код юнита Printers
я пользуюсь частным парсером и он мне выдает ошибку на ^L: я не понимаю, что означает эта конструкция? Код:
{ Print a string to the printer handling special characters. }
procedure PrnString(var Prn: PrnRec; Text: PChar; Len: Integer);
var
L: Integer;
TabWidth: Word;
procedure Flush;
begin
if L <> 0 then PrnOutStr(Prn, Text, L);
Inc(Text, L + 1);
Dec(Len, L + 1);
L := 0;
end;
function AvgCharWidth: Word;
var
Metrics: TTextMetric;
begin
GetTextMetrics(FPrinter.Canvas.Handle, Metrics);
Result := Metrics.tmAveCharWidth;
end;
begin
L := 0;
with Prn do
begin
while L < Len do
begin
case Text[L] of
#9:
begin
Flush;
TabWidth := AvgCharWidth * 8;
Inc(Cur.X, TabWidth - ((Cur.X + TabWidth + 1)
mod TabWidth) + 1);
if Cur.X > Finish.X then NewLine(Prn);
end;
#13: Flush;
#10:
begin
Flush;
NewLine(Prn);
end;
^L:
begin
Flush;
NewPage(Prn);
end;
else
Inc(L);
end;
end;
end;
Flush;
end; |
|
#2
|
||||
|
||||
|
^L == #12 == Chr(12)
|
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
CMka (18.08.2013)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Я попытался найти ответ в http://docwiki.embarcadero.com/RADSt...s_%28Delphi%29. но без толку. Последний раз редактировалось CMka, 18.08.2013 в 18:37. |
|
#4
|
||||
|
||||
|
обработчик события OnKeyPress формы:
Код:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin ShowMessage(IntToStr(Ord(Key))); end; либо через Evaluate (F7) в режиме отладки выделить ^L и посмотреть. означает символ с кодом 12. |
|
#5
|
|||
|
|||
|
Оказывается, это альтернативный способ написания контрольных символов ascii.
http://blog.excastle.com/2007/09/05/...racter-syntax/ http://en.wikipedia.org/wiki/Control_characters http://en.wikipedia.org/wiki/C0_and_C1_control_codes Век живи -век учись. Последний раз редактировалось CMka, 18.08.2013 в 19:35. |