Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выравнивание текста в StringGrid. [D7, WinXP]


PenguinX ©   (2004-07-10 12:11:00) 

Привет всем Мастерам!
Скажите пожалуйста, как можно выравнять текст по центру в отдельной ячейке StringGrid? И ещё - как можно отловить изменение размеров столбца?
Заранее большое спасибо!


Cardinal   (2004-07-17 20:45:00) [1]

>меня так прозвали.

Тогда - другое дело.


Profi   (2004-07-11 02:28:00) [2]

Все так говорят. Но я же не виноват, что меня так прозвали.


Cardinal   (2004-07-10 23:29:00) [3]

>Profi

нескромный ник


Profi   (2004-07-10 21:38:00) [4]

Выравнивание текста в колонках StringGrid


procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
Txt: array [0..255] of char;
begin
StrPCopy(Txt,StringGrid1.Cells[ACol, ARow]);
SetTextAlign(StringGrid1.Canvas.Handle,GetTextAlign(StringGrid1.Canvas.Handle) and not (TA_Left or TA_Center) or (TA_Right);
ExtTextOut(StringGrid1.Canvas.Handle, Rect.Reght - 2, Rect.Top + 2, ETO_CLIPPED or ETO_OPAQUE, @Rect, Txt, StrLen(Txt), nil);
end;


KilkennyCat   (2004-07-10 15:12:00) [5]

Выравнивание текста - пока вижу единственный вариант: создание собственного обработчика onDrawCell, где уже можно смело пользоваться канвасом грида и отрисовывать текст с использованием  TextExtent и TextOut


KilkennyCat   (2004-07-10 14:59:00) [6]

Изменение размеров столбца отловить не сложно.
Делаем глобальную пременную, где будем хранить текущее состояние размера столбца.
В событии онДроуЦелл сравниваем эту переменную с размером нужного столбца, в случае изменения обрабатываем что надо и присваиваем нашей глоб. переменной новое значение.


Наверх

Титульная страница Поиск, карта сайта Написать письмо