Arkadaşlar birkaç yıl önce cxgrid kullanıyor ve grid içerisindeki kolon bilgilerini diske kayıt edip yükleme işlemlerini yapabiliyordum.
Bir süre cxgrid kullanmama kararı verip daha sade listelerle çalıştım. Şimdi detaylı listelere ihtiyacım olduğu için tekra cxgrid
kullanım yoluna başvurdum. Tabi daha yeni bir versiyonu tercih ettim(6.24). Ancak şimdi daha önce kullandığım kayıt tekniğiyle kolon bilgilerini tam olarak kayıt edemedim. Kolonların alan adı, görünen adı gibi önemli özellikleri dosyaya yazılmıyor.
Kodlardan ilgili bilgi bazı bölümleri aşağıda veriyorum:
Çalışma zamanında kolon oluşturan kod bloğu:
Kod: Tümünü seç
if (fcxGrid.ActiveView as TcxGridDBTableView).ColumnCount<gci then
cxnc:=(fcxGrid.ActiveView as TcxGridDBTableView).CreateColumn else
cxnc:=(fcxGrid.ActiveView as TcxGridDBTableView).Columns[gci-1];
with cxnc do
Begin
Name:=fgrdn+'Item'+Inttostr(j);
if FColumns.Items[j].DisplayField='' then
DataBinding.FieldName:=FColumns.Items[j].ColField Else
DataBinding.FieldName:=FColumns.Items[j].DisplayField;
Alignment:=FColumns.Items[j].Alignment;
HeaderAlignmentHorz:=FColumns.Items[j].HAlignment;
Width:=FColumns.Items[j].Width;
Visible:=FColumns.Items[j].visible;
End;
titlecap:='';
if (FColumns.Items[j].ColLangWord<>'') and Assigned(FASCGetLangWord) then
titlecap:=FASCGetLangWord(FColumns.Items[j].ColLangWord);
if titlecap='' then
begin
if FColumns.Items[j].ColumnTitle='' then
begin
titlecap:=nc.FieldName;
end else
titlecap:=FColumns.Items[j].ColumnTitle;
end;
FColumns.Items[j].ColumnTitle:=titlecap;
if FColumns.Items[j].Order=1 Then sbstr:='(>)'
Else if FColumns.Items[j].Order=2 Then sbstr:='(<)' Else sbstr:='';
cxnc.Caption:=titlecap+sbstr;
Kod: Tümünü seç
function TASCcxGrid.SaveColumns:Boolean;
Begin
Result:=False;
Try
if GridListName<>'' then
Begin
if (Self.ActiveView is TcxGridDBTableView) Then
Begin
(Self.ActiveView as TcxGridDBTableView).StoreToIniFile(
ASCListFilePath+GridListName+ASCcxGridExtension,True,
[gsoUseFilter,gsoUseSummary],GetObjName(GridListName+'Lst'));
Result:=True;
end;
end;
Except
Result:=False;
end;
end;
function TASCcxGrid.LoadColumns:Boolean;
Begin
Result:=False;
Try
if GridListName<>'' then
Begin
if (Self.ActiveView is TcxGridDBTableView) Then
Begin
if FileExists(ASCListFilePath+GridListName+ASCcxGridExtension) then
Begin
(Self.ActiveView as TcxGridDBTableView).RestoreFromIniFile(
ASCListFilePath+GridListName+ASCcxGridExtension,True,True,
[gsoUseFilter,gsoUseSummary],GetObjName(GridListName+'Lst'));
Result:=True;
end;
end;
end;
Except
Result:=False;
end;
end;
Teşekkür ederim.