Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Stringgrid (выравнивание в ячейке)   Найти похожие ветки 

 
Alexxx   (2004-06-07 10:46) [0]

Здравствуйте, мастера.
Вопрос: как в стринггриде в ячейках выравнять текст (по центру)? Что-то я не нашёл..


 
V-Isa   (2004-06-07 10:49) [1]

Рисуй на канве :-)


 
Alexxx   (2004-06-07 10:51) [2]

а без канвы никак?


 
V-Isa   (2004-06-07 10:54) [3]

Пробуй выравнять пробелами.


 
Alexxx   (2004-06-07 10:59) [4]

"Пробуй выравнять пробелами."
Сссспассссибо... :)

А если с канвой работать, то как, не переделывая весь код (у меня все гриды обычные - без заморочек с канвой), легко и просто сделать выравнивание? Может есть метод и я зря боюсь канву?


 
Amoeba ©   (2004-06-07 11:06) [5]

Обработчик события OnDrawCell + F1

Если не хочешь делать сам ручками, то на http://www.torry.net ищи подходящий готовый компонент.


 
Alexxx   (2004-06-07 11:24) [6]

Читаю, читаю... Вот что нашёл:

"Предложенный код подходит только для тех случаев, если у вас нет специального форматирования выводимого текста в полях таблицы, если у вас нет выравнивания по правому краю или центру и т.д.
Потому что методом TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text); вы рисуете в определенных координатах текст, который содержится в текущей строке текущего поля и больше ничего... Все внутреннее форматирование будет потеряно. Для его восстановления вам будет необходимо проверять, какое установлено выравниваение и т.д., самим пересчитывать координаты вывода текста в прямоугольнике. В общем, это не сложная задача,  но только зачем делать то, что прекрасно умеет делать сам DBGrid ?"

Если DBGrid умеет выравнивать, то может умеет и Stringgrid? Или я неправильно понял этот кусочек текста? (взято отсюда: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168&mode=print)


 
pasha_golub ©   (2004-06-07 11:37) [7]

http://www.delphimaster.ru/articles/stringgrid/index.html


 
Alexxx   (2004-06-07 12:11) [8]

Всем спасибо.. сделал таки с канвой (попытался максимально упростить код и вот что вышло:)

procedure TCoefrezult.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin

with Sender as TStringGrid, Canvas do
 begin
    fillrect(rect);
    SetTextAlign(Handle, TA_CENTER);
   TextOut(round((Rect.right+Rect.left)/2), Rect.Top+2, Cells[aCol, aRow]);
  end;
end;


Самое интересное - работает! :)



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
1-1086327501
Sea Eagle
2004-06-04 09:38
2004.06.20
Работа с документом MS Word без установленного Офиса?


8-1081370171
zumoz
2004-04-08 00:36
2004.06.20
dspack + tv tuner


4-1084773749
MPS
2004-05-17 10:02
2004.06.20
ReadDirectoryChanges


1-1086246823
--= Eagle =--
2004-06-03 11:13
2004.06.20
Доступ к области дынных проги


10-1012977852
Matushkin
2002-02-06 09:44
2004.06.20
CORBA сразу и клиент и сервер возможен?