![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DrawGrid
nickolayLI © (2002-10-24 01:18:00)Привет всем!
как можно сразу отобразить изменения в Гриде, а то пока окошко не сминимизируешь, изменения не обновятся :(
спасибо.
ЮЮ (2002-10-25 08:58:00) [1]Естественно, после изменения. Именно это и вызывает перерисовку ячеек и, соответственно, обработчик onDrawCell.
nickolayLI (2002-10-25 08:52:00) [2]>Используй RxDrawGrid, у него есть InvalidateRow, InvalidateCell
их использовать после изменения, или непосредственно в onDrawCell()
хоть пример какой-нить, посмотреть :(
ЮЮ (2002-10-25 08:49:00) [3]>nickolayLI (25.10.02 08:38) что перерисовка идет всех ячеек, т.е. всех иконок в гриде/ячейках, а надо на конкретной ячейке. :(
Используй RxDrawGrid, у него есть InvalidateRow, InvalidateCell
nickolayLI (2002-10-25 08:48:00) [4]Эх...
> Что значит вводится в ячейку? У DrawGrida нет никаких ячеек.
как это нету?
> Всё, что он показывает в ячейках
м-да. :)
я и говорю что в DrwaCell все и рисуется, но перерисовка идет не отдеьной яейки, а всех яеек в гриде, по aRow, а мне нужно чтобы arow допустим был равен 5, тама была нарисована одна иконка, после некоего измения, нарисовалась бы другая иконочка.
что непонятного-то? :)
ЮЮ (2002-10-25 08:45:00) [5]>B каждую ячейку вводится по клику картинка
Что значит вводится в ячейку? У DrawGrida нет никаких ячеек. Всё, что он показывает в ячейках должно рисоваться непосредственно в обработчике onDrawCell (потому он DrawGrid и называется).
Поэтому по клику по DrawGrid-y надо вносить изменения в какой либо другой объект и делать DrawGrid.Invalidate. А при перерисовке использовать измененное значение.
nickolayLI (2002-10-25 08:38:00) [6]>Song © (24.10.02 15:15)
угу, это то я делаю, но фичка в том, что мне нужно на конкретной ячейке поменять значок после некоторого изменения, допустим до изменения была одна иконка после изменения чтобы именно в этой ячейке стала другая иконка, делается, но получается, что перерисовка идет всех ячеек, т.е. всех иконок в гриде/ячейках, а надо на конкретной ячейке. :(
Пока.
nickolayLI (2002-10-25 08:24:00) [7]Invalidate попробуй
или repaint
Хотя repaint это invalidate and Update в одном флаконе
Maximal (2002-10-24 16:39:00) [8]В тему о DrawGrid"e.
B каждую ячейку вводится по клику картинка. Но как только данный DrawGrid закрывается другим окном, то все картинки стираются. Как сделать так, чтобы после этого все картинки заново пересовались? (В цикле заново через OnDrawCell перерисовать не получается, Refresh тоже не работает и т.д...)
Song (2002-10-24 15:15:00) [9]TDrawGrid.onDrawCell
nickolayLI (2002-10-24 14:47:00) [10]>Song © (24.10.02 11:35)
ага, а как я в этот грд запихну иконочки?
nickolayLI (2002-10-24 14:16:00) [11]>dolmat
Причем здесь table.*!!!
Song (2002-10-24 13:18:00) [12]:-)
Ну вас в баню :-)
dolmat (2002-10-24 13:07:00) [13]Grid вего лиль отображает попробуй обновлять то, откуда данные
table.refresh
ЮЮ (2002-10-24 12:09:00) [14]Song © (24.10.02 11:35)
Снова глюканул :-) Cells - это у StrigGrid-а
У тебя есть стринглист CountClient который надо рисовать в DrawGride. При изменении CountClient.Count уставливаешь соответствующее DrawGrid.RowCount, а в обработчике
onDrawCell();
Canvas.TextOut(Rect.left + 32, rect.top + 2, CountClient[ARow]);
Или вместо DrawGrid + StringList chfpe bcgjkmpjdfnm StringGrid
Song (2002-10-24 11:35:00) [15]Sorry, я глюканул.
Вам нужно сделать обработчик TDrawGrid.onDrawCell
после того как измените ячейку: Cells[4,1]:="1" например, делайте RePaint. Последний заставит перерисовать компонент, из-за чего вызвовется TDrawGrid.onDrawCell
nickolayLI (2002-10-24 11:11:00) [16]:), Вы что, начиналось всё с DrawGrid, тема сообщения-то какая?
Song (2002-10-24 11:08:00) [17]Вы сначала определитесь какой грид Вам нужен, потому что начиналось всё с TDBGrid, а закончилось событием onDrawCell, которого у TDBGrid нет.
nickolayLI (2002-10-24 10:55:00) [18]бррр... вообще че-то я запутался.
как короче можно изменить ячейку например номер 5 по Row
но так что бы она могла отоброжать сначало одно значение, после изменений другое...
я тут уже совсем запутался :(
ЮЮ (2002-10-24 10:29:00) [19]А что же там должно оставаться, если в onDrawCell
if CountClient.Count > 0 then begin
nickolayLI (2002-10-24 10:21:00) [20]после изменения ClientCount = 0, делаю Repaint,
то из грида вообще всё исчизает :(