|
|
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
Не сочтите извращенцем... Хочу сделать такую штуку: На форме лежит сетка, число ячеек может меняться. С каждой ячейкой ассоциирован CheckBox. Код: Код: plaintext 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. Код (написан по мотивам изучения DRKB) выполняется, ни на что не ругается. Но чекбоксов невидно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 14:22 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
Hello, rockclimber! You wrote on Fri, 10 Oct 08 11:22:23 GMT: r> StringGrid1.Objects[1, 1]:= TCheckBox.Create(form1); Парент ты ему не указал. r> if Assigned((StringGrid1.Objects[Col, Row] as TCheckBox)) then r> (StringGrid1.Objects[Col, Row] as TCheckBox).Free; кастинг тут излишен. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 14:37 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Hello, rockclimber! You wrote on Fri, 10 Oct 08 11:22:23 GMT: r> StringGrid1.Objects[1, 1]:= TCheckBox.Create(form1); Парент ты ему не указал.О! Точно! В примере было, только я как обычно прошляпил. Теперь работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2008, 15:10 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
Это всё замечательно. Сам реализовал аналогичный код. Но есть одно "но" - если таблица со скроллом (т.е. отображаются не все записи), то при перемотке, галочки отображаются неверно. Например, если поставить галочку в первой строке, то при перемотке на n позиций вниз галочка будет стоять в n+1 строке.. Подскажите, как это можно исправить. Я так понимаю, что событие OnDrawCell выполняется только для тех ячеек, которые вместились в отображаемую область. А при перемотке в этой области также остаются те CheckBox'ы, которые были на своих местах до перемотки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 19:53 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
я хранил в Objects 0 или 1 отрисовывал руками крестик и обрабатывал сообщение о нажатии на поле... Но все это как то... неправильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 00:18 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
AndreeeyЭто всё замечательно. Сам реализовал аналогичный код. Но есть одно "но" - если таблица со скроллом (т.е. отображаются не все записи), то при перемотке, галочки отображаются неверно. Например, если поставить галочку в первой строке, то при перемотке на n позиций вниз галочка будет стоять в n+1 строке.. Подскажите, как это можно исправить. Я так понимаю, что событие OnDrawCell выполняется только для тех ячеек, которые вместились в отображаемую область. А при перемотке в этой области также остаются те CheckBox'ы, которые были на своих местах до перемотки.Если в таблице много строк, то на создание обьектов уходит куча времени, да и зачем создавать то что не отображается, достаточно создать столько чек боксов сколько строк у вас отображается на экране и в событии скроллинга их передвигать, и изменять их значения, ну если это не катит и вы всё же хотите создать чекбоксов столкьо скольо срок, то в событии скролинга делайте их нивидимыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 08:47 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
создать один - для редактирования. остальные рисовать самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 08:55 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
Ух ты, мой старый топик подняли... Я решал эту проблему с перерывами целый год, теперь у меня есть целый свой компонент (полудоделаный, зато кучу всего умеет, основные идеи сперты из excel), комбобоксов нет, есть только их имитация своими силами (выводится квадратик с галочкой на canvas). Чем не нравились тру комбобоксы - при выставлении опции goThumbTracking при скроллировании верхняя ячейка как бы "заползает" под заголовок, а комбобокс заползать не хочет, потому что рисуется поверх грида. Я плюнул на это дело и рисую имитацию, которая вполне себе "заползает". scorpyxЕсли в таблице много строк, то на создание обьектов уходит куча времени Ага, а когда они на экране и их много (пару десятков), да еще если DoubleBuffered выключить, а goThumbTracking включить, то такая лажа получается в процессе скроллирования, аж смотреть противно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2009, 17:11 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
А не проще нарисовать рисунок типа CheckBox'а и просто делать в ячейке рисунок с крестиком (true) или без крестика (false) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 22:46 |
|
||
|
Встраивание CheckBox в StringGrid
|
|||
|---|---|---|---|
|
#18+
Дабы не плодить темы... Добрый день уважаемые, помогите зафиксить код Попытался сделать чекбоксы как описано вот тут, переделав под свои нужды: http://www.delphisources.ru/pages/faq/base/checkboxes_in_stringgrid.html В моем гриде чекбоксы должны рисоваться во втором ряду с первой по последнюю колонку. Все вроде бы работает. Но есть проблема: При первой отрисовке и скроллинге колонка [0,j] принимает в себя чужие чекбоксы [0,0] - чекбокс самой последней колонки [fixed_col, 1] - чекбокс первой невидимой колонки Скриншот чтоб было понятно: http://i.piccy.info/i9/0ef4b9da6ddba3ed1b75afdfc2519e08/1544547343/29709/1225901/Bezymiannyi.png Как зафиксить неправильную отрисовку этих двух чекбоксов? Код: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 19:55 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=35588125&tid=2040015]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
146ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 493ms |

| 0 / 0 |
