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

Вниз

Выделение записи в таблице   Найти похожие ветки 

 
sloug ©   (2004-12-10 22:23) [0]

Привет всем знатокам и просто хорошим людям. Дело такое. Мне надо выделить из таблицы те записи, которые удовлетворяют определенному условию. Я это делаю так:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  If ... then
  Begin
   DBGrid1.Canvas.Brush.Color:=clred;
   DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  End;
end;
Все прекрасно работает. Но тут я сделал свойства, в которых хочу сделать так, чтобы пользователь мог выбрать цвет, которым будет выделяться эта самая запись.Делаю все при помощи TiniFiles. На форме размещен colorbox. Но я никак не могу сообразить какие события мне обработать и что в них написать. Спасибо!


 
Johnmen ©   (2004-12-10 22:30) [1]

А что там F1 говорит ?


 
sloug ©   (2004-12-10 22:41) [2]

Молчит.


 
Johnmen ©   (2004-12-10 23:10) [3]

Я просто не понимаю, в чем проблема...


 
}{ander ©   (2004-12-10 23:17) [4]

//Но я никак не могу сообразить какие события мне обработать и что в них написать.

Ты же уже написал обработчик нужного события - TForm1.DBGrid1DrawColumnCell

Осталось дело за малым - в строке

DBGrid1.Canvas.Brush.Color:=clred

подставить вместо clred нужный цвет. А его ты можешь определить из того ини-файла, о котором говорил :-)


 
sloug ©   (2004-12-11 11:04) [5]

Я пишу так:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 If ... then
 Begin
  DBGrid1.Canvas.Brush.Color:=Form2.ColorBox3.Selected;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 End;
end;
Затем при нажатии на кнопке "Применить":
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Options:=TiniFile.Create(Path+"Options.ini");
Options.WriteInteger("MainForm", "DrawColSel", Form1.DBGrid1.Canvas.Brush.Color);
Options.Free
End;
Затем при активации формы:
procedure TForm1.FormActivate(Sender: TObject);
begin
Options:= TIniFile.Create(Path+"Options.ini");
Form1.DBGrid1.Canvas.Brush.Color:=Options.ReadInteger("MainForm", "DrawColSel", 0);
Options.Free;
End;
Но при этом настройки сбиваются. Почему, не могу понять. Что  я не так пишу?


 
Johnmen ©   (2004-12-12 01:22) [6]

1. А что получается в ини файле ?
2. Нужна переменная со значением цвета, в которую считывается значение из ини и значение которой используется при отрисовке...


 
janb   (2004-12-13 10:15) [7]


> Johnmen ©   (12.12.04 01:22) [6]

подробное
Создай переменную
а:=Form2.ColorBox3.Selected;

DBGrid1.Canvas.Brush.Color:=а;

Так?



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

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.145 c
6-1098876726
boban
2004-10-27 15:32
2005.01.16
Доступ к файлам, большое к-во файлов в папке


4-1101632434
mospehraict
2004-11-28 12:00
2005.01.16
перехват мыши при drag-n-drop файлов на объект


1-1104748480
Roobee
2005-01-03 13:34
2005.01.16
TParser - как побороть?


10-1080641836
Demiurg
2004-03-30 14:17
2005.01.16
Excel таблицы на форме.


1-1104231888
Илья
2004-12-28 14:04
2005.01.16
D5 запускается без главного окна.