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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> многострочность в заголовке StringGrid, ввод заголовка при работе программы 
:(
    Опции темы
hankblack
Дата 25.4.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



здравствуйте, скажите пожалуйста как ввести название в заголовки Стринг Грида ???
имеется код, но если в ячейки ввести текст можно, то в заголовки нет.
а вообще задача должна реализовывать многострочность в заголовке.
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids;

type
  TForm1 = class(TForm)
    Grid1: TStringGrid;
    procedure Grid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var col,row:integer;
  Form1: TForm1;

implementation

{$R *.dfm}
//пример, делающий заголовок многострочным ,
//центрированным и с жирным шрифтом
procedure TForm1.Grid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  l_oldalign: word;
  l_YPos, l_XPos, i: integer;
  s, s1: string;
  l_col, l_row: longint;
begin
  l_col := col;
  l_row := row;
  with sender as tstringgrid do
  begin
    if (l_row = 0) then
      canvas.font.style := canvas.font.style + [fsbold];
    if l_row = 0 then
    begin
      l_oldalign := settextalign(canvas.handle, ta_center);
      l_XPos := rect.left + (rect.right - rect.left) div 2;
      s := cells[l_col, l_row];
      while s <> '' do
      begin
        if pos(#13, s) <> 0 then
        begin
          if pos(#13, s) = 1 then
            s1 := ''
          else
          begin
            s1 := trim(copy(s, 1, pred(pos(#13, s))));
            delete(s, 1, pred(pos(#13, s)));
          end;
          delete(s, 1, 2);
        end
        else
        begin
          s1 := trim(s);
          s := '';
        end;
        l_YPos := rect.top + 2;
        canvas.textrect(rect, l_Xpos, l_YPos, s1);
        inc(rect.top, rowheights[l_row] div 3);
      end;
      settextalign(canvas.handle, l_oldalign);
    end
    else
    begin
      canvas.textrect(rect, rect.left + 2, rect.top + 2, cells[l_col, l_row]);
    end;
    canvas.font.style := canvas.font.style - [fsbold];
  end;
end;
end.


заранее спасибо.

Это сообщение отредактировал(а) hankblack - 25.4.2009, 15:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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