Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1133800282
Andrey.Ru
2005-12-05 19:31
2006.01.08
Как TIMAGE с рисунком сделать полупрозрачным?


4-1130921832
Still Swamp
2005-11-02 11:57
2006.01.08
Как соорудить окошко типа PopUp


4-1130840334
BFG9k
2005-11-01 13:18
2006.01.08
Передача настроек принтера


14-1134384980
Piter
2005-12-12 13:56
2006.01.08
Управление клиентом p2p сети Direct Connect (DC), UKC, DC++


2-1133423104
worldmen
2005-12-01 10:45
2006.01.08
Передать данные в родительскую форму.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский