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

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

Может ли DBGrid иметь разное значение RowsHeigth для каждой Ячейк


Страницы:   1 2

jeka_t ©   (2006-03-09 15:10:00) 

Можно ли заставить DBGrid показывать таблицу с разным значением RowsHeigth, взависимости от длины текста в ячейке?


Amoeba   (2006-03-10 12:19:00) [21]


> jeka_t   (10.03.06 10:06) [10]
> Пробывал компонент TDBGridEh - результат тот же...

Естественно. В этот компонент такая функциональность не встроена.


jeka_t   (2006-03-10 10:06:00) [22]

Пробывал компонент TDBGridEh - результат тот же...


Игорь Шевченко   (2006-03-10 00:18:00) [23]

sniknik ©   (09.03.06 22:40) [8]


> да, но не компонентами (наследование, создание в рантайме,
>  пожалуйста), все должно быть в проекте. "идея" в том, что
> когда код передают на тестирование/проверки и т.д. и должен
> без дополнительных установок компонент (кроме тех двух утвержденных,
>  и весде стоящих), должен сразу компилится и работать.


Правильная идея, очень полезная. Согласен целиком и полностью.

А что до грида, то дальше приводится как раз код с наследником, где проблемы с перерисовкой вроде решены.


sniknik   (2006-03-09 22:40:00) [24]

> Неправильный это способ - стандартный DBGrid таким образом рисовать.
ну я и не рисовал, не нужно было, это так "экспромт".
а ссылку я знаю.

> А самому писать разрешено ?
да, но не компонентами (наследование, создание в рантайме, пожалуйста), все должно быть в проекте. "идея" в том, что когда код передают на тестирование/проверки и т.д. и должен без дополнительных установок компонент (кроме тех двух утвержденных, и весде стоящих), должен сразу компилится и работать.

впрочем старое требование, сейчас его "подзабыли". (да и код уже не передают)
вообще я даже за такой подход был, после того как мне прислали проверить прогу с другого города, в исходниках... 3 недели согласовывали, что и как и куда нужно установить чтобы только начало компилироваться.
ну тогда целая эпопея была ;о), в цирк можно было не ходить. ;о))
- "компонент rxxxxx (на самом деле не помню какой) отличается от "стандартного" скачанного по ссылке xxxxx, не могли бы вы прислать вашу видимо измененную вами версию..."
- "эээ... а что не работает?"
- "ничего не работает, даже не компилится, ругается на кучу переменных которых в моей версии нет."
- "а так это компоненты rxxxxx! их в инете полно! вы не знаете что такое rxxxxx ?"
- "я знаю что такое rxxxxx (уже знаю...), но версия из инета скачанная из 13 мест ....(ссылки) не сходится с вашей..."
- "эта... мне тут передали, вы говорят не можете найти rxxxxx? можно скачать   в ... (6 из 13 моих же ссылок)"
- "я это знаю, качал. но это не подходит!!! см. раннюю переписку, и ПРОСТО ПРИШЛИТЕ ВАШ ВАРИАНТ!"
- "нуууу, я не программист, сейчас спрошу..."
- "а кто? мне дали ящик программиста. (а отвечает уже третий человек, и тон не программист)"
- "а когда вы закончите тестирование? мы уже неделю как код вам выслали."
- "да мы даже не начали. вы нам не все прислали."
- "я буду жаловаться начальству..."
...
тоже иду к начальству. в тот же день присылают злосчастный компонент. тут же стопоримся на другом, и вроде тоже "стандартный-в инете полно".
и т.д. по новой.

сейчас приятно вспомнить, весело, а тогда злой был... ;)


Игорь Шевченко   (2006-03-09 21:34:00) [25]

sniknik ©   (09.03.06 21:24) [6]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=806#01_1

Неправильный это способ - стандартный DBGrid таким образом рисовать.


> в контору, в которой запрещены левые, нелицензионные, сомнительные
> (в общем все, за исключением пары) сторонние компоненты


А самому писать разрешено ?


sniknik   (2006-03-09 21:24:00) [26]

> Зациклиться не боишься ?
боишся не садись программировать!

> В общем, овчинка выделки не стоит.
вот тебя бы в контору, в которой запрещенылевые, нелицензионные, сомнительные (в общем все, за исключением пары) сторонние компоненты... вот тогда бы еще услышать про "овчинку".

> Доказано на Королевстве Delphi
все можно решить. доказано мной.

еще пример(!!!)

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
 GridCoord: TGridCoord;
begin
 GridCoord:= TMyDBGrid(Sender).MouseCoord(Rect.Left + 2, Rect.Top + 2);
 if (GridCoord.X < 0) then Exit;

 if Odd(GridCoord.Y) then TMyDBGrid(Sender).RowHeights[GridCoord.Y]:= 18
                            else TMyDBGrid(Sender).RowHeights[GridCoord.Y]:= 36;
end;


как видиш не циклится... про недостатки, вводе как при скролировании по одному вверх не надо, знаю (легко исправить). это (как и выше) пример, не надо его бездумно себе в программу вставлять, и ждать законченного решения, он всеголиш показывает возможность.


Crash Coredump   (2006-03-09 18:38:00) [27]

sniknik ©   (09.03.06 18:35) [4]


> "повесь" расчет высоты на отрисовку и будет "навсегда"..
> .


Зациклиться не боишься ? Изменение свойств (rowHeights) вызовет Invalidate и ты опять попадешь в ту же перерисовку. В общем, овчинка выделки не стоит. Доказано на Королевстве Delphi


sniknik   (2006-03-09 18:35:00) [28]

> Но недолго. До первой прокрутки.
"повесь" расчет высоты на отрисовку и будет "навсегда"...


Crash Coredump   (2006-03-09 18:10:00) [29]

sniknik ©   (09.03.06 17:50) [2]


> могут разную


Но недолго. До первой прокрутки.

jeka_t   (09.03.06 15:10)  

Могу порекомендовать EhLib Дмитрия Большакова, там, насколько я помню, этого эффекта добиться можно.

http://www.ehlib.com/RUS/default.htm


sniknik   (2006-03-09 17:50:00) [30]

> Строки в DBGrid могут иметь только одинаковую высоту.
могут разную

для примера

type
 TMyDBGrid = class(TDBGrid);

procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
 i:= 1;
 with TMyDBGrid(DBGrid1) do
   while i <= RowCount - 1 do begin
     RowHeights[i]:= 10+i*8;
     inc(i);
   end;
end;


Amoeba   (2006-03-09 17:32:00) [31]

Строки в DBGrid могут иметь только одинаковуювысоту.


Страницы:   1 2

Наверх

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