![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выравнивание текста в 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]Изменение размеров столбца отловить не сложно.
Делаем глобальную пременную, где будем хранить текущее состояние размера столбца.
В событии онДроуЦелл сравниваем эту переменную с размером нужного столбца, в случае изменения обрабатываем что надо и присваиваем нашей глоб. переменной новое значение.