Форум: "Основная";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.008 c