Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизВыделение записи в таблице Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c