Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизПомогите создать в гриде чекбокс Найти похожие ветки
← →
Сергей_И (2004-06-03 13:02) [0]делаю так
procedure TForm1.FormCreate(Sender: TObject);
begin
C1:=TCheckBox.Create(Self);
C.Parent:=StrinGGrid1;
C1.Width:=StrinGGrid1.ColWidths[0]-1;
C1.Left:=1;
C1.Top:=0;
C1.Checked:=true;
end;
чек бокс нарисовался в нужной ячейке грида, но при нажатии на него ничего не происходит (Checked не меняется) как это исправить?
← →
MBo © (2004-06-03 14:20) [1]парентом сделай форму.
← →
begin...end © (2004-06-03 14:20) [2]Не проще ли использовать DrawFrameControl ?
← →
Сашка (2004-06-03 14:21) [3]Не парься. Возьми EhLib Grid - он хороший и бесплатный :)
← →
Сашка (2004-06-03 14:21) [4]Удалено модератором
← →
Clickmaker © (2004-06-03 14:21) [5]На мой взгляд, правильней рисовать самому чекбокс в ячейке в OnDrawCell, DrawFrameControl, DFCS_BUTTON or DFCS_BUTTONCHECK и обрабатывать клик по ячейке
← →
Erik1 (2004-06-03 16:06) [6]Не лучше воспользоватся готовым решением или наследоватся от какогонибудь TCustomControl и вперед с песней.
← →
BFG9k (2004-06-03 19:28) [7]Просто нарисованный checkBox не будет реагировать на события. Нужен полноценный чекбокс. Обрабатываешь OnDrawCell , там есть Rect - относительно его работаешь. С помощью API функций находишь абсолютные координаты Grid"а , и совмещая их со сторонами Rect"а помещаешь поверх Grid"a чекбокс. Формально он будет независимым , но пользователь этого никогда не узнает.
P.S.: Да , ни в коем случае не делай парентом чекбокса свой грид , иначе он будет перехватывать события от мыши и т д.
← →
Vlad © (2004-06-03 19:58) [8]Вполне грамотным решением было бы создать собственный InplaceEditor c чекбоксом. Во всяком случае, в некоторых "продвинутых" гридах так и реализовано.
(но тогда вопрос уже попадает под конференцию "компоненты", из которой был перенесен :-))
← →
begin...end © (2004-06-04 09:47) [9]
> [7] BFG9k (03.06.04 19:28)
> нарисованный checkBox не будет реагировать на события
Да, но из всех событий, скорее всего, нужен только клик, так что это легко исправить с помощью TStringGrid.OnMouseDown, возможно, чего-то ещё, и повторного вызова DrawFrameControl.
> Нужен полноценный чекбокс.
А если, например, в таблице 100 строк, и возле каждой нужен CheckBox? Создавать в каждой строке полноценный? ИМХО, не очень рационально.
← →
ORMADA © (2004-06-04 12:54) [10]не нравиться EhLib сделай сам!
http://delphi.vitpc.com/asp/viewitem.asp?UrlItem=/helloworld/nogrid.htm
А ваще то нефиг замарачиваться юзай Ehlib а хош оч крутой грид юзай DevExpress ....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c