А вот эта вот штука зароботала по человечески ура...я прост рад...
14-05-2005 12:13
к комментариям - к полной версии
- понравилось!
procedure shten(s:string;var id,vis,gind,wid,ind: integer);
var sss:string;
k,i:integer;
begin
k:=0;
sss:='';
for i:=1 to length(s)do
begin
if s[i]<>':' then sss:=sss+s[i] else
begin
k:=k+1;
case k of
1:id:=strtoint(sss);
2:vis:=strtoint(sss);
3:gind:=strtoint(sss);
4:wid:=strtoint(sss);
end;
sss:='';
end;
end;
ind:=strtoint(sss);
end;
procedure TQueryForm.LoadStateFromReg;
var
r:TRegistry;
mm:TMemoryStream;
s:Tstrings;
nar,vis,ind,gind,i,id,wid:integer;
sss,naz:string;
begin
nar:=0;
r:=TRegistry.create;
s:=TStringList.Create;
r.RootKey:=HKEY_CURRENT_USER;
if r.OpenKey('Software\PaulsYard\REDB\redb_client\QueryForm\Table',false)=false then exit;
try
try
mm:=TMemoryStream.Create;
mm.SetSize(r.ReadInteger('SIZEBUF_'+inttostr(FSubtypeID)));
r.ReadBinaryData('COLUMNS_'+inttostr(FSubtypeID),mm.Memory^,r.ReadInteger('SIZEBUF_'+inttostr(FSubtypeID)));
mm.Position:=0;
s.LoadFromStream(mm);
naz:=TableView.Preview.Column.Caption;
for i:=0 to s.Count-1 do
begin
sss:=s[i];
shten(sss,Id,vis,gind,wid,ind);
// if TableView.Columns[id].Caption<>naz then TableView.Preview.Column:=TableViewSubject else TableView.Preview.Column:=nil;
(TableView.FindItemByID(id) as TcxGridColumn).GroupIndex:=gind;
(TableView.FindItemByID(id) as TcxGridColumn).Width:=wid;
case vis of
-1:(TableView.FindItemByID(id) as TcxGridColumn).Visible:=true;
0:(TableView.FindItemByID(id) as TcxGridColumn).Visible:=false;
end;
(TableView.FindItemByID(id) as TcxGridColumn).Index:=ind;
end;
finally
r.Free;
mm.Free;
end;
except
end;
s.Free;
end;
procedure TQueryForm.SaveStateToReg;
var
r:TRegistry;
i:integer;
s:TStrings;
mm:TMemoryStream;
begin
r:=TRegistry.Create;
try
r.RootKey:=HKEY_CURRENT_USER;
r.OpenKey('Software\PaulsYard\REDB\redb_client\QueryForm\Table',true);
try
s:=TStringList.Create;
try
for i:=0 to TableView.ColumnCount-1 do
begin
s.Add(IntToStr(TableView.Columns[i].id)+':'+
BoolToStr(TableView.Columns[i].Visible)+':'+
IntToStr(TableView.Columns[i].GroupIndex)+':'+
IntToStr(TableView.Columns[i].Width)+':'+
IntToStr(TableView.Columns[i].Index));
end;
mm:=TMemoryStream.Create;
try
s.SaveToStream(mm);
r.WriteBinaryData('COLUMNS_'+inttostr(FSubtypeID),mm.Memory^,mm.Size);
r.WriteInteger('SIZEBUF_'+inttostr(FSubtypeID),mm.Size);
finally
mm.Free;
end;
finally
s.free;
end;
finally
r.CloseKey;
end;
finally
r.Free;
end;
end;
вверх^
к полной версии
понравилось!
в evernote