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

Вниз

TStringGrid суммирующая строка   Найти похожие ветки 

 
sia ©   (2005-12-07 18:38) [0]

как сделать в TStringGrid суммирующую строку? т.е. внизу грида, болтается строка типа fixed, в которой можно отобразить сумму по колонке.


 
TStas ©   (2005-12-07 18:45) [1]

Как? При изменении содержимого ячейки пересчитывать сумму. Чтобы это изменение выловить с гарантией, запретить прямое редактирование ячееек, а по событию OnDrawCell подкладывать Edit на ячеку. А edit"у написать в onChange все, что нужно. Можно и в OnExit написать ему.


 
sia ©   (2005-12-07 19:30) [2]

нет. ты не понял... жаль нельзя вставить картинку...
как пересчитывать сумму и прочее мне понятно...
мне надо НАРИСОВАТЬ строку с результатами ВНИЗУ грида. она должна выглядеть, как заголовок колонок.
так, может быть, понятнее будет...


 
MU ©   (2005-12-07 19:37) [3]

OnDrawCell. Там и рисуй все, что хочешь


 
Anatoly Podgoretsky ©   (2005-12-07 22:34) [4]

Может подойдет THeaderControl ?


 
sia ©   (2005-12-08 09:44) [5]


> OnDrawCell. Там и рисуй все, что хочешь

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


 
msguns ©   (2005-12-08 09:51) [6]

Удалено модератором
Примечание: Личная переписка


 
sia ©   (2005-12-08 10:14) [7]

Удалено модератором
Примечание: Личная переписка


 
msguns ©   (2005-12-08 10:42) [8]

Удалено модератором
Примечание: Личная переписка


 
Defunct ©   (2005-12-08 11:20) [9]

sia ©   (08.12.05 09:44) [5]

1. Использовать TDrawGrid.
2. Использовать дополнийтельный Control, к примеру TPanel.


 
Amoeba ©   (2005-12-08 11:37) [10]

А может подойдет связка TDrawGridEh (в мем есть нужная тебе возможность) + какой-нибудь MemoryTable или ClientDataSet?


 
sia ©   (2005-12-08 12:27) [11]


> А может подойдет связка TDrawGridEh

где его взять?


 
msguns ©   (2005-12-08 12:45) [12]

>Defunct ©   (08.12.05 11:20) [9]
>2. Использовать дополнийтельный Control, к примеру TPanel.

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

Хотя, судя по реакции sia на "предложение" Амебы, будет выбран "компонентокидательный" путь ;)


 
sia ©   (2005-12-08 13:05) [13]


> msguns ©


меня интерисует решение без дополнительных к гриду контролов, типа панель, хидер...
у меня уже есть мой компонент - наследник от TStringGrid. В DrawCell я уже извращаюсь, как хочу... Но... Как я писал ранее:
"этот метод позволяет рисовать только в области ячеек. поэтому, даже если и нарисовать фиксированную строчку внизу этого контрола, то паинт грида ее сотрет :(
надо каким-то образом переписать сам паинт."
как это сделать правильно? я уже залез в сам TStringGrid, вернее в TCustomGrid в его Paint. добавил процедурку, которая рисует внизу грида фиксированную строку, точно такую же, как заголовок колонок. Но при скролировании грида с данными вверх:
1. на яцейках остается образ этой строки
2. придостижении конца грида последняя строка спрятана под моей, нарисованной.


 
msguns ©   (2005-12-08 13:42) [14]

Никуда лазать не надо. Ничего переписывать (перекрывать, переопределять, перегружать и т.д.) не надо. Итоговая строка просто создается на панели, "подогнанной" с гриду типа как его часть, либо просто пишется в заголовке грида при FixedRows=1.
"Сложность" лишь в динамическом создании панелек (т.к. кол-во колонок грида переменное) и "подгонке" их ширины при ресайзе грида для попадания в границы колонок.
Ты бы хоть взглянул на посланный код - там ведь все несложно. Хотя бы любопытства ради ;)


 
sia ©   (2005-12-08 13:51) [15]


> msguns ©

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


 
sia ©   (2005-12-08 14:18) [16]


> Amoeba ©  

EhLib

это то, что надо. теперь бы узнать, как это он сделал... ;)


 
msguns ©   (2005-12-08 15:44) [17]

>sia ©   (08.12.05 13:51) [15]
>я смотрел твой код. и даже спрашивал у тебя про загадочный DBServ (письмом)...

Каюсь, запамятовал ;))

Лови "прицепчик"


 
Amoeba ©   (2005-12-08 16:55) [18]

EhLib здесь:
http://www.ehlib.com/RUS/ehlibrus.exe
Пароль sfx-архива: ФЕВРАЛЬФЕВРАЛЬ


 
sia ©   (2005-12-08 17:38) [19]

спасибо



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

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

Наверх




Память: 0.51 MB
Время: 0.026 c
4-1131079994
msgipss
2005-11-04 07:53
2006.01.08
Функция NtQuerySystemInformation - разве на win2000 не работает ?


2-1135092196
fast2
2005-12-20 18:23
2006.01.08
как убить процесс?


2-1134895720
Сафаров
2005-12-18 11:48
2006.01.08
иконки в MessageBox


14-1134405185
Ксардас
2005-12-12 19:33
2006.01.08
довольно интересный эффект получается...


14-1134667828
Gero
2005-12-15 20:30
2006.01.08
Яндекс не отстает