Форум — Ответы     (  К темам )
 ?  DrZubr: Восстановление порядка колонок DBGrid'а (01-05-2003 18:05:05)
Проблема такая. Хочу сделать так, чтобы при закрытии формы сохранялись параметры DBGrid'а (ширина колонок и их порядок).
С шириной проблем нет, а вот с порядком...

Значит, я делаю вот что: сохраняю DBGrid.Columns[i].FieldName. А при восстановлении эти самые FieldName'ы и записываю. Все бы ничего. Даже колонки отображаются в той последовательности, как в прошлый запуск программы. Но стоит переставить две колонки местами — и порядок колонок становится как в таблице БД, а не на своих местах только те, которые только что переставил.

Народ, кто знает что делать с этой бедой — пишите на мыло.

P.S. RxLib не предлагать (т.к. меня неофициальный порт под Delphi7 не впечатлил абсолютно — уж очень многое работает не так, как написано)
 Павел (04-05-2003 11:01:34)
А у Grid-a ты создаешь Columns с помощью Columns Editor или по умолчанию?
Напиши код, где не работает.
И какими методами сохраняешь порядок в Grid-e ?

У меня вроде все работает: (с помощью Columns Editor ничего не создавал)

// сохраняем порядок (здесь bSave типа TButton)
void __fastcall TForm1::bSaveClick(TObject *Sender)
{
DBGrid1->Columns->SaveToFile("GrOrd.txt");
}
//----------------------------------------------------

// когда надо — восстанавляваем его
void __fastcall TForm1::bLoadClick(TObject *Sender)
{
DBGrid1->Columns->LoadFromFile("GrOrd.txt");
}
//----------------------------------------------------

например при открытии таблицы:(DBGrid связан c Table1)
Table1->Open();
DBGrid1->Columns->LoadFromFile("GrOrd.txt");

Также у DBGrid есть методы
DBGrid1->Columns->RebuildColumns();
и
DBGrid1->Columns->RestoreDefaults(); // для шрифта и т.д. см Help