![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BDGrid, сохранение параметров Ширины [D5, WinXP]
Loki3D © (2006-03-19 14:37:00)Хочу изящно решить проблему сохранения значений Ширины Столбцов в Сетке
изначально сделал так.
[code]
// в этой процедуре я читаю из ИНИ файла значения ширины
procedure TForm8.GridSizing ();
var
i:integer;
Begin
config:=TIniFile.Create ('../files/config.ini');
Form8.DBGrid1.Columns [0].Visible := false;
For i:=1 to Form8.DBGrid1.FieldCount - 1 do
begin
// проверка наличия переменной Col
If Config.ValueExists ('F8','Col'+ IntToStr(i)) then
begin
Form8.DBGrid1.Columns [i].Width := StrToInt (Config.ReadString ('F8','Col'+ IntToStr(i),''));
end;
end;
end;
// а здесь я сохраняю значения при изменении ширины столбцов руками(мышкой).
procedure TForm8.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
i: integer;
begin
For i:=1 to Form8.DBGrid1.Columns.Count-1 do
begin
Config.WriteString ('F8','Col' + intToStr(i),IntToStr(Form8.DBGrid1.Columns[i].Width));
end;
end;
[/code]
Фигня в том, что в одной из форм, просиходит вызов процедуры
ABSTable.COpyTable (...)
при этом Сетка в Форме обновляется и рисуется с той шириной, которая заложена в описании полей Таблици. А при Рисовании ячеек эти данныве сохраняются.
К сожалению нету у TDBGrid события, которое присходило бы на изменение размера столбца.
Вопорс. 1.Тяжелоли изменить готовый компонент, и самому написать это событие?
2. Возможно есть другйо Компонент. с поддержкой вызова данного события? если есть, то какой?
На даном этапе я реализовал свою задачу неочень красиво. Воткнув Запись параметров в ИНИ на закрытие формы и на потерю фокуса. а чтение параметров.. на Получение фокуса и Открытие.
Кашперук Иван (2006-03-19 15:25:00) [1]Если написать свой компонентик, то в onDraw очень хорошо оно все обрабатывается, потому что в OnDrawColumnCell, конечно, немного извратно :)
Reindeer Moss Eater (2006-03-19 14:57:00) [2]// а здесь я сохраняю значения при изменении ширины столбцов руками(мышкой).
В событии DBGrid1DrawColumnCell ????