Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Помогите создать в гриде чекбокс   Найти похожие ветки 

 
Сергей_И   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
14-1086173050
}|{yk
2004-06-02 14:44
2004.06.20
Что я нашел !!!


14-1085691642
k@rt
2004-05-28 01:00
2004.06.20
Эксперты


1-1086679250
z3f
2004-06-08 11:20
2004.06.20
Ошибка 103 - почему?


6-1083148113
snake1977
2004-04-28 14:28
2004.06.20
Прослушивание портов


14-1086056513
try
2004-06-01 06:21
2004.06.20
JEDI компаненты