Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2009, 20:37   #1
QWERT1988
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 12
По умолчанию Распечатать StringGrid

Народ помогите ПОЖАЛУЙСТА. Нужно распечатать StringGrid. Есть форма, на форме StringGrid состоящая из 5 столбцов и 23 строк. И вот при нажатии кнопки оно должно распечатываться. Или хотя бы сохраниться в html файле. Очень прошу помогите.
QWERT1988 вне форума Ответить с цитированием
Старый 10.06.2009, 23:04   #2
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Код:
procedure PrintGrid(sGrid: TStringGrid; sTitle: string);
var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
begin
  Printer.Title := sTitle;
  Printer.BeginDoc;
  Printer.Canvas.Pen.Color  := 0;
  Printer.Canvas.Font.Name  := 'Times New Roman';
  Printer.Canvas.Font.Size  := 12;
  Printer.Canvas.Font.Style := [fsBold, fsUnderline];
  Printer.Canvas.TextOut(0, 100, Printer.Title);
  for F := 1 to sGrid.ColCount - 1 do
  begin
    X1 := 0;
    for TmpI := 1 to (F - 1) do
      X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
    Y1 := 300;
    X2 := 0;
    for TmpI := 1 to F do
      X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
    Y2 := 450;
    TR := Rect(X1, Y1, X2 - 30, Y2);
    Printer.Canvas.Font.Style := [fsBold];
    Printer.Canvas.Font.Size := 7;
    Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
    Printer.Canvas.Font.Style := [];
    for TmpI := 1 to sGrid.RowCount - 1 do
    begin
      Y1 := 150 * TmpI + 300;
      Y2 := 150 * (TmpI + 1) + 300;
      TR := Rect(X1, Y1, X2 - 30, Y2);
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
    end;
  end;
  Printer.EndDoc;
end;
Maxs вне форума Ответить с цитированием
Старый 11.06.2009, 11:13   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Посмотри компонент fastreport там это очень просто
SERG1980 вне форума Ответить с цитированием
Старый 12.06.2009, 12:36   #4
tavrocotaps
Пользователь
 
Аватар для tavrocotaps
 
Регистрация: 16.08.2008
Сообщений: 56
По умолчанию

ну, вообще, я когда-то мучился с этим вопросом, но чтоб каждый раз не писать кучу кода стал использовать EhGrid. В ней функции сохранения и печати реализованы оч хорошо.
forever trusting who we are...
tavrocotaps вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распечатать файл C# nikleb Общие вопросы C/C++ 4 15.02.2009 16:36