📄 gridtitle.pas
字号:
unit GridTitle;
interface
uses
SysUtils, Classes,Forms,DBGrids,DbGridEh,ADODB,TitleDesign,Controls,inifiles,
tools,dialogs;
type
TGridTitle = class(TComponent)
private
FAbout:string;
//FConnection:TADOConnection;
//FQQ:TADOQuery;
FGTDesign:Ttitledesign_form;
//procedure SetConnection(Value:TADOConnection);
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetGridTitle(GridForm:TForm;DbGrid:TDbGrid);OverLoad;
procedure SetGridTitle(GridForm:TForm;DbGridEh:TDbGridEh);OverLoad;
procedure DesignGridTitle(GridForm:TForm;DbGrid:TDbGrid);overload;
procedure DesignGridTitle(GridForm:TForm;DbGridEh:TDbGridEh);overload;
procedure SetGridTitle(GridForm:TForm;DbGrid:TDbGrid;SignName:string);OverLoad;
procedure SetGridTitle(GridForm:TForm;DbGridEh:TDbGridEh;SignName:string);OverLoad;
procedure DesignGridTitle(GridForm:TForm;DbGrid:TDbGrid;SignName:string);overload;
procedure DesignGridTitle(GridForm:TForm;DbGridEh:TDbGridEh;SignName:string);overload;
{ Public declarations }
published
//property Connection:TADOConnection read FConnection write SetConnection;
Property About:string read FAbout write Fabout;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('DbAnyWhere', [TGridTitle]);
end;
constructor TGridTitle.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
//FQQ:=TADOQuery.Create(nil);
FGTDesign:=Ttitledesign_form.Create(nil);
{Fabout:='>>表格栏目的显示和排序<<'+chr(13)+
'数据库结构:'+chr(13)+
'GT_ID:自动编号(可删除)'+chr(13)+
'GT_Code:栏目编号(所属窗体名称+ _ +设定表格名称)'+chr(13)+
'GT_Order:栏目排序'+chr(13)+
'GT_VS:栏目的可见性';}
Fabout:='DbAnyWhere GridTitle Vcl';
end;
destructor TGridTitle.Destroy;
begin
inherited Destroy;
//FreeAndNil(FQQ);
FreeAndNil(FGTDesign);
end;
procedure TGridTitle.SetGridTitle(GridForm:TForm;DbGrid:TDbGrid);
var
i,j:integer;
title_str:string;
title_list:Tstringlist;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrid.Name,'');
if length(trim(title_str))>0 then
begin
Title_list:=Tstringlist.Create;
title_list.Text:=replace(title_str,'#',chr(13),false);
for j:=0 to title_list.Count-1 do
begin
//设置表头的显示
for i:=0 to Dbgrid.Columns.Count-1 do
begin
if dbgrid.Columns[i].FieldName=copy(title_list.Strings[j],6,length(title_list.Strings[j])-5) then
begin
dbgrid.Columns[i].Width:=strtoint(copy(title_list.Strings[j],2,4));
if copy(title_list.Strings[j],1,1)='1' then dbgrid.Columns[i].Visible:=true;
if copy(title_list.Strings[j],1,1)='0' then dbgrid.Columns[i].Visible:=false;
dbgrid.Columns.Items[i].Index:=j;
dbgrid.Repaint;
end;
end;
end;
freeandnil(title_list);
end;
freeandnil(ini1);
end;
procedure TGridTitle.SetGridTitle(GridForm:TForm;DbGridEh:TDbGridEh);
var
i,j:integer;
title_str:string;
title_list:Tstringlist;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrideh.Name,'');
if length(trim(title_str))>0 then
begin
Title_list:=Tstringlist.Create;
title_list.Text:=replace(title_str,'#',chr(13),false);
for j:=0 to title_list.Count-1 do
begin
//设置表头的显示
for i:=0 to Dbgrideh.Columns.Count-1 do
begin
if dbgrideh.Columns[i].FieldName=copy(title_list.Strings[j],6,length(title_list.Strings[j])-5) then
begin
//showmessage(copy(title_list.Strings[j],2,4));
dbgrideh.Columns[i].Width:=strtoint(copy(title_list.Strings[j],2,4));
if copy(title_list.Strings[j],1,1)='1' then dbgrideh.Columns[i].Visible:=true;
if copy(title_list.Strings[j],1,1)='0' then dbgrideh.Columns[i].Visible:=false;
dbgrideh.Columns.Items[i].Index:=j;
dbgrideh.Repaint;
end;
end;
end;
freeandnil(title_list);
end;
freeandnil(ini1);
end;
procedure TGridTitle.DesignGridTitle(GridForm:TForm;DbGrid:TDbGrid);
var
i:integer;
title_str:string;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrid.Name,'');
FGTDesign.cb.Items.Clear;
FGTDesign.cb1.Items.Clear;
for i:=0 to dbgrid.Columns.Count-1 do
begin
FGTDesign.cb.Items.Add(dbgrid.Columns[i].Title.Caption);
FGTDesign.cb1.Items.Add(dbgrid.Columns[i].FieldName);
FGTDesign.cb.Checked[i]:=dbgrid.Columns.Items[i].Visible;
end;
FGTDesign.setgrid(dbgrid);
FGTDesign.ShowModal;
if length(trim(FGTDesign.str))>0 then
begin
//保存
ini1.WriteString('GTVS',gridform.Name+'_'+dbgrid.Name,FGTDesign.str);
end;
//重新提取
self.SetGridTitle(gridform,dbgrid);
end;
procedure TGridTitle.DesignGridTitle(GridForm:TForm;DbGridEh:TDbGridEh);
var
i:integer;
title_str:string;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrideh.Name,'');
FGTDesign.cb.Items.Clear;
FGTDesign.cb1.Items.Clear;
for i:=0 to dbgrideh.Columns.Count-1 do
begin
FGTDesign.cb.Items.Add(dbgrideh.Columns[i].Title.Caption);
FGTDesign.cb1.Items.Add(dbgrideh.Columns[i].FieldName);
FGTDesign.cb.Checked[i]:=dbgrideh.Columns.Items[i].Visible;
end;
FGTDesign.setgrid(dbgrideh);
FGTDesign.ShowModal;
if length(trim(FGTDesign.str))>0 then
begin
//保存
ini1.WriteString('GTVS',gridform.Name+'_'+dbgrideh.Name,FGTDesign.str);
end;
//重新提取
self.SetGridTitle(gridform,dbgrideh);
end;
//////////////////////////////////////////////////////////////////
procedure TGridTitle.SetGridTitle(GridForm:TForm;DbGrid:TDbGrid;SignName:string);
var
i,j:integer;
title_str:string;
title_list:Tstringlist;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrid.Name+'_'+SignName,'');
if length(trim(title_str))>0 then
begin
Title_list:=Tstringlist.Create;
title_list.Text:=replace(title_str,'#',chr(13),false);
for j:=0 to title_list.Count-1 do
begin
//设置表头的显示
for i:=0 to Dbgrid.Columns.Count-1 do
begin
if dbgrid.Columns[i].FieldName=copy(title_list.Strings[j],6,length(title_list.Strings[j])-5) then
begin
dbgrid.Columns[i].Width:=strtoint(copy(title_list.Strings[j],2,4));
if copy(title_list.Strings[j],1,1)='1' then dbgrid.Columns[i].Visible:=true;
if copy(title_list.Strings[j],1,1)='0' then dbgrid.Columns[i].Visible:=false;
dbgrid.Columns.Items[i].Index:=j;
dbgrid.Repaint;
end;
end;
end;
freeandnil(title_list);
end;
freeandnil(ini1);
end;
procedure TGridTitle.SetGridTitle(GridForm:TForm;DbGridEh:TDbGridEh;SignName:string);
var
i,j:integer;
title_str:string;
title_list:Tstringlist;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrideh.Name+'_'+SignName,'');
if length(trim(title_str))>0 then
begin
Title_list:=Tstringlist.Create;
title_list.Text:=replace(title_str,'#',chr(13),false);
for j:=0 to title_list.Count-1 do
begin
//设置表头的显示
for i:=0 to Dbgrideh.Columns.Count-1 do
begin
if dbgrideh.Columns[i].FieldName=copy(title_list.Strings[j],6,length(title_list.Strings[j])-5) then
begin
//showmessage(copy(title_list.Strings[j],2,4));
dbgrideh.Columns[i].Width:=strtoint(copy(title_list.Strings[j],2,4));
if copy(title_list.Strings[j],1,1)='1' then dbgrideh.Columns[i].Visible:=true;
if copy(title_list.Strings[j],1,1)='0' then dbgrideh.Columns[i].Visible:=false;
dbgrideh.Columns.Items[i].Index:=j;
//dbgrideh.Repaint;
end;
end;
end;
freeandnil(title_list);
end;
freeandnil(ini1);
end;
procedure TGridTitle.DesignGridTitle(GridForm:TForm;DbGrid:TDbGrid;SignName:string);
var
i:integer;
title_str:string;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrid.Name+'_'+SignName,'');
FGTDesign.cb.Items.Clear;
FGTDesign.cb1.Items.Clear;
for i:=0 to dbgrid.Columns.Count-1 do
begin
FGTDesign.cb.Items.Add(dbgrid.Columns[i].Title.Caption);
FGTDesign.cb1.Items.Add(dbgrid.Columns[i].FieldName);
FGTDesign.cb.Checked[i]:=dbgrid.Columns.Items[i].Visible;
end;
FGTDesign.setgrid(dbgrid);
FGTDesign.ShowModal;
if length(trim(FGTDesign.str))>0 then
begin
//保存
ini1.WriteString('GTVS',gridform.Name+'_'+dbgrid.Name+'_'+SignName,FGTDesign.str);
end;
freeandnil(ini1);
//重新提取
self.SetGridTitle(gridform,dbgrid,signname);
end;
procedure TGridTitle.DesignGridTitle(GridForm:TForm;DbGridEh:TDbGridEh;SignName:string);
var
i:integer;
title_str:string;
ini1:Tinifile;
begin
ini1:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'GTConfig.ini');
title_str:=ini1.ReadString('GTVS',gridform.Name+'_'+dbgrideh.Name+'_'+SignName,'');
FGTDesign.cb.Items.Clear;
FGTDesign.cb1.Items.Clear;
for i:=0 to dbgrideh.Columns.Count-1 do
begin
FGTDesign.cb.Items.Add(dbgrideh.Columns[i].Title.Caption);
FGTDesign.cb1.Items.Add(dbgrideh.Columns[i].FieldName);
FGTDesign.cb.Checked[i]:=dbgrideh.Columns.Items[i].Visible;
end;
FGTDesign.setgrid(dbgrideh);
FGTDesign.ShowModal;
if length(trim(FGTDesign.str))>0 then
begin
//保存
ini1.WriteString('GTVS',gridform.Name+'_'+dbgrideh.Name+'_'+SignName,FGTDesign.str);
end;
//重新提取
self.SetGridTitle(gridform,dbgrideh,signname);
end;
{procedure TGridTitle.SetConnection(Value:TADOConnection);
begin
FConnection:=Value;
FQQ.Connection:=FConnection;
end; }
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -