Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Вниз

Выравнивание содержимого в ячейке таблицы по высоте 


KIR   (2001-11-13 09:30) [0]

Почему-то не работает параметр DT_VCENTER (даже если содержимое ячейки - одна строка). А вообще, меня очень интересует, можно ли выравнивать содержимое ячейки по высоте даже если это содержимое - несколько строк? И если можно, то как?



KIR   (2001-11-14 23:36) [1]

люди...



Макс Черных   (2001-11-15 16:19) [2]

Открой файл StdCtrls.pas и посмотри как все это делает
TCustomLabel (property Layout).



Jurgen   (2001-11-15 19:15) [3]

>Макс Черных
Не прокатит, так как CustomLabel полностью отрисовывается (наследник от TGraphicControl, не имеет TabStop и т.д.), а ячейки грида - InplaceEdit, наследник от TCustomEdit, у него Microsoft"ом не заложено выравнивание по высоте, по ширине - есть...

Удачи. Да прибудет с тобой F1...
Borland FOREVER



Макс Черных   (2001-11-15 19:59) [4]

2Jurgen
Еще как прокатит. Ячейка грида - InplaceEdit только в режиме редактирования текста в ней, а вот все остальные ячейки как раз
и отрисовываются. То, что TGraphicControl не имеет TabStop я, слава богу,
давно знаю :), а вот кто-то кажется думает, что сколько в гриде клеток -
столько и InplaceEdit.



Jurgen   (2001-11-16 09:16) [5]

2Макс Черных
Тханкс, что направил на путь истинный. Писал не подумавши... :)

2Kir
DrawText(Canvas.Handle, Pchar(Text), Length(Text), TextRect,
DT_CENTER or DT_VCENTER);



KIR   (2001-11-18 17:47) [6]

Так вот параметр DT_VCENTER почему-то не работает, даже если написать, так: DrawText(Canvas.Handle, Pchar(Text), Length(Text), TextRect, DT_VCENTER);



Макс Черных   (2001-11-18 20:13) [7]

2KIR
DT_VCENTER не работает при выводе многострочного текста
а насчет того как сцентрировать, так вот кусок кода
метода TCustomLabel.Paint, который я уже советовал
посмотреть. Из него по моему мнению совершенно понятно
как это делается.

...
if FLayout <> tlTop then
begin
CalcRect := Rect;
DoDrawText(CalcRect, DrawStyle or DT_CALCRECT);
if FLayout = tlBottom then OffsetRect(Rect, 0, Height -
CalcRect.Bottom)
else OffsetRect(Rect, 0, (Height - CalcRect.Bottom) div 2);
end;
DoDrawText(Rect, DrawStyle);
...




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.036 c
14-52638          РУС                   2001-10-26 17:25  2002.01.17  
Спор тносительно HDD


1-52615           Socol                 2001-12-29 06:12  2002.01.17  
Прерход на новую строку.


3-52460           ol                    2001-12-14 10:33  2002.01.17  
SQL: вложенный запрос под MSSQL


3-52483           Yanker                2001-12-04 00:01  2002.01.17  
Альтернатива BDE


4-52690           NetBreaker666         2001-11-15 03:07  2002.01.17  
Опять все теже HOOk и