lazarus-ccr/components/rx/rxdbgrid_columsunit.pas

79 lines
1.6 KiB
ObjectPascal

unit rxdbgrid_columsunit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, CheckLst,
StdCtrls, Buttons, rxdbgrid;
type
{ TrxDBGridColumsForm }
TrxDBGridColumsForm = class(TForm)
Button1: TButton;
Button2: TButton;
CheckListBox1: TCheckListBox;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
private
FGrid:TRxDBGrid;
procedure SetGrid(AGrid:TRxDBGrid);
procedure SetGridColumnsVisible;
public
{ public declarations }
end;
procedure ShowRxDBGridColumsForm(Grid:TRxDBGrid);
implementation
procedure ShowRxDBGridColumsForm(Grid: TRxDBGrid);
var
rxDBGridColumsForm: TrxDBGridColumsForm;
begin
rxDBGridColumsForm:=TrxDBGridColumsForm.Create(Application);
rxDBGridColumsForm.SetGrid(Grid);
if rxDBGridColumsForm.ShowModal = mrOk then
rxDBGridColumsForm.SetGridColumnsVisible;
rxDBGridColumsForm.Free;
end;
{ TrxDBGridColumsForm }
procedure TrxDBGridColumsForm.SetGrid(AGrid: TRxDBGrid);
var
i:integer;
begin
if AGrid=FGrid then exit;
FGrid:=AGrid;
CheckListBox1.Items.Clear;
if Assigned(AGrid) then
begin
for i:=0 to AGrid.Columns.Count-1 do
begin
CheckListBox1.Items.Add(AGrid.Columns[i].Title.Caption);
CheckListBox1.Checked[i]:=AGrid.Columns[i].Visible;
end;
end;
end;
procedure TrxDBGridColumsForm.SetGridColumnsVisible;
var
i:integer;
begin
if Assigned(FGrid) then
begin
for i:=0 to CheckListBox1.Items.Count-1 do
FGrid.Columns[i].Visible:=CheckListBox1.Checked[i];
end;
end;
initialization
{$I rxdbgrid_columsunit.lrs}
end.