|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
Cуть такова: создал свой клас наследник от стринггрида и неявно создал грид с кнопками в нужных мне местах Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
естественно зарание переопределив Paint Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Ну и в DrawCell разруливаю с кнопками : Код: 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.
Все было хорошо до того как начал менять размер 1 -2 колонки, если поставит размер очень большой то колонка 3 скроиться (тоесть для нее не будет вызываться strngrdDrawCell) но кнопки то остануться на гриде :(. Проблему с вертикальным скролом решил переписыванием TopLeftChanged а вот как тут быть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 15:41 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
-ES-, ИМХО скрывать кнопку через Код: pascal 1.
не есть good. попробуйте сделать ее заранее невидимой, как-то так: Код: pascal 1. 2. 3. 4. 5.
или так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 16:14 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
>скрывать кнопку ... не есть good. Ещё какой GOOD? самый нормальный Скорее всего вам не нужно 1000 кнопок, проще нарисовать кнопку в ячейке, и обработать нажатие мыши ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 16:25 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
ну на данном этапе ... дето 300 -400 кнопок рисую строчек много .... Код: pascal 1. 2.
приводит к адцкому меганию кнопок :( создавать невидимой тоже не вариант (так как после того как мы ее показали и поменяли размер колонки опять таже малина ибо она стала видимой...) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 16:46 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
user89, вот еслиб определить какие колонки щас невидны .. тогд адля этих колонак можно зделать кнопки B.Visible := false; ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 16:55 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
-ES-, По мотивам http://www.delphi-manual.ru/stringgrid.php Код: pascal 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 17:09 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
-ES- Вы их рисуйте. Не нужно 400 кнопок создавать и прятать/показывать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 17:21 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
DimaBr, есть ссылка на мат часть ?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 17:30 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
-ES-,есть ссылка на мат часть ?:) Можно из простых исходников VirtualButtonTree http://www.delphi-gems.com/supplement/download.php?ID=77 Файл VirtualButtonTree.pas ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2012, 17:42 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
DimaBr, Зделал простановку размеров кнопки в TNewStringGrid.Paint : Код: 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.
прошли все артефакты (при удалении кнопки я ее прячу.) спасибо за совет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2012, 12:49 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
-ES-Зделал простановку размеров кнопки в TNewStringGrid.Paint Я вам советовал вообще избавиться от кнопок, а просто нарисовать их в ячейках грида самостоятельно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2012, 13:07 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
DimaBr -ES-Зделал простановку размеров кнопки в TNewStringGrid.Paint Я вам советовал вообще избавиться от кнопок, а просто нарисовать их в ячейках грида самостоятельно поднимаю тему из шкафа :) тоже озадачился, но есть проблема: нарисовать кнопку с использованием текущего стиля :( и хорошо, если текущий стиль - классик. А то надо выдергивать из схемы стиля цвета, градиенты там всякие. Понимаю, что тогда стилей может не было, но сейчас то они есть. А если менять положение в OnDrawCell заранее созданной кнопки для ячейки, то нужно отслеживать изменения TopRow, VisibleRowCount и VisibleColCount. И сделать это нужно до отрисовки ячеек OnDrawCell. Думаю, что проще всего сделать это при отрисовке первой видимой ячейки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 16:41 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-drawframecontrol Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 16:54 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
С темами: https://devblogs.microsoft.com/oldnewthing/20050801-11/?p=34763 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 17:05 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov вы мышкой над кнопками проводите, она подсвечивается, верно? Значит нужно еще обрабатывать OnMouseMove, рисовать даже тогда, когда сам грид не обновляется. ну нафиг, не люблю лишнюю работу :) PS: хотя спасибо за подсказку, интересная тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 17:08 |
|
Вредный StringGrid
|
|||
---|---|---|---|
#18+
Belotsky Serge вы мышкой над кнопками проводите, она подсвечивается, верно? Значит нужно еще обрабатывать OnMouseMove, рисовать даже тогда, когда сам грид не обновляется. ну нафиг, не люблю лишнюю работу :) главная проблема кнопкокидателей, это что-то должно происходить САМО. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 22:17 |
|
|
start [/forum/topic.php?fid=58&msg=37829894&tid=2036845]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 156ms |
0 / 0 |