Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

Перемещение столбцов в DBGrid   Найти похожие ветки 

 
ArtemB ©   (2003-02-18 13:20) [0]

Как сохранить чередование столбцов в DBGrid ???
Я попробывал DBGrid.Columns[i].Index записывать в Ini , но что -то не получается... ведь сохранять то как? к примеру поменяли 1 со 2 сотлбцы местами. стало pos0=1 pos1=0 и опять исходное получается.... А КАК делать ???


 
Игорь Шевченко ©   (2003-02-18 13:23) [1]

procedure LoadGridLayout(aForm :TForm; RegName :string);
var
I, J, kk,
ColCount :integer;
KeyName,
CurField :string;
CurIndex,
CurWidth :integer;
begin
if not Assigned(aForm) then
Exit;
with TRegistry.Create do
try
RootKey:=HKEY_CURRENT_USER;
if not OpenKey(AppRootKey, False) then
Exit;
KeyName:=AppRootKey;
if Trim(RegName) <> "" then
KeyName:=KeyName+"\"+Trim(RegName);
KeyName:=KeyName+"\";
for kk:=0 to aForm.ComponentCount-1 do begin
if (aForm.Components[kk] is TDBGrid) and
OpenKey(KeyName+aForm.Components[kk].Name, False) then begin
ColCount:=ReadInteger("ColumnsCount");
for J:=0 to Pred(ColCount) do begin
CurField:=ReadString("Col"+IntToStr(J)+"Field");
CurIndex:=ReadInteger("Col"+IntToStr(J)+"Index");
CurWidth:=ReadInteger("Col"+IntToStr(J)+"Width");
for I:=0 to Pred(TDBGrid(aForm.Components[kk]).Columns.Count) do
with TDBGrid(aForm.Components[kk]).Columns[I] do
if (FieldName = CurField) then begin
Index:=CurIndex;
Width:=CurWidth;
end;
end;
end;
end;
finally
Free;
end;
end;

procedure StoreGridLayout(aForm :TForm; RegName :string);
var
I, kk :integer;
KeyName :string;
begin
if not Assigned(aForm) then
Exit;
with TRegistry.Create do
try
RootKey:=HKEY_CURRENT_USER;
OpenKey(AppRootKey, True);
KeyName:=AppRootKey;
if Trim(RegName) <> "" then
KeyName:=KeyName+"\"+Trim(RegName);
KeyName:=KeyName+"\";
for kk:=0 to aForm.ComponentCount-1 do begin
if (aForm.Components[kk] is TDBGrid) and
OpenKey(KeyName+aForm.Components[kk].Name, True) then begin
WriteInteger("ColumnsCount", THSDBGrid(aForm.Components[kk]).Columns.Count);
for I:=0 to Pred(TDBGrid(aForm.Components[kk]).Columns.Count) do
with TDBGrid(aForm.Components[kk]).Columns[I] do begin
WriteString("Col"+IntToStr(I)+"Field",FieldName);
WriteInteger("Col"+IntToStr(I)+"Index",Index);
WriteInteger("Col"+IntToStr(I)+"Width",Width);
end;
end;
end;
finally
Free;
end;
end;




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

Текущий архив: 2003.02.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-87562
Hint
2003-02-17 13:03
2003.02.27
Оптимизация поиска в файлах


14-87640
SergeN
2003-02-10 16:23
2003.02.27
Button-лопух?


1-87467
DikobraZ
2003-02-18 21:34
2003.02.27
Что в справке WIN32 означает FAR* ?


8-87574
tga
2002-11-11 13:59
2003.02.27
Как создать окно произвольной формы?


4-87749
markers
2003-01-14 07:41
2003.02.27
Как сделать недоступной форму?