|
|
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня. Собственно сабж. Необходимо разукрасить ячейку в зависимости от значения соседней. Пытаюсь делать вот так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. но все ячейки упорно закрашиваются только цветом первой записи датасета. Подскажите, где грабли, плз!!! Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:19 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Bobbyгде граблив данном событии отрисовываемая ячейка не синхронизирована с датасетом, надо обращаться к датаконтроллеру за данными. ты ведь не в гридмоде орудуешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:43 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Может это пример поможет? http://www.sql.ru/blogs/x11/1335 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:44 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
или это http://www.sql.ru/blogs/x11/1326 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:45 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Bobby, используй у grid -> TableView -> Column -> Styles событие OnGetContentStyle туда передаетс Record забираешь у него .Values[SomeColumn.Index] и смотришь по нему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:48 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, разобрался. Вот, что помогло Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. пришлось добавить колонку color и сделать ее невидимой. Может не сильно красиво, но действенно оказалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:48 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
BobbyМожет не сильно красиво"все правильно сделал" (С), другие способы геморнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:50 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
и вот похожая тема по разукрашке http://www.sql.ru/forum/actualthread.aspx?tid=320097 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 14:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
BobbyВсем спасибо, разобрался. Вот, что помогло Код: pascal 1. 2. пришлось добавить колонку color и сделать ее невидимой. Может не сильно красиво, но действенно оказалось Не надо боятсо добавлять невидимые "служебные" колонки, это нормально, остальные способы действительно геморнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2012, 18:14 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Aleksey V.P.это нормальноэт на самом деле не очень здоровое решение и я бы предпочел чтоб у девэксов была в этом месте синхронизация (по крайней мере как вариант) но ее увы нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 10:28 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
она есть просто читать надо данные из грида, а не их датасета. еще не хватало на каждый чих каждой ячейки базу данных дергать. Это даже тупой TDBGrid не делает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 10:41 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanэт на самом деле не очень здоровое решение и я бы предпочел чтоб у девэксов была в этом месте синхронизация (по крайней мере как вариант) но ее увы нет Гонять туда-сюда датасет ??? Вы в своём уме ? А если пользователь просто прокрутил грид мышкой ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 10:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochона естьсинхронизации с датасетом в этом месте нет Ariochпросто читать надо данные из грида, а не их датасетас кем разговариваешь?я говорю что приходится читать данные из датаконтроллера (а не грида) потому что нет возможности читать непосредственно из датасета. точнее есть конечно но синхронизироваться врукопашную придется и скорее всего без клона не обойтись. а ты мне: "надо из грида". кому "надо"? Ariochне хватало на каждый чих каждой ячейки базу данных дергатьFYI "читать данные из датасета" != "дергать бд", про "тупой" комментировать не стану ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 10:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrГонять туда-сюда датасет ???"гонять туда-сюда" в смысле если данных нет в буфере то спозиционироваться по значению ключевого поля, да. опционально конечно как я отметил DimaBrВы в своём уме ?а есть варианты в чьем я могу быть еще? DimaBrесли пользователь просто прокрутил грид мышкой ?если "вылезло" несколько ранее невидимых строк то "повставать" на них в датасете перед соответствующими событиями отрисовки. если есть какие-то проблемы то озвучивай их конкретно уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 10:59 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanесли есть какие-то проблемы то озвучивай их конкретно уже Конечно есть, проблема в том что если гонять датасет, грид будет сильно тормозить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 11:28 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrесли гонять датасет, грид будет сильно тормозитьнаверное возможно если твой датасет настолько тормозной что отыскать несколько визуализируемых строк для него проблема. для моего нет и основные тормоза идут как раз от грида. ну так на то я и предложил это как возможный вариант поведения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 11:37 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Загрузите в грид пару сотен строк, и потаскайте ползунок вверх-вниз (бедный датасет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 11:59 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrЗагрузите в грид пару сотен строк, и потаскайте ползунок вверх-внизну кого ты лечишь? я в датаконтроллер (а не грид, повторюсь) гружу сотни тысяч записей и знаю как это говно работает DimaBrбедный датасету меня "богатый" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:32 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> FYI "читать данные из датасета" != "дергать бд" а кто это гарантирует ? вы же не знаете наперед какой датасет будет ? Т.е. давай-те просто так нагрузим датасет и будем надеятсья что он достаточно умный, чтобы с этим справиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:43 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
а если у датасета еще по master-detail подключено несколько других и у на всех ещё повешены свои db-aware контролы - то устроим дискотеку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:44 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanну кого ты лечишь? Завидую вашему доктору !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:46 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochа кто это гарантирует ?никто вестимо, включая меня Ariochвы же не знаете наперед какой датасет будет ?я-то знаю, но разрабы девэкса конечно нет, оттого и сделал бы такое поведение опциональным. ты не читаешь что я пишу? Ariochдавай-те просто так нагрузим датасет и будем надеятсья что он достаточно умный, чтобы с этим справитьсядавай для начала ты просто не будешь фантазировать? про свои мне не надо "надеяться", а те кто живут надеждами пусть наздоровье юзают описанный здесь способ Ariochесли у датасета еще по master-detail подключено несколько других и у на всех ещё повешены свои db-aware контролы - то устроим дискотекут.е. про клоны ты тоже не увидел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:49 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrЗавидую вашему докторуа по теме есть что сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:52 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
ну возьми и сделай это в DevExpress'e - исходники же есть. Интересно как там будет drag-n-drop синхронизироваться или группировка. Не забывай маленький такой эффект, что при изменении строки в TDataSource должна меняться и текузая строка в гриде. Т.е. стою я редактирую ячейку по центру, вдруг сбоку всплыло оповещение, в аську мне написали. Всплыло, повисело и уплыло. Грид натурально начинает в уголке ячейки перерисовывать. Сдвигает TDataSet, тот сдвигает TDataSource, а тот сдвигает текующую строку в гриде, нафиг закрывая редактор. В конце концов не даром у TDataSet есть целый массив записей и возможность прочитать не только текущую, но и любую строку, через что TDBGird и работает. В общем, если тебе не очевидно, что идея твоя неудачная - то просто возьми и сделай. И посмотри что получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 12:57 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochвозьми и сделай это в DevExpress'e - исходники же естьэто к чему? я повторюсь предлагаемый мной вариант вполне реализуется даже без надругательства над фирменными сорцами или создания наследников, чисто с применением использованного здесь хэндлера. а если бы ихные разрабы брали все мои патчи или реализовывали идеи, оно бы там разумеется давно было Ariochкак там будет drag-n-drop синхронизироватьсяне юзаю потому затрудняюсь сходу без раздумий представить какие могут быть проблемы. обрисуешь? Ariochили группировкаюзаю, но также с интересом жду описания ожидаемых проблем в приложении к моему варианту AriochНе забывай маленький такой эффект, что при изменении строки в TDataSource должна меняться и текузая строка в гридениче не понял AriochСдвигает TDataSetблинский блин, сколько раз тебе повторить про клоны ? Ariochне даром у TDataSet есть целый массив записей и возможность прочитать не только текущую, но и любую строкуну спасибо за откровения Ariochесли тебе не очевидно, что идея твоя неудачнаятеперь мне очевидно что про датасеты и девэксы ты знаешь не так много как тебе кажется Ariochпросто возьми и сделай. И посмотри что получитсяхочешь я тебе дам демку чтоб ты мог сделать то что предлагаешь мне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:13 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
По теме, я уже сказал. Бессмысленно гонять датасет для отрисовки зависимых ячеек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:21 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrПо теме, я уже сказалтебе показалось DimaBrБессмысленно гонять датасет для отрисовки зависимых ячеекбессмысленно создавать во вьюшке невидимый в гриде столбец и соответственно забивать память в датаконтроллере под поле если его значение используется лишь как "зависимое" в то время как его (как и все остальные впрочем) можно взять из датасета где оно уже есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:28 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Синтетический тест на таблице 8000 строк Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:32 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrСинтетический тест"любой тест показывает ровно то что хотел продемонстрировать тестирующий" (С) и в чем смысл аццкой манипуляции? если ты хотел показать как не надо делать, то у тебя получилось нормально а вообще то что нужно отключать визуальщину при массовой колбасне на датасете я получше тебя знаю или может ты хотел продемонстрировать слабость адошных компонент? повторю тебе свой вопрос, хочешь дам демку на DimaBrЗагрузите в грид пару сотен строк, и потаскайте ползунок вверх-вниз а ты мне укажешь на минусы решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:44 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Уже указал, если гонять датасет, то скорость падает в 2 раза, недостаточно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:52 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Не важно какие компоненты доступа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBr, Да бог с ним. Не хочет человек брать значение из соседней ячейки грида, у него двоичный выбор или невидимый столбец делать (практично, но неэлегантно), или лезть в DataSet, искать поле (у топикстартера вообще через FieldByName), делать кучу проверок типа CheckBrowseMode и т.д. Процессоров много - стерпят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:18 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrскорость падает в 2 раза, недостаточно ?скорость выполнения бессмысленной операции (скорее даже бредовой), конечно недостаточно. а вот моя демка, слепленная по твоему описанию задачи, проблем со скоростью не демонстрирует даже на объеме большем заказанного в 40 раз. кроме того, при моделировании твоего синтетического тестового кода у меня скорость одинаковая для обоих способов DimaBrНе важно какие компоненты доступа"садись два" (С) Ariochили невидимый столбец делать (практично, но неэлегантно)ровно наоборот. элегантно, с точки зрения минимума телодвижений, потому как делается практически только мышкой. однако в случае если задумываешься о кол-ве потребляемой памяти - непрактично Ariochили лезть в DataSet, ..., делать кучу проверок типа CheckBrowseMode и т.дты наверное думаешь что девэксы тебе все забесплатно дают и максимально эффективно? заблуждаешься AriochПроцессоров много - стерпятповторюсь что даже бредовый синтетический тест от DimaBr свыше работает одинаково быстро для обоих способов Ariochвообще через FieldByNameтолько в моем не Lookup юзается а FindKey и вовсе нет FieldByName, ну да это непринципиально том в смысле что не меняет сути предлагаемого способа и одновременно принципиально подчеркивает существенные различия в эффективности разных датасетов чего очевидно не понимает DimaBr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:40 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> девэксы тебе все забесплатно дают и максимально эффективно? эфективность не важна. А бесплатность - да, бесплатно. Потому что они уже при отрисовке выбрали текущую Record, которую передают в события. Ее искать не надо - они ее уже нашли для своих собственных нужд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:44 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
а тест действительно странный. делать ADOTable1.Next - т.е. дёргать датасет - чтобы продемонстрировать как быстро будет работать, если его не дёргать. Брр... Тест должен быть примерно такой: * Открыть редактирование какой-то ячейки. * Ввести туда новый текст, но редактор не закрывать пока - остаемся в процессе редактирования. * 8000 раз случайно выбрать ячейку на экране и ее перерисовать. * 3америть время и проверить, что редактор по прежднему открыт, на нужной ячейке и не потерял введённое пользователем (но не сохранённoе ещё в ячейку) значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:50 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochэфективность не важнаспасибо, засим можно закругляться хотя непонятно тогда зачем ты упомянул процессора Ariochда, бесплатноеще раз напоминаю о доп. затратах памяти на хранение "невидимого" поля в датаконтроллере. ну если для тебя "бесплатно" это когда наплевать как на скорость так и на прожорливость то больше нечего добавить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:50 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavan, эффективность важна в целом. т.е. там где ты на неё можешь повлиять. если ты можешь делать или не делать, делать быстро или медленно - тогда это важно. а если ты все равно это будешь делать строго определённым способом - то не важно. Есть такое слово - "инвариант". Эффективность поиска строки внутри cxGrid - это инвариант. Это константа, которую надо вынести за скобки и сократить. А после сокращения уже не важно чему она была равна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:54 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
>на хранение "невидимого" поля в датаконтроллере Да нету такого поля в исходнйо задаче, нету. Не выдумывай. > Необходимо разукрасить ячейку в зависимости от значения соседней. СОСЕДНЕЙ. Т.е. ячейка уже есть, она тоже инвариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:56 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochтест действительно странныйя ж говорю, это яркий пример "как не надо делать" был бы еще смысл какой практический, можно было бы думать. а тут апдейт грида после смены текущей записи и так по всему датасету! Ariochделать ADOTable1.Next - т.е. дёргать датасет - чтобы продемонстрировать как быстро будет работать, если его не дёргатьnext-то делать вполне нормально, а вот нахера цветомузыка со скроллирующейся активной датааварщиной?? и даже так, в моей демке оба варианта одинаково тормозные AriochТест должен быть примерно такойя ж тебе предлагал демку, можешь изголяться как хочешь и когда покажешь где оно ломается я с интересом ознакомлюсь. потому как мне откровенно непонятно описание твоего предложения по тестированию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:57 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Тест вполне нормальный, имитирует прокручивание грида с первой строчки до последней, в принципе неважно какие действия проводятся в тесте, главное что при разном доступе к данным значительно падает время. vavan, давайте посмотрим на ваш тест !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:03 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochэффективность важна в целом. т.е. там где ты на неё можешь повлиять. если ты можешь делать или не делать, делать быстро или медленно - тогда это важно. а если ты все равно это будешь делать строго определённым способом - то не важнопомедленнее плз, я записываю будь любезен мудрые мысли привязать к обсуждаемой конкретно задаче, теоретическую пургу позволю себе пропустить Ariochнету такого поля в исходнйо задаче, нету. Не выдумывайвот именно, в исходной задаче "невидимого" поля в гриде не было. потому и Bobbyпришлось добавить колонку color и сделать ее невидимой AriochСОСЕДНЕЙ. Т.е. ячейка уже естьследует конечно уточнить у OP но я полагаю что он возможно имел в виду раскрасить ячейку соответствующую определенному полю в зависимости от значения соседнего поля, в гриде не отображаемого но вообще если ты понял задачу именно так как понял то тогда у меня возражений нет никаких. если поле полюбасу показывается в гриде (т.е. 1х грузится в контроллер) то нет смысла изголяться как предлагаю я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:11 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ждём вашего теста !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:15 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Это не теоретическая пурга. Какая разница как долго ищет запись гридконтроллер если он ее все равно ищет ? Предлагается сравнить время двух подходов 1) (поиск текущей записи в контроллере + получение и преобразование значения из массива вариантов) 2) (поиск текущей записи в контроллере + поиск текущей записи в датасете + получение и преобразование значения из TField) Я сказал что эффективность поиска строки контроллером не нужна - она не отразится на результате сравнения. Ты сказал, что это чушь и про эту эффективность надо думтаь. Ок, покажи как эта эффективность, какой бы она не была кроме бесконечности, может повлиять на результаты сравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:16 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> имитирует прокручивание грида ну так кешируются гридом значения не от прокручивания, а потому что вызов событий нарисовать/раскрасить по болшому счёту не связан с текущей строкой в гриде/датасете. И изначално волпрос был про раскраску не текущей строки, а какой-то другой. т.е. пример показывает, что Locate замедляет в полтора раза прокрутку, да. Но речь-то не о прокрутке была. Настоящие тормза пойдут там, где прокрутки датасета до сих пор вообещ не было, а тут придется делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:19 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrТест вполне нормальныйконечно "нормальный", только от жизни слегка оторванный DimaBrимитирует прокручивание грида с первой строчки до последнейугу, теперь рассказывай в какой твоей "нормальности" оператор скроллирует врукопашную грид от первой до последней строки полным перебором записей DimaBrв принципе неважно какие действия проводятся в тестекладезь мудрости DimaBrглавное что при разном доступе к данным значительно падает времязолотые слова, скажу больше, повторюсь что время падает тем значительнее чем более разный доступ к данным в смысле от датасета зависит, вопреки некоторым утверждениям и уже на моем тесте и заказанном кол-ве записей скорость совпадает с "прямым" доступом в датаконтроллер. хотя разумеется чем больше будет записей тем медленнее станет поиск в датасете. но и датасет ведь в тесте не самый быстрый DimaBrдавайте посмотрим на ваш тествот и я говорю, давайте, вдруг я где попутал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:23 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
AriochКакая разница как долго ищет запись гридконтроллер если он ее все равно ищет ?да не ищет он ее в штатном варианте вовсе, он просто берет готовые значения. ищет у меня. но у меня по памяти эффективнее, а скорость может оказаться как быстрее так и медленнее, зависит от AriochТы сказал, что это чушь и про эту эффективность надо думтаья все время толкую об эффективности в разрезе потребляемой памяти а ты воюешь с ветряными мельницами AriochНастоящие тормза пойдут тамтормоза пойдут везде где исполняется массовая обработка датасета без деактивации подвязанной гуйни. но никто ж не заставляет творить такую порнографию?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:31 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Всё равно, ваш метод медленее Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 16:33 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
ну на, отключай http://rghost.ru/40340676 инетресно, как быстро у тебя получится заменить примитивный обработчик в пару строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 16:37 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrВсё равно, ваш метод медленеепродолжай учиться и работать над собой Ariochотключайэто ты мне? что "отключать"? Ariochкак быстро у тебя получится заменить примитивный обработчик в пару строкты вообще ничему не учишься? в FormCreate добавить после цикла Код: pascal 1. 2. а в xgrdGrid1DBTableView1CustomDrawCell первые 9 строк твоей порнографии заменить на две Код: pascal 1. 2. зы. если уж удосужился тесты делать будь любезен излагать внятно что ты демонстрируешь и на что я должен обратить внимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:04 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochну наи еще одна просьба, у меня 2007 так что плз без новомодных имен юнитов в uses, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:06 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanAriochну наи еще одна просьба, у меня 2007 так что плз без новомодных имен юнитов в uses, спасибо а оно на 2007 не работает, АВ валится, даже если поправить юниты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:12 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
подглядывающийоно на 2007 не работаету меня работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:13 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanAriochотключайэто ты мне? что "отключать"? >>>тормоза пойдут везде где исполняется массовая обработка датасета без деактивации подвязанной гуйни Ок, не отключай. Дезактивируй. Чтобы без тормозов. > без новомодных имен юнитов в uses оно само... > cds2.IndexFieldNames:='field1'; Это в DFM есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:14 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
подглядывающийАВ валится, даже если поправить юниты попробуй Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:16 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
AriochДезактивируй. Чтобы без тормозовты можешь внятно излагать? Ariochоно самоэто ты так извиняешься что у тебя нет 2007-й дельфы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:19 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ну что же, фишка TClientDataset.CloneCursor впечатляет. Что будет, если исходный DataSet будет не другой CDS, а какой-нибудь обычный TSQLQuery, и он вовсе не держит в памяти всю таблицу целиком ? Тогда TClientDataset.CloneCursor не пройдет и придется делать в память полную копию таблицы. По сравнению с нежеланием тратить память на невидимый столбец это должно быть просто преступление. Таким образом, насколько понимаю, этот способ имеет смысл только при использовании CDS в качестве истоника данных. До недавнего времени при этом cxGrid все равно бы делал полную копию данных во внутренние структуры. В последнем апдейте вроде для некоторых датасетов тепеь позволена подгрузка по мере необходимости. Надеюсь, он не дублирует больше CDS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:36 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
AriochНу что же, фишка TClientDataset.CloneCursor впечатляета так ты видимо дезавуируешь всю пургу что ранее намел? AriochЧто будет, если исходный DataSet будет не другой CDSответ искать в моих ранних ответах в треде Ariochнасколько понимаю, этот способ имеет смысл только при использовании CDS в качестве истоника данныхстрого говоря опять неправильно понимаешь. при использовании любого датасета имеющего соответствующий функционал. а их таки есть AriochДо недавнего времени при этом cxGrid все равно бы делал полную копию данных во внутренние структурыпри чем "при этом"? в bound mode он именно так и фурычит, для всех столбцов грида (включая невидимые) в датаконтроллере создается столбец со всеми вытекающими AriochВ последнем апдейте вродеа ты не гадай а спроси прямо уже, я таки эксперт. Ariochвроде для некоторых датасетов тепеь позволена подгрузка по мере необходимоститы про Server Mode что ли? это несколько перпендикулярно обсуждаемому топику AriochНадеюсь, он не дублирует больше CDSничего не изменилось (и не будет) в отношении рассматриваемой задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:50 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> при использовании любого датасета имеющего соответствующий функционал Т.е. DevExpress должн завести у себя таблицу таких датасетов и как этот функционал включать ? Иначе это будут включать все новички на любых таблицах и обвинять грид в тормозах и AV. > а так ты видимо дезавуируешь всю пургу что ранее намел? при нарантированом использовании CDS в режиме CloneCursor и в качестве первичного источника данных довольно узкая ниша. Шаг в сторону - и ку-ку. При этом вариант без CDS все равно проще и универсальнее. cds2.FindKey([AViewInfo.GridRecord.Values[0]]); // Assert не катит - он отключиться может в релизе v := (aviewinfo.item.DataBinding as TcxGridItemDBDataBinding).Field.AsInteger; v := AViewInfo.GridRecord.Values[AViewInfo.item.Index]; > в bound mode он именно так и фурычит, для всех столбцов грида (включая невидимые) в датаконтроллере создается столбец со всеми вытекающими Речь не только про столбцы, но и про строки. > ты про Server Mode что ли? это несколько перпендикулярно обсуждаемому топику Почему вдруг ? Экономия памяти, все такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 18:07 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
AriochDevExpress должн завести у себя таблицу таких датасетов и как этот функционал включать ?нет конечно, упаси боже им достаточно просто предоставить event handler типа OnGetDrawSyncDataSet(var Result: TDataSet) в к-м конечный пользователь грида (я) сможет предоставить датасет на к-й гридовые отрисовщики в случае включенного нового флага типа DrawSyncDataSet в DataModeController будут позиционировать этот датасет а все новички за незнанием или неприменимостью данного продолжат юзать штатный способ Ariochпри нарантированом использовании CDSпри использовании любого подходящего датасета с соответствующим функционалом. из общедоступных их минимум три. я уж не говорю про закрытые типа моего Ariochдовольно узкая нишада что ты что ты AriochПри этом вариант без CDS все равно проще и универсальнееразве что универсальнее AriochAssert не катит - он отключиться может в релизетеперь ты меня на тестовом примере писать еще возьмешься учить?спасибо, я пас AriochРечь не только про столбцы, но и про строкимне уже скучно стало, зануда AriochПочему вдруг ? Экономия памяти, все такоеи это и кое-что еще но только server mode никак не меняет подходы к рассматриваемой в треде задаче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 18:25 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
И всё таки, когда же ваш прославленный метод прогонки датасета догонит дополнительный столбец ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 23:12 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrИ всё таки, когда жекогда ты, двоечник, поумнеешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 10:09 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanкогда ты, двоечник, поумнеешь Мне кажется, или это хамство выперает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 10:15 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBr, да ты в своем уме??? конечно кажется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 10:17 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavanAriochПри этом вариант без CDS все равно проще и универсальнееразве что универсальнее Проще тоже. Даже один только процитированный обработчик уже короче. Код: pascal 1. 2. 3. 4. А ведь еще надо создать вторичный CDS и проклонировать его. Ну и всегда остается вопрос кто будет это развивать через 5 лет, не поломает ли он это. Поэтому да, так тоже можно при дестком контроле обвязки грида. Но я пока не могу увидеть ни одного случая, где это было бы лучше. а вообще меня cxGird удивил. Я знал что он тяжёлый - куча вложенный вирутальный вызовов, на каждый чих создаются и уничтожаются объекты типа TPainter и т.д. - но что настолько... Просто на перерисовке на Phenom2 x4 ожирает 10-16% поцессор, в пересчете на одно ядро - 40-70%, а если пересчитать на какой-нибудь одноядерный гигагерцовый целерон... грустно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 13:29 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavan AriochПочему вдруг ? Экономия памяти, все такоеи это и кое-что еще но только server mode никак не меняет подходы к рассматриваемой в треде задаче Тут две задачи смешались. В моей речи про экономии памяти не было. Но ты продвигал вторичный dataset именно для экономии, чтобы не тратиться на скрытый столбец. Вот я и представляю: cxGrid, server mode over DBX - и тут мы для экономии памяти вхреначиваем CDS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 13:31 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochа если пересчитать на какой-нибудь одноядерный гигагерцовый целерон... грустно. На 486 вполне прилично работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 14:08 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Спомнил одну историю поводу раскраски cxGrid . В Одной из моих систем в заказчике есть функционал, где пользователь(Админ) может выделить цвет для статуса абонента , что б система в гриде раскрасил таких абонентов. Как то админ не знаю для прикола или не чайно поставил статусу ВИП = clBlack, вижу заказчик звонит мне и говорит что у них ВИП клиенты не отображаются в программе, а я в этот день обновление отправил им. Блин сразу ломка, думаю где я ошибся, открываю начинаю рыться в БД, смотрю пакеты макеты, процедуры который обновил. Ну блин вижу что все нормально должно быть, думаю не ужели полете внешний ключ и кто то удалил этот статус, захочу смотрю все есть. Блин в вобщем почти час на это, потом звоню говорю да блин все вроде должно работать, а он блин .... говорит ну не отображаются, есть записи черным цветом!! И Банг!!! чуть я не взорвался и не начал ругать их))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 14:43 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ramin А белый шрифт на белом фоне - слабо ??? Ёпрст - данные все пропали !!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:06 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrRamin А белый шрифт на белом фоне - слабо ??? Ёпрст - данные все пропали !!!!! )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:07 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrRamin А белый шрифт на белом фоне - слабо ??? Ёпрст - данные все пропали !!!!! Лучше прозрачным. И сетку прозрачным цветом тоже. Вообще должны быть красные буквы зелёного цвета! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:17 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochодин только процитированный обработчик уже корочену так объедини две строчки в одну, если для тебя это сложно. и ты btw сравниваешь не пойми что, я такого не писал Ariochеще надо создать вторичный CDS и проклонировать егоахренеть сложности Ariochостается вопрос кто будет это развивать через 5 лет, не поломает ли он этоэтот вопрос остается всегда, вне зависимости от выбранного решения Ariochтак тоже можно а совсем недавно тебе было "очевидно" что идея моя неудачна Ariochя пока не могу увидеть ни одного случая, где это было бы лучшеработай над собой, расширяй кругозор про память я тебе уже разжевал. и вообще чем меньше завязок на специфики конкретного гуишного компонента и больше кладется на датасет тем лучше Arioch но что настолько а я тебе говорил что ты заблуждаешься полагаясь на "бесплатность" девэксовских решений и веря в его эффективность Ariochserver mode over DBX - и тут мы для экономии памяти вхреначиваем CDSserver mode с CDS не так уж много смысла имеет, т.к. CDS сам по себе позволяет как угодно изголяться с получением целевого набора данных. а dbx ваще в топку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 10:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> ну так объедини две строчки в одну Т.е. по твоему если взять программу на 100КБ исходников, удалиь все CR/LF, то получим программу сложности Hello World ? > ахренеть сложности Затраты больше нуля ? больше. Значит твой вариант сложнее. Намного или нет - другой вопрос. > совсем недавно тебе было "очевидно" что идея моя неудачна Мне попрежнему очевидно, что для DevEx , которым нужно поддерживать любой TDataSet эта идея неудачна, пока они не смогут жёстко контролировать использование только CDS и только в режиме CloneCursor и отключать этот режим "шаг влево/шаг вправо", и пока они не убедятся, что у них наличествует достаточно много клиентов, для которых этот вариант будет хоть в чём-то лучше стандартного получения данных из аргументов обработчика события. > про память я тебе уже разжевал. при использовании CDS и хранении в памяти всей таблицы говорить про экономию памяти вообще как-то странно. хочешь экономить память - убери CDS > и вообще чем меньше завязок на специфики конкретного гуишного компонента ...и больше завязок на специфику конкретного CDS > и больше кладется на датасет тем лучше Если generic TDataset - то да. А иначе - шило на мыло меняем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:06 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> Arioch vavan - явный фанатик CDS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:19 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
AriochТ.е. по твоемуне фантазируй, по-моему синхронизировать датасет и взять данные из него ничуть не сложнее чем из датаконтроллера. ладно бы там вместо одной сто строк пришлось ввалить (при этом невозможно было бы их завернуть в вызов враппера) но когда их две (или даже десять) не вижу никакого усложнения. нет, если сложность для тебя меряется в кол-ве cr/lf то конечно мой метод ажно в два раза "сложнее" AriochЗатраты больше нуля ?затраты чего? AriochМне попрежнему очевидноа мне по-прежнему очевидно что ты неспособен как достаточно широко увидеть проблему так и мой подход к ее решению Ariochпри использовании CDS и хранении в памяти всей таблицы говорить про экономию памяти вообще как-то странно. хочешь экономить память - убери CDSво бред-то Ariochбольше завязок на специфику конкретного CDSк-й во-первых есть штатный стандартный компонент, а во-вторых если делать по уму то можно было бы обойтись и без клона и добиться (при желании) работоспособности моего варианта с любым конкретным датасетом AriochЕсли generic TDatasetт.е. именно с generic Ariochиначе - шило на мыло меняеминаче ты берешься рассуждать о вещах про к-е недостаточно знаешь. даже в усеченном варианте я предложил простой способ предоставить необходимую точку входа для тех кому это может понадобиться и для них тоже очевидно что мой способ гораздо удачнее штатного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:26 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBr - явно недалекий товарищ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:27 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ку да уж мне до далёких ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:38 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> для тех кому это может понадобиться и для них тоже очевидно что мой способ гораздо удачнее штатного для всех тех одного человека ? Кстати, как эта "точка входа" будет гарантировать, что датасет не затормозит программу, не выдаст ошибок, не выдаст некорректных устаревших рещзультатов поиска ? > во-вторых если делать по уму то можно было бы обойтись и без клона и > добиться (при желании) работоспособности моего варианта с любым конкретным датасетом т.е. пусть дев-экспрессовцы потрахаются, только потому что тебе лень использовать стандартные средства. Я думаю, они откажутся "добиваться работоспособности". > во бред-то очень аргументировано. Бyдeшь отрицать, что в вышеприведенных примерах CDS держал в памяти все данные таблицы, а не только те, которые были на экране ? > но когда их две (или даже десять) не вижу никакого усложнения. ну да, 1=10, если очень хочется. ро то, что они будут размазаны по разным кускам программы - по разным событиям разных объектов - просто молчу. > нет, если сложность для тебя меряется в кол-ве cr/lf Не для меня, а для тебя. Это ты предлагал убирать CR/LF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 14:02 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochдля всех тех одного человека ?с чего ты взял? Ariochкак эта "точка входа" будет гарантироватьи с какой стати она должна что-либо гарантировать?? Ariochпусть дев-экспрессовцы потрахаются, только потому что тебе лень использовать стандартные средстваты делаешь неверные выводы базируясь на неверных же предположениях AriochЯ думаю, они откажутсяи тут ты наконец-таки прав Ariochочень аргументированоа ты все равно мои аргументы либо не видишь либо не воспринимаешь AriochБyдeшь отрицатьнет конечно, с этим я и не спорил Ariochну да, 1=10, если очень хочетсятут ниче не понял AriochНе для меня, а для тебядля меня одинаково несложно как взять одной строкой данные из датаконтроллера так и нарисовать с десяток строк чтобы сделать это с помощью датасета Ariochты предлагал убирать CR/LFну ты ж не формализовал своих критериев "сложности", обозначил лишь что более "короткий" обработчик "проще", вот тебе и способ "укорачивания", читай "упрощения" я конечно могу попытаться поверить что кроме этого тебя напугала "сложность" клонирования, но тогда мне о тебе совсем плохо придется думать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 14:25 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> с чего ты взял? с того, что я не видел других людей, кому это "необходимо". и, судя по всему, девэкспрессовцы тоже не видели. Более того, пока нет ни одного более-менее общего случая, когда этот способ вообще хоть чем-то лучше стандартного. Ситуация, когда нам не жалко памяти, чтобы всосать в неё полностью таблицу, но жалко памяти чтобы добавить один 4-байтовый столбец, надуманная. > и с какой стати она должна что-либо гарантировать? с той, что иначе миллион леммингов, не умеющих искать примеры и читать исходники, именно так и сделают, да еще на каком-нибудь BDE tQuery. и потом на всех форумах расскажут какой тормозной и падучий отстой QuantumGrid. Зачем девэкспрессу это надо ? > тут ниче не понял вот и я не понял, почему 10 разных операций в разных местах по твоему равны по сложности одной операции в одном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 14:35 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> обозначил лишь что более "короткий" обработчик "проще", вот тебе и способ "укорачивания", у тебя интересное понятие слова "короткий" а Length(string) у тебя тоже только CR/LF считает ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 14:37 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochс того, что я не видел других людей"этапять" (С) что еще из того что ты "не видел" по-твоему не существует? Ariochсудя по всему, девэкспрессовцы тоже не виделилично я не заряжал им подобный suggestion лишь потому что хорошо знаю как у них дела обстоят и какой будет ответ. кроме того проблема не настолько критичная чтоб требовать от них поддержки в том что достаточно легко при необходимости реализуется на уже существующих обработчиках. хотя конечно жаль, было бы приятнее с поддержкой "искаропки" Ariochнам не жалко памяти, чтобы всосать в неё полностью таблицуесли на клиенте требуется определенный набор данных в датасете то какие ты знаешь альтернативы? какие ты вообще знаешь датасеты поддерживающие window mode с произвольной навигацией и набором фич сравнимым хотя бы с cds? Ariochжалко памяти чтобы добавить один 4-байтовый столбецоткуда взялся один 4-байтовый столбец ? что ты знаешь о внутренностях хранилища датаконтроллера? что если для нужд "разноцветного" отображения требуется доступ к строковому (или еще хуже LOB) полю? что если таких "невидимых" столбцов несколько? ты отдаешь себе отчет в тормознутости и прожорливости датаконтроллера в этих обстоятельствах? Ariochнадуманная"надуманными" являются твои потуги всех постричь единообразно, без знаний какие в реальности бывают задачи Ariochиначе миллион леммингов, не умеющих искать примеры и читать исходникиа чем ты, неумеющий читать мои ответы (где данный момент уже неоднократно обсуждался) отличаешься от того миллиона? Ariochпотом на всех форумах расскажут какой тормознойа он и есть тормозной Ariochотстой QuantumGrid. Зачем девэкспрессу это надо ?и, действительно, в некоторых аспектах именно отстой. но лучше все равно ничего нет AriochЗачем девэкспрессу это надо ?только при чем здесь это вообще? или ты на них работаешь и подписался отбиваться? Ariochпочему 10 разных операций в разных местах где те 10 операций и мест в моем варианте, ты о чем? Ariochу тебя интересное понятие слова "короткий"еще раз, пока ты не формализовал своего понятия я тебе отвечаю "по тексту" AriochLength(string) у тебя тоже только CR/LF считает ???я никак не могу понять что ты пытаешься спросить но на всякий случай повторюсь, если ты измеряешь "сложность" тупо в кол-ве строк, то я не разделяю этой позиции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 15:03 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
тормознутость, прожорливость? Демо, пожалуйста. > то если для нужд "разноцветного" отображения требуется доступ к строковому (или еще хуже LOB) полю? Тем более, что сколько бы столбцов и по каким исходным данным ни надо было раскрасить, добавить достаточно ОДИН невидимый столбец. Заполняемый в OnCalcFields. Размером TRGB*кол-во-столбцов > если на клиенте требуется определенный набор данных в датасете сферический конь в вакууме. Я не предлагаю всегда и везде отказываться от CDS. Но использовать CDS с полностью загруженными данными и при этом экономить память на столбцах я считаю сродни заказу кока-колы без сахара в МакДаке. > а он и есть тормозной На порядок менее, чем при прямом использовании поиска в проиpвольном TDataSet. > я тебе отвечаю "по тексту" Только твое восприятие текста, прилагательного "короткий", плохо соотносится со словарями русского языка. ТЕкстмеряется не только в длину. > если ты измеряешь "сложность" тупо в кол-ве строк не я, а ты. Я не предлагал выбрасывать CR/LF в качестве уменьшения сложности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 15:33 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Arioch, извини но я более не в силах продолжать с тобой нашу безнадежную и унылую "дискуссию" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 15:40 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
блин, так тему загадить, а :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 13:55 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Чтобы не плодить темы спрошу здесь. В cxGrid вывожу сетку, разукрашиваю ячейки по условию, с верху идут дни месяца. Как мне покрасить бэнд с днями месяца, в зависимости от дня недели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2018, 14:28 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
А что именно не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2018, 14:36 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBr Спасибо! Но что то не пошло Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2018, 15:31 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Не закрашивает ячейки с именем столбца, хотя по условию выбирает правильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2018, 15:34 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
jonybest, а я вот стили присваиваю нужного цвета ячейкам -- код примерно похожий с раскраской, только в качестве плюса -- в эксель красивая цветная форма экспортируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2018, 16:21 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Я тоже раскрасил таблицу при помощи стилей, не могу раскрасить ячейки с именем столбца, не удобно ориентироваться, когда таблица закрашена, где выходные дни... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2018, 16:35 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Уважаемые гуру! Возможно ли вообще выполнить задуманное? Переискал везде, ответа не нашел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 09:35 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
А чем OnGetHeaderStyle не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 09:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
zinpubА чем OnGetHeaderStyle не подходит? Устаревает всем. Ячейки таблицы я закрашиваю без проблем. Нужно закрасить имена столбцов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 10:15 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
jonybestzinpubА чем OnGetHeaderStyle не подходит? Устаревает всем. Ячейки таблицы я закрашиваю без проблем. Нужно закрасить имена столбцов... Ячейки это - OnGetContentStyle Заголовки - OnGetHeaderStyle Или я не понимаю, что такое "имена столбцов" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 10:21 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Вы уверены что у вас в AViewInfo.Column.Tag сидят разные значения ? В обработчик OnCustomDrawColumnHeader вообще попадает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 11:16 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrВы уверены что у вас в AViewInfo.Column.Tag сидят разные значения ? В обработчик OnCustomDrawColumnHeader вообще попадает ? Да, проверял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 12:48 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Пробовал даже без условий Код: sql 1. 2. 3. 4. 5. 6. не закрашивает заголовки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 14:40 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Я так понимаю, должны все заголовки покрасится? В стилях выбран красный цвет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 14:56 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
jonybest, Скины используются? NativeStyle не трю часом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 15:11 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
таблица раскрашена стилями Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 15:41 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040388]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 491ms |

| 0 / 0 |
