Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Внизcheckbox в гриде Найти похожие ветки
← →
denis24 (2004-12-24 16:52) [0]При отображении данных датасета в событии-отрисовщике рисую сабж.
Он рисуется все нормально как я и хотел пустой.Но изменить его значение не возможно сколько не кликай на нем мышей.
Рисую так
IF CompareText(Column.FieldName ,"check") = 0 then
begin
Style := DFCS_BUTTONCHECK;
DrawFrameControl(TDBGrid(Sender).Canvas.Handle, Rect, DFC_BUTTON, Style);
end;
← →
Stanislav © (2004-12-24 16:58) [1]Используй EhLib там все реализованно !
Если конечно твоя задача не заключается в рисовании Checkbox.
← →
REA (2004-12-24 17:01) [2]Иногда нужно устанавливать DFCS_CHECKED в Style
← →
denis24 (2004-12-24 17:34) [3]2 fea
А если у меня все чекбоксы должны быть не отмечены?
← →
У (2004-12-24 18:32) [4]ты MouseDown/MouseUp отрабатываешь?
или как нарисованный чекбокс узнает, что ты по нему
кликнул???
← →
denis24 (2004-12-28 16:38) [5]to У
Ты когда просто Tcheckbox на форму кидаеш тоже onmousedown отрабатываеш?
← →
begin...end © (2004-12-28 16:40) [6]> [5] denis24 (28.12.04 16:38)
Хамить не надо. Подсказывают правильно. Нарисованный и настоящий checkbox - далеко не одно и то же. Нарисованный - это просто картинка. Поэтому придётся отслеживать клики над ним и перерисовывать в другом состоянии.
← →
denis24 (2004-12-28 16:58) [7]В примере "Разноцветный грид" расказывалось про эти чекбоксы.
Там про события грида ни слова....
Как отлавливать что кликнули на этом поле?
← →
Vlad © (2004-12-28 17:04) [8]
> denis24 (28.12.04 16:58) [7]
Разницу между классом TCheckBox и нарисованной картинкой ввиде квадратика с галочкой видишь?
По сабжу:
если хочешь чтоб чекбокс переключался, то imho, самое грамотное решение создать собственный InplaceEditor с чекбоксом (см. реализацию класса TInplaceEdit)
Хотя можно и в гриде событие OnCellClick обрабатывать, но это не есть гуд. (imho)
← →
begin...end © (2004-12-28 17:10) [9]> [7] denis24 (28.12.04 16:58)
По событию OnMouseDown можно получить координаты мыши (X, Y) в момент, когда произошёл клик. После этого можно с помощью метода MouseToCell получить номера строки и столбца, соответствующие этим координатам. Если кликнули на ячейке в столбце, содержащем checkbox"ы, то перерисовываем соответствующий checkbox.
> [8] Vlad © (28.12.04 17:04)
> самое грамотное решение создать собственный InplaceEditor
> с чекбоксом
Но не самое быстрое.
> Хотя можно и в гриде событие OnCellClick обрабатывать
...если бы оно там было.
← →
Vlad © (2004-12-28 17:16) [10]
> begin...end © (28.12.04 17:10) [9]
> Но не самое быстрое.
а где сказано что нужно быстро? (см. дату создания ветки)
> ...если бы оно там было.
есть сомнения?
← →
begin...end © (2004-12-28 17:19) [11]> [10] Vlad © (28.12.04 17:16)
> а где сказано что нужно быстро? (см. дату создания ветки)
Я не в этом смысле. А в смысле ресурсоёмкости.
> есть сомнения?
Я не заметил, что у него TDBGrid. Там оно есть. Мои извинения.
← →
denis24 (2004-12-29 09:45) [12]Всем спасибо.Все получилось.
В событии грида oncellclick присваиваю нужные значения полю с галочками и грид перерисовывает все сам.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c