![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выделение записи в таблице [D7, Paradox]
sloug © (2004-12-10 22:23:00)Привет всем знатокам и просто хорошим людям. Дело такое. Мне надо выделить из таблицы те записи, которые удовлетворяют определенному условию. Я это делаю так:
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. Но я никак не могу сообразить какие события мне обработать и что в них написать. Спасибо!
janb (2004-12-13 10:15:00) [1]
> Johnmen © (12.12.04 01:22) [6]
подробное
Создай переменную
а:=Form2.ColorBox3.Selected;
DBGrid1.Canvas.Brush.Color:=а;
Так?
Johnmen (2004-12-12 01:22:00) [2]1. А что получается в ини файле ?
2. Нужна переменная со значением цвета, в которую считывается значение из ини и значение которой используется при отрисовке...
sloug (2004-12-11 11:04:00) [3]Я пишу так:
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;
Но при этом настройки сбиваются. Почему, не могу понять. Что я не так пишу?
}{ander (2004-12-10 23:17:00) [4]//Но я никак не могу сообразить какие события мне обработать и что в них написать.
Ты же уже написал обработчик нужного события - TForm1.DBGrid1DrawColumnCell
Осталось дело за малым - в строке
DBGrid1.Canvas.Brush.Color:=clred
подставить вместо clred нужный цвет. А его ты можешь определить из того ини-файла, о котором говорил :-)
Johnmen (2004-12-10 23:10:00) [5]Я просто не понимаю, в чем проблема...
sloug (2004-12-10 22:41:00) [6]Молчит.
Johnmen (2004-12-10 22:30:00) [7]А что там F1 говорит ?