//
unit ads_DlgDBFieldFilter;
{Copyright(c)2016 Advanced Delphi Systems
Richard Maley
Advanced Delphi Systems
12613 Maidens Bower Drive
Potomac, MD 20854 USA
phone 301-840-1554
dickmaley@advdelphisys.com
The code herein can be used or modified by anyone. Please retain references
to Richard Maley at Advanced Delphi Systems. If you make improvements to the
code please send your improvements to dickmaley@advdelphisys.com so that the
entire Delphi community can benefit. All comments are welcome.
}
(*
Description: ads_DlgDBFieldFilter.pas.pas
This unit contains
*)
(*UnitIndex Master Index Implementation Section Download UnitsDescription: ads_DlgDBFieldFilter.pas This unit contains the following routines.
DlgDBFieldFilter_ads TDBFieldFilterDlg_ads.ButtonAllClick TDBFieldFilterDlg_ads.ButtonCancelClick TDBFieldFilterDlg_ads.ButtonNoneClick TDBFieldFilterDlg_ads.ButtonOKClick TDBFieldFilterDlg_ads.ButtonReSizer TDBFieldFilterDlg_ads.FormActivate TDBFieldFilterDlg_ads.FormCreate TDBFieldFilterDlg_ads.FormResize TDBFieldFilterDlg_ads.GetCenterFormLeft TDBFieldFilterDlg_ads.GetCenterFormTop TDBFieldFilterDlg_ads.GetDataSource TDBFieldFilterDlg_ads.GetMultiSelect TDBFieldFilterDlg_ads.PanelBevel TDBFieldFilterDlg_ads.ReSizeAll TDBFieldFilterDlg_ads.SetBevel TDBFieldFilterDlg_ads.SetDataSource TDBFieldFilterDlg_ads.SetMinFormHeight TDBFieldFilterDlg_ads.SetMinFormWidth TDBFieldFilterDlg_ads.SetMultiSelect TDBFieldFilterDlg_ads.SetReSizeNow
*)
interface
Uses DB;
{!~DlgDBFieldFilter_ads
}
Function DlgDBFieldFilter_ads(DataSource: TDataSource): Boolean;
implementation
Uses
ads_Exception,
SysUtils,
StdCtrls,
Buttons,
Classes,
Controls,
ExtCtrls,
Forms,
Graphics
;
Var
UnitName : String;
ProcName : String;
type
TDBFieldFilterDlg_ads = Class(TScrollingWinControl)
Public
Constructor Create(AOwner: TComponent); Override;
Destructor Destroy; Override;
Public
BaseList: TPanel;
ButtonAll: TBitBtn;
ButtonCancel: TBitBtn;
ButtonDummyAll: TBitBtn;
ButtonDummyNone: TBitBtn;
ButtonNone: TBitBtn;
ButtonOK: TBitBtn;
FieldNameList: TListBox;
MsgPanel: TPanel;
PanelButtons: TPanel;
PanelButtonSlider: TPanel;
procedure ButtonAllClick(Sender: TObject);
procedure ButtonCancelClick(Sender: TObject);
procedure ButtonNoneClick(Sender: TObject);
procedure ButtonOKClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
protected
FApplyChanges : Boolean; {True if changes should be made. = mrOk}
FBeveled : Boolean; {Selected panels have beveling if true}
FButtonsAlignment : TAlignment; {taLeftJustify, taCenter, taRightJustify}
FButtonSpacer : Integer; {Sets Button Spacer Width}
FButtonsReSize : Boolean; {Buttons resize if true}
FButtonWidth : Integer; {Sets Button Widths}
FColorOfFieldList : TColor;
FDataSource : TDataSource;
FIsComponent : Boolean; {True if Form is part of a component, False if Form is a standalone form, Default is False}
FMinFormHeight : Integer; {Sets a Minimum FormHeight}
FMinFormWidth : Integer; {Sets a Minimum FormWidth}
FModal : Boolean; {True if Form is being shown modal}
FMsg : String; {stores the Dialog Message}
FReSizeNow : Boolean; {Causes the form to resize when the property is set}
FTitle : String; {stores the Dialog Title}
Function GetCenterFormLeft(FormWidth : Integer): Integer;
Function GetCenterFormTop(FormHeight : Integer): Integer;
function GetDataSource: TDataSource;
function GetMultiSelect: Boolean;
procedure ButtonReSizer(
ButtonBase : TPanel;
ButtonSlider : TPanel;
ButtonWidth : Integer;
ButtonSpacer : Integer;
ButtonsReSize : Boolean;
ButtonsAlignment: TAlignment;
Beveled : Boolean);
Procedure PanelBevel(Beveled : Boolean; Panel: TPanel);
procedure SetDataSource(Value: TDataSource);
procedure SetMinFormHeight(Value : Integer);
procedure SetMinFormWidth(Value : Integer);
procedure SetMultiSelect(Value: Boolean);
procedure SetReSizeNow(Value : Boolean);
public
procedure ReSizeAll;
procedure SetBevel;
property IsComponent : Boolean Read FIsComponent Write FIsComponent;
property ReSizeNow : Boolean Read FReSizeNow Write SetReSizeNow;
Published
property ApplyChanges: Boolean Read FApplyChanges Write FApplyChanges;{True if changes should be made. = mrOk}
property Beveled : Boolean Read FBeveled Write FBeveled;{Selected panels have beveling if true}
property ButtonsAlignment : TAlignment Read FButtonsAlignment Write FButtonsAlignment;{taLeftJustify, taCenter, taRightJustify}
property ButtonSpacer : Integer Read FButtonSpacer Write FButtonSpacer;{Sets Button Spacer Width}
property ButtonsReSize : Boolean Read FButtonsReSize Write FButtonsReSize;{Buttons resize if true}
property ButtonWidth : Integer Read FButtonWidth Write FButtonWidth;{Sets Button Widths}
property ColorOfFieldList : TColor Read FColorOfFieldList Write FColorOfFieldList;
property DataSource: TDataSource read GetDataSource write SetDataSource;
property MinFormHeight : Integer Read FMinFormHeight Write SetMinFormHeight;{Sets the form's Minimum Height}
property MinFormWidth : Integer Read FMinFormWidth Write SetMinFormWidth;{Sets the form's Minimum Width}
property Modal : Boolean Read FModal Write FModal;{True if Form is being shown modal}
property Msg : String read FMsg write FMsg;
property MultiSelect: Boolean read GetMultiSelect write SetMultiSelect default True;
property Title : String read FTitle write FTitle;{stores the Dialog Title}
end;
//Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.FormCreate(Sender: TObject);
Begin
FieldNameList.Items.Clear;
MultiSelect := True;
Msg := 'Select your fields'; {stores the Dialog Message}
ColorOfFieldList := clWindow;
Title := 'Field Selection Dialog';{stores the Dialog Title}
FBeveled := False; {Selected panels have beveling if true}
FButtonsReSize := False; {Buttons resize if true}
FButtonsAlignment := taRightJustify; {taLeftJustify, taCenter, taRightJustify}
FButtonWidth := 75; {Sets Button Widths}
FButtonSpacer := 0; {Sets Button Spacer Width}
FApplyChanges := False; {True if changes should be made. = mrOk}
FModal := True; {True if Form is being shown modal}
IsComponent := False; {True if Form is part of a component,False if Form is a standalone form,Default is False}
FMinFormWidth := 300; {Sets a Minimum FormWidth}
FMinFormHeight := 300; {Sets a Minimum FormHeight}
SetBevel;{Set bevel prior to resizing}
ReSizeAll;{ReSize at the end of the create}
end;
//Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.ReSizeAll;
Begin
If Width < MinFormWidth Then Width := MinFormWidth;
If Height < MinFormHeight Then Height := MinFormHeight;
ButtonReSizer(
PanelButtons, {ButtonBase}
PanelButtonSlider, {ButtonSlider}
ButtonWidth, {ButtonWidth}
ButtonSpacer, {ButtonSpacer}
ButtonsReSize, {ButtonsReSize}
ButtonsAlignment, {ButtonsAlignment}
Beveled); {Beveled}
End;
//Unit Description UnitIndex Master Indexprocedure TDBFieldFilterDlg_ads.FormResize(Sender: TObject); begin ReSizeAll; end; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.FormActivate(Sender: TObject);
var
I,J: Integer;
begin
Try
If DataSource = nil Then Exit;
If DataSource.DataSet = nil Then Exit;
For I := 0 to DataSource.DataSet.FieldCount - 1 Do
begin
FieldNameList.Items.Add (DataSource.DataSet.Fields[I].FieldName);
end;
FieldNameList.Sorted := True;
If MultiSelect Then
Begin
For I := 0 to DataSource.DataSet.FieldCount - 1 Do
Begin
If DataSource.DataSet.Fields[I].Visible then
Begin
For J := 0 to FieldNameList.Items.Count - 1 Do
Begin
If UpperCase(FieldNameList.Items[J]) =
UpperCase(DataSource.DataSet.Fields[I].FieldName)
Then
Begin
Try
FieldNameList.Selected [J] := True;
Except
Break;
End;
End;
End;
End;
End;
End;
Except
Raise Exception.Create('Unable to list the Tables Fields');
End;
If MultiSelect Then
Begin
ButtonAll.Enabled := True;
End
Else
Begin
ButtonAll.Enabled := False;
End;
If IsComponent Then
Begin
{}
End
Else
Begin
Caption := Title; {stores the Dialog Title}
MsgPanel.Caption := Msg; {stores the Dialog Message}
FieldNameList.Color:= ColorOfFieldList;
SetBevel;
Left := GetCenterFormLeft(Width);
Top := GetCenterFormTop(Height);
End;
end;
//Unit Description UnitIndex Master Indexfunction TDBFieldFilterDlg_ads.GetDataSource: TDataSource; begin Result := FDataSource; end; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.SetDataSource(Value : TDataSource); begin FDataSource := Value; end; //Unit Description UnitIndex Master Index
function TDBFieldFilterDlg_ads.GetMultiSelect: Boolean; begin Result := FieldNameList.MultiSelect; end; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.SetMultiSelect(Value : Boolean); begin FieldNameList.MultiSelect := Value; end; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.ButtonCancelClick(Sender: TObject); begin ApplyChanges := False; end; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.ButtonOKClick(Sender: TObject);
Var I: Integer;
begin
Try
Try
FieldNameList.Invalidate;
For I := 0 to DataSource.DataSet.FieldCount - 1 Do
If FieldNameList.Selected[I] Then
Begin
DataSource.DataSet.FieldByName(FieldNameList.Items[I]).Visible := True;
{MessageDlg(FieldNameList.Items[I]+'.Visible = True '+IntToStr(I),
mtInformation,[mbOK], 0);}
End
Else
Begin
DataSource.DataSet.FieldByName(FieldNameList.Items[I]).Visible := False;
{MessageDlg(FieldNameList.Items[I]+'.Visible = False '+IntToStr(I),
mtInformation,[mbOK], 0);}
End;
Except
Raise Exception.Create('Unable to select the Tables Fields');
End;
Finally
FieldNameList.Clear;
ApplyChanges := True;
End;
end;
//Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.ButtonAllClick(Sender: TObject);
Var I: Integer;
begin
TBitBtn(Sender).ModalResult := mrNone;
Try
FieldNameList.Invalidate;
For I := 0 to FieldNameList.Items.Count - 1 Do
FieldNameList.Selected[I] := True;
Except
Raise Exception.Create('Unable to select All Fields');
End;
end;
//Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.ButtonNoneClick(Sender: TObject);
Var I: Integer;
begin
TBitBtn(Sender).ModalResult := mrNone;
Try
FieldNameList.Invalidate;
For I := 0 to FieldNameList.Items.Count - 1 Do
FieldNameList.Selected[I] := False;
Except
Raise Exception.Create('Unable to select All Fields');
End;
end;
//Unit Description UnitIndex Master Indexprocedure TDBFieldFilterDlg_ads.SetBevel; Begin PanelBevel(Beveled,MsgPanel); PanelBevel(Beveled,BaseList); PanelBevel(Beveled,PanelButtons); End; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.SetReSizeNow(Value : Boolean); Begin ReSizeAll; FReSizeNow := Value; End; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.SetMinFormWidth(Value : Integer); Begin If FMinFormWidth <> Value Then FMinFormWidth := Value; End; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.SetMinFormHeight(Value : Integer); Begin If FMinFormHeight <> Value Then FMinFormHeight := Value; End; //Unit Description UnitIndex Master Index
procedure TDBFieldFilterDlg_ads.ButtonReSizer(
ButtonBase : TPanel;
ButtonSlider : TPanel;
ButtonWidth : Integer;
ButtonSpacer : Integer;
ButtonsReSize : Boolean;
ButtonsAlignment: TAlignment;
Beveled : Boolean);
Var
i : Integer;
LeftPos : Integer;
NButtons : Integer;
NSpacers : Integer;
p : TWinControl;
SpacersWidth : Integer;
SpacerWidth : Integer;
W : Integer;
Begin
NButtons := ButtonSlider.ControlCount;
If ButtonSpacer > 0 Then
Begin
SpacerWidth := ButtonSpacer;
NSpacers := NButtons +1;
SpacersWidth := ButtonSpacer * NSpacers;
End
Else
Begin
SpacerWidth := 0;
SpacersWidth:= 0;
End;
MinFormWidth :=
SpacersWidth +
(NButtons * ButtonWidth) +
(ButtonBase.BorderWidth * 2) +
(ButtonBase.BevelWidth * 4) +
25;
MinFormHeight :=
PanelButtons.Height +
FieldNameList.Count*25 +
MsgPanel.Height +
40;
Try
p:=ButtonBase.Parent;
For i:=1 To 5 Do
Begin
If p is TForm Then
Begin
If p.Width < MinFormWidth Then p.Width := MinFormWidth;
If p.Height < MinFormHeight Then p.Height := MinFormHeight;
Break;
End
Else
Begin
p:=p.Parent;
End;
End;
Except
End;
If Beveled Then
Begin
ButtonBase.Height :=
(ButtonBase.BorderWidth * 2) +
(ButtonBase.BevelWidth * 4) +
2 {for borderStyle} +
25 {for standard button height} +
3;
End
else
Begin
ButtonBase.Height :=
(ButtonBase.BorderWidth * 2) +
25 {for standard button height} +
4;
End;
If ButtonsReSize Then
Begin
Buttonslider.Align := alClient;
W := (Buttonslider.Width - SpacersWidth) div NButtons;
LeftPos := SpacerWidth;
For i := 0 To NButtons - 1 Do
Begin
ButtonSlider.Controls[i].Align := alNone;
ButtonSlider.Controls[i].Top := 0;
ButtonSlider.Controls[i].Height := 25;
ButtonSlider.Controls[i].Width := W;
ButtonSlider.Controls[i].Left := LeftPos;
LeftPos := LeftPos + W + SpacerWidth;
End;
End
Else
Begin
ButtonSlider.Align := alNone;
If Beveled Then
Begin
ButtonSlider.Top :=
ButtonBase.BorderWidth +
(ButtonBase.BevelWidth * 2)+
1 + {For BorderStyle}
0; {For Margin}
End
Else
Begin
ButtonSlider.Top :=
ButtonBase.BorderWidth +
1; {For Margin}
End;
ButtonSlider.Height := 25;
ButtonSlider.Width :=
SpacersWidth +
(NButtons * ButtonWidth);
If (Not Beveled) Then
Begin
{Align totally left with not leftmost spacer}
If ButtonsAlignment = taLeftJustify Then
Begin
LeftPos := 0;
End
Else
Begin
If ButtonsAlignment = taRightJustify Then
Begin
{Align totally Right with not rightmost spacer}
LeftPos := 2 * SpacerWidth;
End
Else
Begin
LeftPos := SpacerWidth;
End;
End;
End
Else
Begin
LeftPos := SpacerWidth;
End;
For i := 0 To NButtons - 1 Do
Begin
ButtonSlider.Controls[i].Align := alNone;
ButtonSlider.Controls[i].Top := 0;
ButtonSlider.Controls[i].Height := 25;
ButtonSlider.Controls[i].Width := ButtonWidth;
ButtonSlider.Controls[i].Left := LeftPos;
LeftPos := LeftPos + ButtonWidth+ SpacerWidth;
End;
If ButtonsAlignment = taLeftJustify Then ButtonSlider.Align := alLeft;
If ButtonsAlignment = taRightJustify Then ButtonSlider.Align := alRight;
If ButtonsAlignment = taCenter Then
Begin
ButtonSlider.Align := alNone;
ButtonSlider.Left :=
(ButtonBase.Width -
ButtonSlider.Width) div 2;
End;
End;
ButtonBase.Refresh;
End;
//Unit Description UnitIndex Master Index
Function TDBFieldFilterDlg_ads.GetCenterFormLeft(FormWidth : Integer): Integer;
Begin
If Screen.Width < FormWidth Then
Begin
Result := Screen.Width-26;
End
Else
Begin
Result := (Screen.Width - FormWidth) div 2;
End;
End;
//Unit Description UnitIndex Master Index
Function TDBFieldFilterDlg_ads.GetCenterFormTop(FormHeight : Integer): Integer;
Begin
If Screen.Height < FormHeight Then
Begin
Result := Screen.Height-26;
End
Else
Begin
Result := (Screen.Height - FormHeight) div 2;
End;
End;
//Unit Description UnitIndex Master Index
Procedure TDBFieldFilterDlg_ads.PanelBevel(Beveled : Boolean; Panel: TPanel);
Begin
If Not Beveled Then
Begin
Panel.BevelOuter := bvNone;
Panel.BevelInner := bvNone;
Panel.BorderStyle:= bsNone;
End
Else
Begin
Panel.BevelOuter := bvRaised;
Panel.BevelInner := bvLowered;
Panel.BorderStyle:= bsSingle;
End;
End;
Constructor TDBFieldFilterDlg_ads.Create(AOwner: TComponent);
Begin
ProcName := 'TDBFieldFilterDlg_ads.Create'; Try
inherited;
Self.Parent := TWincontrol(AOwner);
BaseList := TPanel.Create(AOwner);
With BaseList Do
Begin
Parent := Self;
Left := 0;
Top := 49;
Width := 337;
Height := 202;
Align := alClient;
BevelOuter := bvNone;
BorderWidth := 2;
Caption := ' ';
ParentColor := True;
TabOrder := 0;
End;
FieldNameList := TListBox.Create(AOwner);
With FieldNameList Do
Begin
Parent := BaseList;
Left := 10;
Top := 10;
Width := 317;
Height := 180;
Hint := 'Ctrl-LeftClick fields to be visible.';
Align := alClient;
IntegralHeight := True;
ItemHeight := 16;
MultiSelect := True;
TabOrder := 0;
End;
PanelButtons := TPanel.Create(AOwner);
With PanelButtons Do
Begin
Parent := Self;
Left := 0;
Top := 251;
Width := 337;
Height := 53;
Align := alBottom;
BevelOuter := bvNone;
BorderWidth := 10;
Caption := ' ';
ParentColor := True;
TabOrder := 1;
End;
PanelButtonSlider := TPanel.Create(AOwner);
With PanelButtonSlider Do
Begin
Parent := PanelButtons;
Left := 10;
Top := 10;
Width := 309;
Height := 33;
Align := alLeft;
BevelOuter := bvNone;
Caption := ' ';
ParentColor := True;
TabOrder := 0;
End;
ButtonAll := TBitBtn.Create(AOwner);
With ButtonAll Do
Begin
Parent := PanelButtonSlider;
Left := 6;
Top := 0;
Width := 75;
Height := 25;
Hint := 'Select all fields.';
Caption := '&All';
TabOrder := 0;
OnClick := ButtonAllClick;
NumGlyphs := 2;
End;
ButtonNone := TBitBtn.Create(AOwner);
With ButtonNone Do
Begin
Parent := PanelButtonSlider;
Left := 82;
Top := 0;
Width := 75;
Height := 25;
Hint := 'Have no fields selected.';
Cancel := True;
Caption := '&None';
TabOrder := 1;
OnClick := ButtonNoneClick;
NumGlyphs := 2;
End;
ButtonOK := TBitBtn.Create(AOwner);
With ButtonOK Do
Begin
Parent := PanelButtonSlider;
Left := 154;
Top := 0;
Width := 75;
Height := 25;
Hint := 'Activate field selection.';
Caption := '&OK';
TabOrder := 2;
OnClick := ButtonOKClick;
Kind := bkOK;
End;
ButtonCancel := TBitBtn.Create(AOwner);
With ButtonCancel Do
Begin
Parent := PanelButtonSlider;
Left := 234;
Top := 0;
Width := 75;
Height := 25;
Hint := 'Make no changes and close this dialog.';
Caption := '&Cancel';
TabOrder := 3;
OnClick := ButtonCancelClick;
Kind := bkCancel;
End;
MsgPanel := TPanel.Create(AOwner);
With MsgPanel Do
Begin
Parent := Self;
Left := 0;
Top := 0;
Width := 337;
Height := 25;
Align := alTop;
BevelOuter := bvNone;
BorderWidth := 2;
Caption := 'Select your fields';
ParentColor := True;
TabOrder := 2;
End;
ButtonDummyAll := TBitBtn.Create(AOwner);
With ButtonDummyAll Do
Begin
Parent := MsgPanel;
Left := 16;
Top := 8;
Width := 25;
Height := 25;
TabOrder := 0;
Visible := False;
Kind := bkAll;
End;
ButtonDummyNone := TBitBtn.Create(AOwner);
With ButtonDummyNone Do
Begin
Parent := MsgPanel;
Left := 304;
Top := 8;
Width := 27;
Height := 25;
TabOrder := 1;
Visible := False;
Kind := bkNo;
End;
Except On E : Exception Do RaiseError(UnitName,ProcName,E); End;
End;
Destructor TDBFieldFilterDlg_ads.Destroy;
Begin
ProcName := 'TDBFieldFilterDlg_ads.Destroy'; Try
ButtonDummyNone .Free;
ButtonDummyAll .Free;
MsgPanel .Free;
ButtonCancel .Free;
ButtonOK .Free;
ButtonNone .Free;
ButtonAll .Free;
PanelButtonSlider .Free;
PanelButtons .Free;
FieldNameList .Free;
BaseList .Free;
inherited Destroy;
Except On E : Exception Do RaiseError(UnitName,ProcName,E); End;
End;
//Unit Description UnitIndex Master Index
Function DlgDBFieldFilter_ads(DataSource: TDataSource): Boolean;
Var
Dialog : TForm;
Form : TDBFieldFilterDlg_ads;
boDataSource: Boolean;
MinFormHeight: Integer;
Begin
Result := False;
Dialog := nil;
ProcName := 'DlgDBFieldFilter_ads'; Try
Try
Dialog := TForm.Create(nil);
Form := TDBFieldFilterDlg_ads.Create(Dialog);
Form.Parent:= Dialog;
Form.Align := alClient;
With Dialog Do
Begin
Left := 568;
Top := 252;
Width := 345;
Height := 100;
BorderIcons := [biSystemMenu, biMaximize];
Caption := 'Field Selection Dialog';
Color := clBtnFace;
Font.Color := clWindowText;
Font.Height := -14;
Font.Name := 'System';
Font.Style := [];
OldCreateOrder := True;
Position := poScreenCenter;
ShowHint := True;
OnActivate := Form.FormActivate;
OnCreate := Form.FormCreate;
OnResize := Form.FormResize;
PixelsPerInch := 96;
End;
Form.FormCreate(Dialog);
Form.DataSource := DataSource;
Form.ButtonAll.Glyph.Assign(Form.ButtonDummyAll.Glyph);
Form.ButtonNone.Glyph.Assign(Form.ButtonDummyNone.Glyph);
boDataSource:= DataSource<>nil;
If boDataSource Then boDataSource:= (DataSource.DataSet<>nil);
If boDataSource Then boDataSource:= DataSource.DataSet.Active;
If boDataSource Then
Begin
MinFormHeight :=
Form.PanelButtons.Height +
DataSource.DataSet.Fields.Count*25+
Form.MsgPanel.Height +
40;
End
Else
Begin
MinFormHeight :=
Form.PanelButtons.Height +
100+
Form.MsgPanel.Height +
40;
End;
Dialog.Constraints.MinHeight:=MinFormHeight;
Dialog.ShowModal;
If Dialog.ModalResult = mrOK Then
Begin
Result := True;
End;
Finally
Dialog.Free;
End;
Except On E : Exception Do RaiseError(UnitName,ProcName,E); End;
End;
Initialization
UnitName := 'ads_DlgDBFieldFilter';
ProcName := 'Unknown';
End.
//