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

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

•  TDictionary Custom Sort  4 334

•  Fast Watermark Sources  4 026

•  3D Designer  6 202

•  Sik Screen Capture  4 280

•  Patch Maker  4 819

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

•  ListBox Drag & Drop  3 842

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

•  Графические эффекты  5 052

•  Рисование по маске  4 095

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

•  Canvas Drawing  3 743

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

•  Поворот изображения  3 056

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

•  Paint on Shape  2 048

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

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

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

•  Пазл Numbrix  1 986

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

•  Игра HIP  1 602

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

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

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

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

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

•  HEX View  1 871

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

 
скрыть


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

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