Вниз
Скачать: CL | DM;

BDGrid, сохранение параметров Ширины   Найти похожие ветки 

← →
Loki3D ©   (2006-03-19 14:37) [0]

Хочу изящно решить проблему сохранения значений Ширины Столбцов в Сетке
изначально сделал так.
[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. Возможно есть другйо Компонент. с поддержкой вызова данного события? если есть, то какой?

На даном этапе я реализовал свою задачу неочень красиво. Воткнув Запись параметров в ИНИ на закрытие формы и на потерю фокуса. а чтение параметров.. на Получение фокуса и Открытие.


← →
Reindeer Moss Eater ©   (2006-03-19 14:57) [1]

// а здесь я сохраняю значения при изменении ширины столбцов руками(мышкой).

В событии DBGrid1DrawColumnCell ????


← →
Кашперук Иван   (2006-03-19 15:25) [2]

Если написать свой компонентик, то в onDraw очень хорошо оно все обрабатывается, потому что в OnDrawColumnCell, конечно, немного извратно :)



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.032 c
15-1143740118
xayam
2006-03-30 21:35
2006.04.23
VMWare 5.5


4-1138979686
scall
2006-02-03 18:14
2006.04.23
Как узнак к какой группе относится пользователь...


2-1144314543
fast2
2006-04-06 13:09
2006.04.23
Как в PageControl e вставить новый TabSheet среди существующих?


1-1142156181
TStas
2006-03-12 12:36
2006.04.23
КАк программно распаковать папку?


15-1143694495
Ega23
2006-03-30 08:54
2006.04.23
С Днём рождения! 30 марта




   Наверх