You've already forked lazarus-ccr
tvplanit: Automatic positioning of controls in FlexDS field mapper.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5026 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -22,13 +22,13 @@ object frmFieldMapper: TfrmFieldMapper
|
|||||||
ClientHeight = 45
|
ClientHeight = 45
|
||||||
ClientWidth = 409
|
ClientWidth = 409
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object Button2: TButton
|
object BtnClose: TButton
|
||||||
Left = 325
|
Left = 325
|
||||||
Height = 25
|
Height = 25
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 75
|
Width = 75
|
||||||
Caption = 'Close'
|
Caption = 'Close'
|
||||||
OnClick = Button2Click
|
OnClick = BtnCloseClick
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -51,7 +51,7 @@ object frmFieldMapper: TfrmFieldMapper
|
|||||||
Top = 4
|
Top = 4
|
||||||
Width = 390
|
Width = 390
|
||||||
end
|
end
|
||||||
object Label2: TLabel
|
object lblDBFieldsAvail: TLabel
|
||||||
Left = 11
|
Left = 11
|
||||||
Height = 15
|
Height = 15
|
||||||
Top = 36
|
Top = 36
|
||||||
@ -59,7 +59,7 @@ object frmFieldMapper: TfrmFieldMapper
|
|||||||
Caption = 'Available Dataset Fields:'
|
Caption = 'Available Dataset Fields:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object Label5: TLabel
|
object lblFieldMappings: TLabel
|
||||||
Left = 35
|
Left = 35
|
||||||
Height = 15
|
Height = 15
|
||||||
Top = 329
|
Top = 329
|
||||||
@ -67,7 +67,7 @@ object frmFieldMapper: TfrmFieldMapper
|
|||||||
Caption = 'Field Mappings:'
|
Caption = 'Field Mappings:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object Label6: TLabel
|
object lblVPFieldsAvail: TLabel
|
||||||
Left = 242
|
Left = 242
|
||||||
Height = 15
|
Height = 15
|
||||||
Top = 36
|
Top = 36
|
||||||
@ -75,7 +75,7 @@ object frmFieldMapper: TfrmFieldMapper
|
|||||||
Caption = 'Available Visual PlanIt Fields:'
|
Caption = 'Available Visual PlanIt Fields:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object Label1: TLabel
|
object lblDataset: TLabel
|
||||||
Left = 11
|
Left = 11
|
||||||
Height = 15
|
Height = 15
|
||||||
Top = 13
|
Top = 13
|
||||||
|
@ -53,14 +53,14 @@ type
|
|||||||
|
|
||||||
TfrmFieldMapper = class(TForm)
|
TfrmFieldMapper = class(TForm)
|
||||||
Panel1: TPanel;
|
Panel1: TPanel;
|
||||||
Button2: TButton;
|
BtnClose: TButton;
|
||||||
PageControl1: TPageControl;
|
PageControl1: TPageControl;
|
||||||
TabSheet1: TTabSheet;
|
TabSheet1: TTabSheet;
|
||||||
Bevel1: TBevel;
|
Bevel1: TBevel;
|
||||||
Label2: TLabel;
|
lblDBFieldsAvail: TLabel;
|
||||||
Label5: TLabel;
|
lblFieldMappings: TLabel;
|
||||||
Label6: TLabel;
|
lblVPFieldsAvail: TLabel;
|
||||||
Label1: TLabel;
|
lblDataset: TLabel;
|
||||||
DatasetFieldLB: TListBox;
|
DatasetFieldLB: TListBox;
|
||||||
VPFieldLB: TListBox;
|
VPFieldLB: TListBox;
|
||||||
FieldMappingsLB: TListBox;
|
FieldMappingsLB: TListBox;
|
||||||
@ -75,7 +75,7 @@ type
|
|||||||
procedure VpFieldSelected(Sender: TObject);
|
procedure VpFieldSelected(Sender: TObject);
|
||||||
procedure VPFieldLBKeyPress(Sender: TObject; var Key: Char);
|
procedure VPFieldLBKeyPress(Sender: TObject; var Key: Char);
|
||||||
procedure btnAddMappingClick(Sender: TObject);
|
procedure btnAddMappingClick(Sender: TObject);
|
||||||
procedure Button2Click(Sender: TObject);
|
procedure BtnCloseClick(Sender: TObject);
|
||||||
procedure Button5Click(Sender: TObject);
|
procedure Button5Click(Sender: TObject);
|
||||||
procedure btnDeleteMappingClick(Sender: TObject);
|
procedure btnDeleteMappingClick(Sender: TObject);
|
||||||
procedure btnClearMappingsClick(Sender: TObject);
|
procedure btnClearMappingsClick(Sender: TObject);
|
||||||
@ -83,12 +83,13 @@ type
|
|||||||
procedure FieldMappingsLBKeyPress(Sender: TObject; var Key: Char);
|
procedure FieldMappingsLBKeyPress(Sender: TObject; var Key: Char);
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
private
|
private
|
||||||
DSResActive : Boolean;
|
DSResActive: Boolean;
|
||||||
DSEventActive : Boolean;
|
DSEventActive: Boolean;
|
||||||
DSContactActive: Boolean;
|
DSContactActive: Boolean;
|
||||||
DSTaskActive : Boolean;
|
DSTaskActive: Boolean;
|
||||||
procedure SyncObjects;
|
procedure SyncObjects;
|
||||||
procedure OpenDatasets;
|
procedure OpenDatasets;
|
||||||
|
procedure PositionControls;
|
||||||
public
|
public
|
||||||
FlexDS: TVpFlexDataStore;
|
FlexDS: TVpFlexDataStore;
|
||||||
ResDS: TDataset;
|
ResDS: TDataset;
|
||||||
@ -101,9 +102,9 @@ type
|
|||||||
procedure RuntimeTest(FlexDS: TVpFlexDataStore);
|
procedure RuntimeTest(FlexDS: TVpFlexDataStore);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
TVpFlexDSEditor = class(TComponentEditor)
|
TVpFlexDSEditor = class(TComponentEditor)
|
||||||
procedure ExecuteVerb(Index : Integer); override;
|
procedure ExecuteVerb(Index: Integer); override;
|
||||||
function GetVerb(Index : Integer) : string; override;
|
function GetVerb(Index: Integer): string; override;
|
||||||
function GetVerbCount : Integer; override;
|
function GetVerbCount: Integer; override;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
@ -133,16 +134,16 @@ begin
|
|||||||
frmFieldMapper.FlexDS := FlexDS;
|
frmFieldMapper.FlexDS := FlexDS;
|
||||||
|
|
||||||
if FlexDS.ResourceDataSource <> nil then
|
if FlexDS.ResourceDataSource <> nil then
|
||||||
frmFieldMapper.ResDS := FlexDS.ResourceDataSource.DataSet;
|
frmFieldMapper.ResDS := FlexDS.ResourceDataSource.DataSet;
|
||||||
|
|
||||||
if FlexDS.EventsDataSource <> nil then
|
if FlexDS.EventsDataSource <> nil then
|
||||||
frmFieldMapper.EventsDS := FlexDS.EventsDataSource.DataSet;
|
frmFieldMapper.EventsDS := FlexDS.EventsDataSource.DataSet;
|
||||||
|
|
||||||
if FlexDS.ContactsDataSource <> nil then
|
if FlexDS.ContactsDataSource <> nil then
|
||||||
frmFieldMapper.ContactsDS := FlexDS.ContactsDataSource.DataSet;
|
frmFieldMapper.ContactsDS := FlexDS.ContactsDataSource.DataSet;
|
||||||
|
|
||||||
if FlexDS.TasksDataSource <> nil then
|
if FlexDS.TasksDataSource <> nil then
|
||||||
frmFieldMapper.TasksDS := FlexDS.TasksDataSource.DataSet;
|
frmFieldMapper.TasksDS := FlexDS.TasksDataSource.DataSet;
|
||||||
|
|
||||||
frmFieldMapper.ShowModal;
|
frmFieldMapper.ShowModal;
|
||||||
|
|
||||||
@ -155,15 +156,15 @@ end;
|
|||||||
{$ELSE} {RUNTIMETEST}
|
{$ELSE} {RUNTIMETEST}
|
||||||
|
|
||||||
{$IFDEF LCL}
|
{$IFDEF LCL}
|
||||||
procedure MapDatabaseFields(Designer : TComponentEditorDesigner;
|
procedure MapDatabaseFields(Designer: TComponentEditorDesigner;
|
||||||
FlexDS : TVpFlexDataStore);
|
FlexDS: TVpFlexDataStore);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF VERSION6}
|
{$IFDEF VERSION6}
|
||||||
procedure MapDatabaseFields(Designer : TComponentEditorDesigner;; // was: Designer : IDesigner;
|
procedure MapDatabaseFields(Designer: TComponentEditorDesigner;; // was: Designer : IDesigner;
|
||||||
FlexDS : TVpFlexDataStore);
|
FlexDS: TVpFlexDataStore);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
procedure MapDatabaseFields(Designer : IFormDesigner;
|
procedure MapDatabaseFields(Designer: IFormDesigner;
|
||||||
FlexDS : TVpFlexDataStore);
|
FlexDS: TVpFlexDataStore);
|
||||||
{$ENDIF}{$ENDIF}
|
{$ENDIF}{$ENDIF}
|
||||||
var
|
var
|
||||||
frmFieldMapper: TfrmFieldMapper;
|
frmFieldMapper: TfrmFieldMapper;
|
||||||
@ -174,16 +175,16 @@ begin
|
|||||||
try
|
try
|
||||||
frmFieldMapper.FlexDS := FlexDS;
|
frmFieldMapper.FlexDS := FlexDS;
|
||||||
if FlexDS.ResourceDataSource <> nil then
|
if FlexDS.ResourceDataSource <> nil then
|
||||||
frmFieldMapper.ResDS := FlexDS.ResourceDataSource.DataSet;
|
frmFieldMapper.ResDS := FlexDS.ResourceDataSource.DataSet;
|
||||||
if FlexDS.EventsDataSource <> nil then
|
if FlexDS.EventsDataSource <> nil then
|
||||||
frmFieldMapper.EventsDS := FlexDS.EventsDataSource.DataSet;
|
frmFieldMapper.EventsDS := FlexDS.EventsDataSource.DataSet;
|
||||||
if FlexDS.ContactsDataSource <> nil then
|
if FlexDS.ContactsDataSource <> nil then
|
||||||
frmFieldMapper.ContactsDS := FlexDS.ContactsDataSource.DataSet;
|
frmFieldMapper.ContactsDS := FlexDS.ContactsDataSource.DataSet;
|
||||||
if FlexDS.TasksDataSource <> nil then
|
if FlexDS.TasksDataSource <> nil then
|
||||||
frmFieldMapper.TasksDS := FlexDS.TasksDataSource.DataSet;
|
frmFieldMapper.TasksDS := FlexDS.TasksDataSource.DataSet;
|
||||||
frmFieldMapper.ShowModal;
|
frmFieldMapper.ShowModal;
|
||||||
finally
|
finally
|
||||||
frmFieldMapper.release;
|
frmFieldMapper.Release;
|
||||||
end;
|
end;
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
end;
|
end;
|
||||||
@ -191,19 +192,19 @@ end;
|
|||||||
|
|
||||||
{*** TVpNavBarEditor ***}
|
{*** TVpNavBarEditor ***}
|
||||||
|
|
||||||
procedure TVpFlexDSEditor.ExecuteVerb(Index : Integer);
|
procedure TVpFlexDSEditor.ExecuteVerb(Index: Integer);
|
||||||
begin
|
begin
|
||||||
if Index = 0 then
|
if Index = 0 then
|
||||||
MapDatabaseFields(Designer, (Component as TVpFlexDataStore));
|
MapDatabaseFields(Designer, (Component as TVpFlexDataStore));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TVpFlexDSEditor.GetVerb(Index : Integer) : string;
|
function TVpFlexDSEditor.GetVerb(Index: Integer): string;
|
||||||
begin
|
begin
|
||||||
if Index = 0 then
|
if Index = 0 then
|
||||||
Result := 'Map Database Fields...';
|
Result := 'Map Database Fields...';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TVpFlexDSEditor.GetVerbCount : Integer;
|
function TVpFlexDSEditor.GetVerbCount: Integer;
|
||||||
begin
|
begin
|
||||||
Result := 1;
|
Result := 1;
|
||||||
end;
|
end;
|
||||||
@ -212,6 +213,8 @@ end;
|
|||||||
|
|
||||||
procedure TfrmFieldMapper.FormShow(Sender: TObject);
|
procedure TfrmFieldMapper.FormShow(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
PositionControls;
|
||||||
|
|
||||||
DatasetCombo.Items.Clear;
|
DatasetCombo.Items.Clear;
|
||||||
DatasetCombo.Text := '';
|
DatasetCombo.Text := '';
|
||||||
|
|
||||||
@ -306,6 +309,31 @@ begin
|
|||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
|
||||||
|
procedure TfrmFieldMapper.PositionControls;
|
||||||
|
var
|
||||||
|
DELTA: Integer = 8;
|
||||||
|
w: Integer;
|
||||||
|
begin
|
||||||
|
DELTA := ScaleX(DELTA, DesignTimeDPI);
|
||||||
|
|
||||||
|
DataSetCombo.Left := lblDataset.Left + GetLabelWidth(lblDataset) + DELTA;
|
||||||
|
|
||||||
|
btnDeleteMapping.Width := GetButtonWidth(btnDeleteMapping);
|
||||||
|
w := FieldMappingsLB.Width + DELTA + btnDeleteMapping.Width;
|
||||||
|
if w > ClientWidth then begin
|
||||||
|
ClientWidth := w;
|
||||||
|
DatasetFieldLB.Width := (ClientWidth - DatasetFieldLB.Left *2 - btnAddMapping.Width - 2*DELTA) div 2;
|
||||||
|
VPFieldLB.Width := DatasetFieldLB.Width;
|
||||||
|
DatasetFieldLB.Left := (w - DatasetFieldLB.Width - 2*DELTA - btnAddMapping.Width - VPFieldLB.Width) div 2;
|
||||||
|
FieldMappingsLB.Left := DatasetFieldLB.Left;
|
||||||
|
lblFieldMappings.Left := FieldMappingsLB.Left;
|
||||||
|
btnDeleteMapping.Left := ClientWidth - DatasetFieldLB.Left - btnDeleteMapping.Width;
|
||||||
|
btnClearMappings.Left := btnDeleteMapping.Left;
|
||||||
|
btnClose.Left := w - DatasetFieldLB.Width - btnClose.Width;
|
||||||
|
end;
|
||||||
|
lblVPFieldsAvail.Left := RightOf(VPFieldLB) - GetLabelWidth(lblVPFieldsAvail);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TfrmFieldMapper.DatasetComboChange(Sender: TObject);
|
procedure TfrmFieldMapper.DatasetComboChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
SyncObjects;
|
SyncObjects;
|
||||||
@ -529,7 +557,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
|
||||||
procedure TfrmFieldMapper.Button2Click(Sender: TObject);
|
procedure TfrmFieldMapper.BtnCloseClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Close;
|
Close;
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user