Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  1 309

•  TDictionary Custom Sort  4 069

•  Fast Watermark Sources  3 752

•  3D Designer  5 809

•  Sik Screen Capture  4 020

•  Patch Maker  4 227

•  Айболит (remote control)  4 465

•  ListBox Drag & Drop  3 634

•  Доска для игры Реверси  88 589

•  Графические эффекты  4 810

•  Рисование по маске  3 846

•  Перетаскивание изображений  3 221

•  Canvas Drawing  3 514

•  Рисование Луны  3 309

•  Поворот изображения  2 812

•  Рисование стержней  2 512

•  Paint on Shape  1 920

•  Генератор кроссвордов  2 661

•  Головоломка Paletto  2 103

•  Теорема Монжа об окружностях  2 764

•  Пазл Numbrix  1 920

•  Заборы и коммивояжеры  2 488

•  Игра HIP  1 526

•  Игра Go (Го)  1 469

•  Симулятор лифта  1 729

•  Программа укладки плитки  1 482

•  Генератор лабиринта  1 835

•  Проверка числового ввода  1 599

•  HEX View  1 778

•  Физический маятник  1 617

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Распечатать TStrings на принтере по умолчанию




procedure PrintStrings(S: TStrings; Font: TFont; Title: string);
var
 LeftMargin, TopMargin, LineCoord, LineOnPage, LinesOnDoc,
 CurrentLine, TextHeight, LinesPerPage, LineInterval: integer;

 procedure StartDoc;
 begin
   LinesOnDoc := S.Count;
   Printer.Canvas.Font.Assign(Font);
   Printer.Canvas.TextOut(0, 0, ' ');
   LeftMargin := (Printer.Canvas.Font.PixelsPerInch) div 2;
   TopMargin  := (Printer.Canvas.Font.PixelsPerInch) div 2;
   TextHeight := Abs(Printer.Canvas.Font.Height);
   LineInterval := TextHeight + (TextHeight div 2);
   LinesPerPage := (Printer.PageHeight - TopMargin) div LineInterval;
   CurrentLine := 0;
 end;

 function MorePages:boolean;
 begin
   Result := (CurrentLine <  LinesOnDoc) and
             not Printer.Aborted;
 end;

 procedure StartPage;
 begin
   LineOnPage := 0;
   LineCoord := TopMargin;
 end;

 procedure NextPage;
 begin
   if MorePages then Printer.NewPage;
 end;

 function MoreLines:boolean;
 begin
   Result := (LineOnPage <  LinesPerPage) and
             (LineOnPage <  LinesOnDoc) and
             not Printer.Aborted;
 end;

 procedure NextLine;
 begin
   Inc(LineOnPage);
   Inc(LineCoord, LineInterval);
   Inc(CurrentLine);
 end;

 procedure PrintLine;
 begin
   Printer.Canvas.TextOut(LeftMargin, LineCoord, S.Strings[CurrentLine]);
 end;

begin
 Printer.Title := Title;
 Printer.BeginDoc;
 StartDoc;
 while MorePages do
 begin
   StartPage;
   while MoreLines do
   begin
     PrintLine;
     NextLine;
     Application.ProcessMessages;
   end;
   NextPage;
 end;
 Printer.EndDoc;
end;








Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте