Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.029 c
6-1081936453
V@LER@N
2004-04-14 13:54
2004.06.20
Packet Capture


4-1084558183
Druid
2004-05-14 22:09
2004.06.20
Загрузка строки из памяти в TMemo


4-1084786645
DmitryV.
2004-05-17 13:37
2004.06.20
COM порт


9-1077127910
G A M E R
2004-02-18 21:11
2004.06.20
Оцените Engine восмикласника


1-1086435011
Walkie Talkie
2004-06-05 15:30
2004.06.20
Количество прочитанных байт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский