Вниз
Скачать: 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.025 c
2-1144691948
Системщик
2006-04-10 21:59
2006.04.23
Функция CASE


2-1144417209
KSN
2006-04-07 17:40
2006.04.23
Проблема с отображением MDIСhild


2-1144315983
Sergio77
2006-04-06 13:33
2006.04.23
mysql доступ


2-1144303276
MiHoY
2006-04-06 10:01
2006.04.23
TServerSocket


15-1143877616
VictorT
2006-04-01 11:46
2006.04.23
А кого как развели?




   Наверх