Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выделение записи в таблице [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 говорит ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо