Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

Как обработать OnCellClick при dgRowSelect = true   Найти похожие ветки 

 
Vi0let   (2004-01-27 07:17) [0]

Когда обработываешь событие OnCellClick и в Options лежит dgRowSelect полученный Column - всегда первая колонка. Как обработать нажатие на произвольную колонку?


 
ЮЮ   (2004-01-27 07:59) [1]

Убрать dgRowSelect, естественно. А выделение текущей записи цветом сделать в OnDrawColumnCell


 
Vi0let   (2004-01-27 11:07) [2]

Сэнюкью вэри мач


 
Vi0let   (2004-01-30 02:51) [3]

ЮЮ
как определить в OnDrawColumnCell, что ячейка относится к текущей строке
всяко разно перепробовал


 
ЮЮ   (2004-01-30 05:26) [4]

1 Способ.
В обработчике DBGrid.DataSource.DataSet.AfterScroll запоминать значение ключевого поля, например:

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
DBGrid1.Tag := DataSet.Fields[0].AsInteger;
end;

теперь при отрисовке мы можем узнть рисуем ли мы текущую запись или нет:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
gr: TDBGrid;
begin
gr := TDBGrid(Sender);
if (gr.DataSource.DataSet.Fields[0].asInteger = gr.tag) then begin
// рисуем поля текущей записи
gr.Canvas.Brush.Color := clHighlight;
gr.Canvas.Font.Color := clHighlightText;
end;
gr.DefaultDrawDataCell(Rect, Column.Field, []);
end;


2 способ.
Написать собственного наследника TDBGrid, перекрыв DrawCell и написав его так, как душе угодно


 
Vi0let   (2004-01-30 08:35) [5]

спасибо понял
я пробовал нечто похожее, но у меня при этом почемуто красилось все:
if gr.DataSet["num"] = tblMain["num"]) then ...


 
ЮЮ   (2004-01-30 08:53) [6]

потому что tblMain и gr.DataSource.DataSet - это один и тот же объект. Более того, в OnDraw... Grida текущей записью является именно "рисуемая" запись, а не та, про которую ты думаешь, что она осталась "текущей", правда в этом есть и плюс, можно раскрашивать поле в нужный колер, основываясь на значения других полей текущей записи.
Но именно поэтому "привязаться" к текущей записи надо не в OnDraw, а заранее в OnAfterScroll


 
Vi0let   (2004-01-30 10:40) [7]

ну теперь то, я всё знаю про TDBGrid :)


 
Gorlum   (2004-01-30 11:42) [8]

>Vi0let © (30.01.04 10:40) [7]
Уверен? Тогда почитай:
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/helloworld/dbgridcolor.htm



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
1-79817
Edik86
2004-02-13 22:25
2004.02.25
Программа дала сбой


1-79796
Vlad
2004-02-11 11:42
2004.02.25
Как получить String имея указатель и длину ?


1-80017
Developer
2004-02-13 08:59
2004.02.25
Объект автоматизации с поддержкой определенного COM-интерфейса


4-80369
BiN
2003-12-17 11:38
2004.02.25
NetGetJoinInformation - портирование функции


14-80242
able
2004-02-03 16:20
2004.02.25
Задержка.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский