fieldselect.pas

来自「一个很好用的万能查询控件。部分代码经过更改。」· PAS 代码 · 共 129 行

PAS
129
字号
unit FieldSelect;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, DBGridEh,  ExtCtrls, DBGrids,
   CheckLst, DB, DBTables;

type
  TfrmFieldSelect = class(TForm)
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    cl: TCheckListBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private

  public
    { Public declarations }
  end;


var
  frmFieldSelect: TfrmFieldSelect;
implementation

uses FindClass;

{$R *.DFM}



procedure TfrmFieldSelect.RadioButton1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to cl.Items.Count - 1 do
    cl.Checked[i] := True;

end;

procedure TfrmFieldSelect.RadioButton2Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to cl.Items.Count - 1 do
    cl.Checked[i] := False;

end;

procedure TfrmFieldSelect.FormShow(Sender: TObject);
 var
  i, j: integer;
begin
  cl.Items.Clear;
  if gbIsDBGridEh then
  with gFForm do begin
      for j := 0 to ComponentCount - 1 do
        if Components[j] is TDBGridEh then
        if (Components[j] as TDBGridEh).Name = gsGridName then begin
            for i := 0 to (Components[j] as TDBGridEh).Columns.Count - 1 do
              begin
                cl.Items.Add((Components[j] as TDBGridEh).Columns[i].Title.Caption);
                cl.Checked[i] := True;
              end;
          end;
    end;
  if gbIsDBGrid then
    with gFForm do begin
      for j := 0 to ComponentCount - 1 do
        if Components[j] is TDBGrid then begin
          if (Components[j] as TDBGrid).Name = gsGridName then begin
            FDBGrid := TDBGrid(Components[j]);
            for i := 0 to FDBGrid.Columns.Count - 1 do
            begin
                cl.Items.Add(FDBGrid.Columns[i].Title.Caption);
                cl.Checked[i] := True;
            end;
          end;
        end;
    end;
end;

procedure TfrmFieldSelect.Button1Click(Sender: TObject);
var
  i, j: integer;
begin
  if gbIsDBGridEh then
  with gFForm do begin
      for j := 0 to ComponentCount - 1 do
        if Components[j] is TDBGridEh then
        if (Components[j] as TDBGridEh).Name = gsGridName then begin
            for i := 0 to (Components[j] as TDBGridEh).Columns.Count - 1 do
              begin
                (Components[j] as TDBGridEh).Columns[i].Visible := cl.Checked[i];
              end;
          end;
    end;
  if gbIsDBGrid then
    with gFForm do begin
      for j := 0 to ComponentCount - 1 do
        if Components[j] is TDBGrid then begin
          if (Components[j] as TDBGrid).Name = gsGridName then begin
            FDBGrid := TDBGrid(Components[j]);
            for i := 0 to FDBGrid.Columns.Count - 1 do
            begin
            FDBGrid.Columns[i].Visible := cl.Checked[i];
            end;
          end;
        end;
    end;
  Close;

end;

procedure TfrmFieldSelect.Button2Click(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?