Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать StringGrid, Не печатает первый столбец 
:(
    Опции темы
AlexanderI
Дата 29.4.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: нет
Всего: 3



Печатаю StringGrid всем известным способом.
Всё печатается, только не печатается первый столбец.
Что такое не пойму.
Код

var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
  sTitle: string;
  sGrid: TStringGrid;

begin
  sTitle := 'ZZZZZZ';
  sGrid := StringGrid1;
   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 := 0 to sGrid.ColCount - 1 do  // начинаем перебирать столбцы
  begin    
    X1 := 0; // Расчитываем месторасположение прямоугольника X1,Y1,X2,Y2 ячейки
    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);  // Вычислили координаты, собираем их в TRect
    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;  // опять расчитываем прямоуголькик. X1 и X2 те же.
      Y2 := 150 * (TmpI + 1) + 300;    
      TR := Rect(X1, Y1, X2 - 30, Y2);  // собираем координаты в TRect
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);  // пишем текст ячейки
    end;
  end;    
  Printer.EndDoc;  // завершить документ
end;


--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
Dayana
Дата 29.4.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: нет
Всего: 4



По-моему, для первого столбца TR получается (0, Y1, -30, Y2). Поэтому и не печатает.
PM MAIL ICQ   Вверх
AlexanderI
Дата 29.4.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: нет
Всего: 3



Вместо X2 := 0; ставлю X2 := 30; 
всё равно  
Или я чтото не то изменяю ?
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
Dayana
Дата 14.5.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: нет
Всего: 4



Ну вторая координата должна быть больше, чем первая, а после того как ставишь  X2 := 30, то обе получаются равными 0.
PM MAIL ICQ   Вверх
AlexanderI
Дата 14.5.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: нет
Всего: 3



Цитата(Dayana @  14.5.2007,  17:41 Найти цитируемый пост)
Ну вторая координата должна быть больше, чем первая, а после того как ставишь  X2 := 30, то обе получаются равными 0.

Рабочий пример можешь привести ?

--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0884 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.