데이타셋 데모
1. Tag를 활용한 리펙토링 2. Interface를 활용한 DataSet State 분리
This commit is contained in:
@@ -0,0 +1,399 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'DataSet '#49892#49845
|
||||
ClientHeight = 685
|
||||
ClientWidth = 816
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Segoe UI'
|
||||
Font.Style = []
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 15
|
||||
object lcMain: TdxLayoutControl
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 816
|
||||
Height = 665
|
||||
Align = alClient
|
||||
TabOrder = 0
|
||||
LayoutLookAndFeel = dxLayoutSkinLookAndFeel1
|
||||
object btnAdd: TcxButton
|
||||
Left = 401
|
||||
Top = 12
|
||||
Width = 75
|
||||
Height = 35
|
||||
Action = acAdd
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnEdit: TcxButton
|
||||
Left = 483
|
||||
Top = 12
|
||||
Width = 75
|
||||
Height = 35
|
||||
Action = acEdit
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnDelete: TcxButton
|
||||
Left = 565
|
||||
Top = 12
|
||||
Width = 75
|
||||
Height = 35
|
||||
Action = acDelete
|
||||
TabOrder = 2
|
||||
end
|
||||
object btnPost: TcxButton
|
||||
Left = 647
|
||||
Top = 12
|
||||
Width = 75
|
||||
Height = 35
|
||||
Action = acSave
|
||||
TabOrder = 3
|
||||
end
|
||||
object btnCancel: TcxButton
|
||||
Left = 729
|
||||
Top = 12
|
||||
Width = 75
|
||||
Height = 35
|
||||
Action = acCancel
|
||||
TabOrder = 4
|
||||
end
|
||||
object grdEmployee: TcxGrid
|
||||
Left = 12
|
||||
Top = 175
|
||||
Width = 792
|
||||
Height = 478
|
||||
TabOrder = 10
|
||||
object dbtvEmployee: TcxGridDBTableView
|
||||
Navigator.Buttons.CustomButtons = <>
|
||||
ScrollbarAnnotations.CustomAnnotations = <>
|
||||
DataController.DataSource = dmData.dsEmployee
|
||||
DataController.Summary.DefaultGroupSummaryItems = <>
|
||||
DataController.Summary.FooterSummaryItems = <>
|
||||
DataController.Summary.SummaryGroups = <>
|
||||
OptionsData.CancelOnExit = False
|
||||
OptionsData.Deleting = False
|
||||
OptionsData.DeletingConfirmation = False
|
||||
OptionsData.Editing = False
|
||||
OptionsData.Inserting = False
|
||||
OptionsSelection.CellSelect = False
|
||||
OptionsView.ColumnAutoWidth = True
|
||||
OptionsView.GroupByBox = False
|
||||
object dbtvEmployeeRecId: TcxGridDBColumn
|
||||
DataBinding.FieldName = 'RecId'
|
||||
Visible = False
|
||||
end
|
||||
object dbtvEmployeename: TcxGridDBColumn
|
||||
Caption = #51060#47492
|
||||
DataBinding.FieldName = 'name'
|
||||
PropertiesClassName = 'TcxTextEditProperties'
|
||||
Properties.Alignment.Horz = taCenter
|
||||
HeaderAlignmentHorz = taCenter
|
||||
end
|
||||
object dbtvEmployeeage: TcxGridDBColumn
|
||||
Caption = #45208#51060
|
||||
DataBinding.FieldName = 'age'
|
||||
PropertiesClassName = 'TcxTextEditProperties'
|
||||
Properties.Alignment.Horz = taCenter
|
||||
HeaderAlignmentHorz = taCenter
|
||||
end
|
||||
object dbtvEmployeeposition: TcxGridDBColumn
|
||||
Caption = #51649#50948
|
||||
DataBinding.FieldName = 'position'
|
||||
PropertiesClassName = 'TcxTextEditProperties'
|
||||
Properties.Alignment.Horz = taCenter
|
||||
HeaderAlignmentHorz = taCenter
|
||||
Width = 41
|
||||
end
|
||||
object dbtvEmployeesalary: TcxGridDBColumn
|
||||
Caption = #44553#50668
|
||||
DataBinding.FieldName = 'salary'
|
||||
PropertiesClassName = 'TcxCurrencyEditProperties'
|
||||
HeaderAlignmentHorz = taCenter
|
||||
end
|
||||
object dbtvEmployeeaddress: TcxGridDBColumn
|
||||
Caption = #51452#49548
|
||||
DataBinding.FieldName = 'address'
|
||||
HeaderAlignmentHorz = taCenter
|
||||
end
|
||||
end
|
||||
object grdEmployeeLevel1: TcxGridLevel
|
||||
GridView = dbtvEmployee
|
||||
end
|
||||
end
|
||||
object dbteName: TcxDBTextEdit
|
||||
Left = 55
|
||||
Top = 93
|
||||
AutoSize = False
|
||||
DataBinding.DataField = 'name'
|
||||
DataBinding.DataSource = dmData.dsEmployee
|
||||
Style.HotTrack = False
|
||||
Style.TransparentBorder = False
|
||||
TabOrder = 5
|
||||
Height = 27
|
||||
Width = 157
|
||||
end
|
||||
object dbseAge: TcxDBSpinEdit
|
||||
Left = 248
|
||||
Top = 93
|
||||
AutoSize = False
|
||||
DataBinding.DataField = 'age'
|
||||
DataBinding.DataSource = dmData.dsEmployee
|
||||
Style.HotTrack = False
|
||||
Style.TransparentBorder = False
|
||||
TabOrder = 6
|
||||
Height = 27
|
||||
Width = 157
|
||||
end
|
||||
object dbtePosition: TcxDBTextEdit
|
||||
Left = 441
|
||||
Top = 93
|
||||
AutoSize = False
|
||||
DataBinding.DataField = 'position'
|
||||
DataBinding.DataSource = dmData.dsEmployee
|
||||
Style.HotTrack = False
|
||||
Style.TransparentBorder = False
|
||||
TabOrder = 7
|
||||
Height = 27
|
||||
Width = 156
|
||||
end
|
||||
object dbseSalary: TcxDBSpinEdit
|
||||
Left = 633
|
||||
Top = 93
|
||||
AutoSize = False
|
||||
DataBinding.DataField = 'salary'
|
||||
DataBinding.DataSource = dmData.dsEmployee
|
||||
Style.HotTrack = False
|
||||
Style.TransparentBorder = False
|
||||
TabOrder = 8
|
||||
Height = 27
|
||||
Width = 157
|
||||
end
|
||||
object dbteAddress: TcxDBTextEdit
|
||||
Left = 55
|
||||
Top = 127
|
||||
DataBinding.DataField = 'address'
|
||||
DataBinding.DataSource = dmData.dsEmployee
|
||||
Style.HotTrack = False
|
||||
Style.TransparentBorder = False
|
||||
TabOrder = 9
|
||||
Width = 735
|
||||
end
|
||||
object lgRoot: TdxLayoutGroup
|
||||
AlignHorz = ahClient
|
||||
AlignVert = avClient
|
||||
Hidden = True
|
||||
ItemIndex = 1
|
||||
ShowBorder = False
|
||||
Index = -1
|
||||
end
|
||||
object lgToolbar: TdxLayoutGroup
|
||||
Parent = lgRoot
|
||||
CaptionOptions.Text = 'New Group'
|
||||
CaptionOptions.Visible = False
|
||||
ItemIndex = 4
|
||||
LayoutDirection = ldHorizontal
|
||||
ShowBorder = False
|
||||
Index = 0
|
||||
end
|
||||
object lgInput: TdxLayoutGroup
|
||||
Parent = lgRoot
|
||||
CaptionOptions.Text = #52628#44032' / '#54200#51665
|
||||
ItemIndex = 1
|
||||
Index = 1
|
||||
end
|
||||
object lgGrid: TdxLayoutGroup
|
||||
Parent = lgRoot
|
||||
AlignVert = avClient
|
||||
CaptionOptions.Text = 'New Group'
|
||||
CaptionOptions.Visible = False
|
||||
ShowBorder = False
|
||||
Index = 2
|
||||
end
|
||||
object liAdd: TdxLayoutItem
|
||||
Parent = lgToolbar
|
||||
AlignHorz = ahRight
|
||||
CaptionOptions.Text = 'cxButton1'
|
||||
CaptionOptions.Visible = False
|
||||
Control = btnAdd
|
||||
ControlOptions.OriginalHeight = 35
|
||||
ControlOptions.OriginalWidth = 75
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 0
|
||||
end
|
||||
object liEdit: TdxLayoutItem
|
||||
Parent = lgToolbar
|
||||
AlignHorz = ahRight
|
||||
CaptionOptions.Text = 'cxButton2'
|
||||
CaptionOptions.Visible = False
|
||||
Control = btnEdit
|
||||
ControlOptions.OriginalHeight = 35
|
||||
ControlOptions.OriginalWidth = 75
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 1
|
||||
end
|
||||
object liDelete: TdxLayoutItem
|
||||
Parent = lgToolbar
|
||||
AlignHorz = ahRight
|
||||
CaptionOptions.Text = 'cxButton3'
|
||||
CaptionOptions.Visible = False
|
||||
Control = btnDelete
|
||||
ControlOptions.OriginalHeight = 35
|
||||
ControlOptions.OriginalWidth = 75
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 2
|
||||
end
|
||||
object liSave: TdxLayoutItem
|
||||
Parent = lgToolbar
|
||||
AlignHorz = ahRight
|
||||
CaptionOptions.Text = 'cxButton4'
|
||||
CaptionOptions.Visible = False
|
||||
Control = btnPost
|
||||
ControlOptions.OriginalHeight = 35
|
||||
ControlOptions.OriginalWidth = 75
|
||||
ControlOptions.ShowBorder = False
|
||||
Enabled = False
|
||||
Index = 3
|
||||
end
|
||||
object liCancel: TdxLayoutItem
|
||||
Parent = lgToolbar
|
||||
AlignHorz = ahRight
|
||||
CaptionOptions.Text = 'cxButton5'
|
||||
CaptionOptions.Visible = False
|
||||
Control = btnCancel
|
||||
ControlOptions.OriginalHeight = 35
|
||||
ControlOptions.OriginalWidth = 75
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 4
|
||||
end
|
||||
object liGird: TdxLayoutItem
|
||||
Parent = lgGrid
|
||||
AlignHorz = ahClient
|
||||
AlignVert = avClient
|
||||
CaptionOptions.Text = 'cxGrid1'
|
||||
CaptionOptions.Visible = False
|
||||
Control = grdEmployee
|
||||
ControlOptions.OriginalHeight = 200
|
||||
ControlOptions.OriginalWidth = 250
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 0
|
||||
end
|
||||
object dxLayoutItem2: TdxLayoutItem
|
||||
Parent = dxLayoutAutoCreatedGroup1
|
||||
AlignHorz = ahClient
|
||||
CaptionOptions.Text = #51060#47492
|
||||
Control = dbteName
|
||||
ControlOptions.OriginalHeight = 27
|
||||
ControlOptions.OriginalWidth = 121
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 0
|
||||
end
|
||||
object dxLayoutItem3: TdxLayoutItem
|
||||
Parent = dxLayoutAutoCreatedGroup1
|
||||
AlignHorz = ahClient
|
||||
CaptionOptions.Text = #45208#51060
|
||||
Control = dbseAge
|
||||
ControlOptions.OriginalHeight = 27
|
||||
ControlOptions.OriginalWidth = 121
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 1
|
||||
end
|
||||
object dxLayoutItem4: TdxLayoutItem
|
||||
Parent = dxLayoutAutoCreatedGroup1
|
||||
AlignHorz = ahClient
|
||||
CaptionOptions.Text = #51649#50948
|
||||
Control = dbtePosition
|
||||
ControlOptions.OriginalHeight = 27
|
||||
ControlOptions.OriginalWidth = 121
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 2
|
||||
end
|
||||
object dxLayoutItem5: TdxLayoutItem
|
||||
Parent = dxLayoutAutoCreatedGroup1
|
||||
AlignHorz = ahClient
|
||||
CaptionOptions.Text = #44553#50668
|
||||
Control = dbseSalary
|
||||
ControlOptions.OriginalHeight = 27
|
||||
ControlOptions.OriginalWidth = 121
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 3
|
||||
end
|
||||
object dxLayoutItem6: TdxLayoutItem
|
||||
Parent = lgInput
|
||||
CaptionOptions.Text = #51452#49548
|
||||
Control = dbteAddress
|
||||
ControlOptions.OriginalHeight = 27
|
||||
ControlOptions.OriginalWidth = 121
|
||||
ControlOptions.ShowBorder = False
|
||||
Index = 1
|
||||
end
|
||||
object dxLayoutAutoCreatedGroup1: TdxLayoutAutoCreatedGroup
|
||||
Parent = lgInput
|
||||
LayoutDirection = ldHorizontal
|
||||
Index = 0
|
||||
end
|
||||
end
|
||||
object sbMain: TdxStatusBar
|
||||
Left = 0
|
||||
Top = 665
|
||||
Width = 816
|
||||
Height = 20
|
||||
Panels = <
|
||||
item
|
||||
PanelStyleClassName = 'TdxStatusBarTextPanelStyle'
|
||||
end>
|
||||
end
|
||||
object acToolbar: TActionList
|
||||
Images = dmData.ilSmallIcons
|
||||
Left = 288
|
||||
Top = 8
|
||||
object acAdd: TAction
|
||||
Tag = 1
|
||||
Caption = #52628#44032
|
||||
ImageIndex = 0
|
||||
OnExecute = DataSetCRUD
|
||||
end
|
||||
object acEdit: TAction
|
||||
Tag = 2
|
||||
Caption = #49688#51221
|
||||
ImageIndex = 1
|
||||
OnExecute = DataSetCRUD
|
||||
end
|
||||
object acDelete: TAction
|
||||
Tag = 3
|
||||
Caption = #49325#51228
|
||||
ImageIndex = 2
|
||||
OnExecute = DataSetCRUD
|
||||
end
|
||||
object acSave: TAction
|
||||
Tag = 4
|
||||
Caption = #51200#51109
|
||||
Enabled = False
|
||||
ImageIndex = 3
|
||||
OnExecute = DataSetCRUD
|
||||
end
|
||||
object acCancel: TAction
|
||||
Tag = 5
|
||||
Caption = #52712#49548
|
||||
ImageIndex = 4
|
||||
OnExecute = DataSetCRUD
|
||||
end
|
||||
end
|
||||
object scTheme: TdxSkinController
|
||||
NativeStyle = False
|
||||
SkinName = 'WXI'
|
||||
SkinPaletteName = 'Clearness'
|
||||
Left = 72
|
||||
Top = 8
|
||||
end
|
||||
object dxLayoutLookAndFeelList: TdxLayoutLookAndFeelList
|
||||
Left = 176
|
||||
Top = 8
|
||||
object dxLayoutSkinLookAndFeel1: TdxLayoutSkinLookAndFeel
|
||||
PixelsPerInch = 96
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,114 @@
|
||||
unit MainUnit;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{ Delphi }
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Actions, Vcl.ActnList, System.ImageList, Vcl.ImgList,
|
||||
Vcl.Menus, Vcl.StdCtrls, Data.DB,
|
||||
{ DevExpress }
|
||||
dxForms, cxGraphics, dxUIAClasses, cxControls, dxLayoutControlAdapters, dxLayoutContainer,
|
||||
cxButtons, cxClasses, dxLayoutControl, cxStyles, cxCustomData, cxFilter, cxData,
|
||||
cxDataStorage, cxEdit, cxNavigator, dxDateRanges, dxScrollbarAnnotations, cxDBData,
|
||||
cxGridLevel, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
|
||||
cxGrid, dxmdaset, dxLayoutcxEditAdapters, cxTextEdit, cxCurrencyEdit, cxContainer,
|
||||
cxImageList, cxMaskEdit, cxSpinEdit, cxDBEdit, dxCore, dxStatusBar,
|
||||
{ DevExpress Skin }
|
||||
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinWXI, dxLayoutLookAndFeels, dxSkinsForm,
|
||||
{ Custom }
|
||||
DataUnit;
|
||||
|
||||
type
|
||||
TfrmMain = class(TdxForm, IDataStateNotifier)
|
||||
lgRoot: TdxLayoutGroup;
|
||||
lcMain: TdxLayoutControl;
|
||||
lgToolbar: TdxLayoutGroup;
|
||||
lgInput: TdxLayoutGroup;
|
||||
lgGrid: TdxLayoutGroup;
|
||||
btnAdd: TcxButton;
|
||||
liAdd: TdxLayoutItem;
|
||||
btnEdit: TcxButton;
|
||||
liEdit: TdxLayoutItem;
|
||||
btnDelete: TcxButton;
|
||||
liDelete: TdxLayoutItem;
|
||||
btnPost: TcxButton;
|
||||
liSave: TdxLayoutItem;
|
||||
btnCancel: TcxButton;
|
||||
liCancel: TdxLayoutItem;
|
||||
dbtvEmployee: TcxGridDBTableView;
|
||||
grdEmployeeLevel1: TcxGridLevel;
|
||||
grdEmployee: TcxGrid;
|
||||
liGird: TdxLayoutItem;
|
||||
dbtvEmployeeRecId: TcxGridDBColumn;
|
||||
dbtvEmployeename: TcxGridDBColumn;
|
||||
dbtvEmployeeage: TcxGridDBColumn;
|
||||
dbtvEmployeeposition: TcxGridDBColumn;
|
||||
dbtvEmployeesalary: TcxGridDBColumn;
|
||||
dbtvEmployeeaddress: TcxGridDBColumn;
|
||||
dbteName: TcxDBTextEdit;
|
||||
dxLayoutItem2: TdxLayoutItem;
|
||||
dbseAge: TcxDBSpinEdit;
|
||||
dxLayoutItem3: TdxLayoutItem;
|
||||
dbtePosition: TcxDBTextEdit;
|
||||
dxLayoutItem4: TdxLayoutItem;
|
||||
dbseSalary: TcxDBSpinEdit;
|
||||
dxLayoutItem5: TdxLayoutItem;
|
||||
dbteAddress: TcxDBTextEdit;
|
||||
dxLayoutItem6: TdxLayoutItem;
|
||||
dxLayoutAutoCreatedGroup1: TdxLayoutAutoCreatedGroup;
|
||||
acToolbar: TActionList;
|
||||
acAdd: TAction;
|
||||
acEdit: TAction;
|
||||
acDelete: TAction;
|
||||
acSave: TAction;
|
||||
acCancel: TAction;
|
||||
scTheme: TdxSkinController;
|
||||
dxLayoutLookAndFeelList: TdxLayoutLookAndFeelList;
|
||||
dxLayoutSkinLookAndFeel1: TdxLayoutSkinLookAndFeel;
|
||||
sbMain: TdxStatusBar;
|
||||
procedure DataSetCRUD(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
private
|
||||
procedure NotifyDataSetStateChange(const AState: TDataSetState);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TfrmMain.DataSetCRUD(Sender: TObject);
|
||||
// action에 Tag로 하나의 함수로 리펙토링
|
||||
begin
|
||||
var Tag:= TAction(Sender).Tag;
|
||||
Case Tag of
|
||||
1: // 추가
|
||||
begin
|
||||
dmData.mdEmployee.Append;
|
||||
dbteName.SetFocus;
|
||||
end;
|
||||
2: dmData.mdEmployee.Edit; // 수정
|
||||
3: dmData.mdEmployee.Delete; // 삭제
|
||||
4: dmData.mdEmployee.Post; // 저장
|
||||
5: dmData.mdEmployee.Cancel; // 취소
|
||||
End;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
begin
|
||||
// DataSet State를 DataUnit으로 분리(유닛간 결합도를 분리) 리펙토링
|
||||
if Assigned(dmData) then
|
||||
dmData.SetNotifier(Self);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.NotifyDataSetStateChange(const AState: TDataSetState);
|
||||
begin
|
||||
acSave.Enabled:= Not(AState in [dsBrowse]);
|
||||
end;
|
||||
|
||||
end.
|
||||
@@ -0,0 +1,456 @@
|
||||
object dmData: TdmData
|
||||
OnCreate = DataModuleCreate
|
||||
Height = 332
|
||||
Width = 408
|
||||
object mdEmployee: TdxMemData
|
||||
Indexes = <>
|
||||
Persistent.Data = {
|
||||
5665728FC2F5285C8FFE3F050000000A000000010005006E616D650002000000
|
||||
02000400616765000500000001000900706F736974696F6E0004000000030007
|
||||
0073616C61727900320000000100080061646472657373000106000000C8ABB1
|
||||
E6B5BF011F000104000000B4EBB8AE0140E133000112000000BACEBBEA20B5BF
|
||||
B7A1B1B820B8EDC0E5B5BF0106000000B1E8B8BBB5BF012A000104000000B0FA
|
||||
C0E501401640000112000000BACEBBEA20C7D8BFEEB4EBB1B820BFECB5BF}
|
||||
SortOptions = []
|
||||
Left = 208
|
||||
Top = 80
|
||||
object mdEmployeename: TStringField
|
||||
FieldName = 'name'
|
||||
Size = 10
|
||||
end
|
||||
object mdEmployeeage: TSmallintField
|
||||
FieldName = 'age'
|
||||
end
|
||||
object mdEmployeeposition: TStringField
|
||||
FieldName = 'position'
|
||||
Size = 5
|
||||
end
|
||||
object mdEmployeesalary: TIntegerField
|
||||
FieldName = 'salary'
|
||||
end
|
||||
object mdEmployeeaddress: TStringField
|
||||
FieldName = 'address'
|
||||
Size = 50
|
||||
end
|
||||
end
|
||||
object dsEmployee: TDataSource
|
||||
AutoEdit = False
|
||||
DataSet = mdEmployee
|
||||
OnStateChange = dsEmployeeStateChange
|
||||
Left = 112
|
||||
Top = 80
|
||||
end
|
||||
object ilSmallIcons: TcxImageList
|
||||
SourceDPI = 96
|
||||
FormatVersion = 1
|
||||
Left = 136
|
||||
Top = 160
|
||||
Bitmap = {
|
||||
494C010105000800040010001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
|
||||
0000000000003600000028000000400000002000000001002000000000000020
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000010000130000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000201001E683908B10000000000000000000000000000
|
||||
00000000000000000000000000002816036F0000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000042A170372C36B0FF3D77610FF0000000000000000000000000000
|
||||
0000000000000000000E4C2905974A2905970000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000905
|
||||
00358C4D0BCED77610FFD77610FFD77610FF00000008010000120603002C180D
|
||||
02574E2B069ABC670EEFD77610FF0B06003B0000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000E45260591D274
|
||||
10FCD77610FFD77610FFD77610FFD77610FFD77610FFD77610FFD77610FFD776
|
||||
10FFD77610FFD77610FF703D08B8000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000160C0152AB5E0DE4D77610FFD776
|
||||
10FFD77610FFD77610FFD77610FFD77610FFD77610FFD77610FFD77610FFD776
|
||||
10FFD77610FFAC5F0DE40201001C000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000001109014AA45A0DDFD77610FFD776
|
||||
10FFD77610FFD77610FFD77610FFD77610FFD77610FFD77610FFD77610FFD776
|
||||
10FF894B0BCC0302002200000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000B3E220489CF72
|
||||
10FBD77610FFD77610FFD77610FFD77610FFC76E0FF6A45A0DDF623507AC170D
|
||||
0155000000030000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000703
|
||||
002E83480AC7D77610FFD77610FFD77610FF0000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000022414026ABE690FF0D77610FF0000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000020100195F3407A90000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000001F8C02F2229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF209202F6000000000000000000000000000000000000
|
||||
000000000008071F0073166501CF219602FB219702FB176901D1072100760000
|
||||
000A000000000000000000000000000000000000000000000000D77610FFD575
|
||||
10FE211202650201001900000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000805052A73121289CF1B1BC9FB1B1BCAFB12128CD105052C760000
|
||||
000A0000000000000000000000000000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF000000000000000000000000000000000001
|
||||
001B176902D1229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF186E
|
||||
02D60002001F0000000000000000000000000000000000000000D57510FE2112
|
||||
026508040034BC670EEF321C037C000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
021B12128DD11B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1414
|
||||
93D60000031F00000000000000000000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF000000000000000000000000000000071767
|
||||
02D0229C02FF229C02FF229C02FF0000000000000000229C02FF229C02FF229C
|
||||
02FF186E02D60000000A00000000000000000000000000000000211202650804
|
||||
0034BC670EEFD77610FFD77610FF321C037C0000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000071212
|
||||
8BD01B1BD1FF12128DD21717ADE81B1BD1FF1B1BD1FF1818B7EF111185CC1B1B
|
||||
D1FF141493D60000000A000000000000000000000000229C02FF229C02FF229C
|
||||
02FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000061C006E229C
|
||||
02FF229C02FF229C02FF229C02FF0000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF07210076000000000000000000000000000000000000000EB664
|
||||
0EEBD77610FFD77610FFD77610FFD77610FF321C037C00000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000505266E1B1B
|
||||
D1FF131390D4000001140000052B1717ADE81717B2EC010108340000000E1111
|
||||
80C81B1BD1FF05052C76000000000000000000000000229C02FF229C02FF229C
|
||||
02FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000156001C9229C
|
||||
02FF229C02FF229C02FF229C02FF0000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF176902D10000000000000000000000000000000000000000190D
|
||||
0257D07210FBD77610FFD77610FFD77610FFD77610FF321C037C000000000000
|
||||
0000000000000000000000000000000000000000000000000000111182C91B1B
|
||||
D1FF1818B7EF01010834000000000000052B0000072F000000000000052B1616
|
||||
A9E51B1BD1FF12128CD1000000000000000000000000229C02FF229C02FF229C
|
||||
02FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000208E02F3229C
|
||||
02FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000229C02FF229702FB00000000000000000000000000000000000000000000
|
||||
0000190D0257D07210FBD77610FFD77610FFD77610FFD77610FF321C037C0000
|
||||
00000000000000000000000000000000000000000000000000001919BDF31B1B
|
||||
D1FF1B1BD1FF1818B7EF0101083400000000000000000000062D1717ADE81B1B
|
||||
D1FF1B1BD1FF1B1BCAFB000000000000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF0000000000000000000000001F8D02F3229C
|
||||
02FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000229C02FF219602FB00000000000000000000000000000000000000000000
|
||||
000000000000190D0257D07210FBD77610FFD77610FFD77610FFD77610FF301A
|
||||
03790000000000000000000000000000000000000000000000001818BCF31B1B
|
||||
D1FF1B1BD1FF1717B2EC0000072F00000000000000000000052B1717ADE81B1B
|
||||
D1FF1B1BD1FF1A1AC9FB000000000000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF000000000000000000000000145E01C7229C
|
||||
02FF229C02FF229C02FF229C02FF0000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF166601CF00000000000000000000000000000000000000000000
|
||||
00000000000000000000190D0257D07210FBD77610FFD77610FFCF7210FA150C
|
||||
015104020024000000000000000000000000000000000000000011117FC71B1B
|
||||
D1FF1717B2EC0000072F000000000000072F01010834000000000000052B1717
|
||||
ADE81B1BD1FF121289CF000000000000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
|
||||
02FF229C02FF229C02FF229C02FF000000000000000000000000061B006B229C
|
||||
02FF229C02FF229C02FF229C02FF0000000000000000229C02FF229C02FF229C
|
||||
02FF229C02FF071F007300000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000190D0257D07210FBCF7210FA150C0151120A
|
||||
014BCB7010F8311B037B000000000000000000000000000000000505246B1B1B
|
||||
D1FF141494D7000001170000072F1717B2EC1818B7EF01010834000001141212
|
||||
8DD21B1BD1FF05052A73000000000000000000000000229C02FF229C02FF229C
|
||||
02FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000000000061663
|
||||
01CC229C02FF229C02FF229C02FF0000000000000000229C02FF229C02FF229C
|
||||
02FF176902D10000000800000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000190D0257150C0151120A014BCB70
|
||||
10F8D77610FFBD680EEF00000000000000000000000000000000000000061111
|
||||
85CC1B1BD1FF141494D71717B2EC1B1BD1FF1B1BD1FF1818B7EF131390D41B1B
|
||||
D1FF12128DD100000008000000000000000000000000229C02FF229C02FF229C
|
||||
02FF00000000229C02FF229C02FF229C02FF229C02FF00000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000000000000001
|
||||
0017166301CC229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF1767
|
||||
01D00001001B0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000001000017C56C0FF4D776
|
||||
10FFC56C0FF40D07003F00000000000000000000000000000000000000000000
|
||||
0117111185CC1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1212
|
||||
8BD00000021B00000000000000000000000000000000229C02FF229C02FF229C
|
||||
02FF00000000229C02FF00000000229C02FF229C02FF00000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000000000000000
|
||||
000000000006061B006B145E01C71F8D02F31F8E02F3156001C9061C006E0000
|
||||
0007000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000190D0257AF60
|
||||
0DE60D07003F0000000000000000000000000000000000000000000000000000
|
||||
0000000000060505246B11117FC71919BDF31919BDF3111182C90505266E0000
|
||||
00070000000000000000000000000000000000000000229C02FF229C02FF229C
|
||||
02FF00000000229C02FF00000000229C02FF229C02FF00000000000000000000
|
||||
0000229C02FF229C02FF229C02FF000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000001E8802EE229C02FF229C
|
||||
02FF00000000229C02FF229C02FF229C02FF229C02FF00000000000000000000
|
||||
0000229C02FF229C02FF1F8C02F2000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000424D3E000000000000003E000000
|
||||
2800000040000000200000000100010000000000000100000000000000000000
|
||||
000000000000000000000000FFFFFF0000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000}
|
||||
DesignInfo = 10485896
|
||||
ImageInfo = <
|
||||
item
|
||||
ImageClass = 'TdxSmartImage'
|
||||
Image.Data = {
|
||||
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554
|
||||
462D38223F3E0D0A3C7376672076657273696F6E3D22312E31222069643D224C
|
||||
617965725F312220786D6C6E733D22687474703A2F2F7777772E77332E6F7267
|
||||
2F323030302F7376672220786D6C6E733A786C696E6B3D22687474703A2F2F77
|
||||
77772E77332E6F72672F313939392F786C696E6B2220783D223070782220793D
|
||||
22307078222076696577426F783D2230203020333220333222207374796C653D
|
||||
22656E61626C652D6261636B67726F756E643A6E657720302030203332203332
|
||||
3B2220786D6C3A73706163653D227072657365727665223E262331333B262331
|
||||
303B3C7374796C6520747970653D22746578742F6373732220786D6C3A737061
|
||||
63653D227072657365727665223E2E426C75657B66696C6C3A23313137374437
|
||||
3B7D262331333B262331303B2623393B2E59656C6C6F777B66696C6C3A234646
|
||||
423131353B7D262331333B262331303B2623393B2E426C61636B7B66696C6C3A
|
||||
233732373237323B7D262331333B262331303B2623393B2E477265656E7B6669
|
||||
6C6C3A233033394332333B7D262331333B262331303B2623393B2E5265647B66
|
||||
696C6C3A234431314331433B7D262331333B262331303B2623393B2E7374307B
|
||||
6F7061636974793A302E37353B7D262331333B262331303B2623393B2E737431
|
||||
7B6F7061636974793A302E353B7D3C2F7374796C653E0D0A3C672069643D2241
|
||||
6464436972636C6564223E0D0A09093C7061746820636C6173733D2247726565
|
||||
6E2220643D224D31362C3443392E342C342C342C392E342C342C313673352E34
|
||||
2C31322C31322C31327331322D352E342C31322D31325332322E362C342C3136
|
||||
2C347A204D32342C3138682D367636682D34762D364838762D34683656386834
|
||||
763668365631387A222F3E0D0A093C2F673E0D0A3C2F7376673E0D0A}
|
||||
FileName = 'SVG Images\Icon Builder\Actions_AddCircled.svg'
|
||||
Keywords = 'Icon Builder;Actions;AddCircled'
|
||||
end
|
||||
item
|
||||
ImageClass = 'TdxSmartImage'
|
||||
Image.Data = {
|
||||
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554
|
||||
462D38223F3E0D0A3C7376672076657273696F6E3D22312E31222069643D224C
|
||||
617965725F312220786D6C6E733D22687474703A2F2F7777772E77332E6F7267
|
||||
2F323030302F7376672220786D6C6E733A786C696E6B3D22687474703A2F2F77
|
||||
77772E77332E6F72672F313939392F786C696E6B2220783D223070782220793D
|
||||
22307078222076696577426F783D2230203020333220333222207374796C653D
|
||||
22656E61626C652D6261636B67726F756E643A6E657720302030203332203332
|
||||
3B2220786D6C3A73706163653D227072657365727665223E262331333B262331
|
||||
303B3C7374796C6520747970653D22746578742F6373732220786D6C3A737061
|
||||
63653D227072657365727665223E2E426C75657B66696C6C3A23313137374437
|
||||
3B7D262331333B262331303B2623393B2E59656C6C6F777B66696C6C3A234646
|
||||
423131353B7D262331333B262331303B2623393B2E426C61636B7B66696C6C3A
|
||||
233732373237323B7D262331333B262331303B2623393B2E477265656E7B6669
|
||||
6C6C3A233033394332333B7D262331333B262331303B2623393B2E5265647B66
|
||||
696C6C3A234431314331433B7D262331333B262331303B2623393B2E7374307B
|
||||
6F7061636974793A302E37353B7D262331333B262331303B2623393B2E737431
|
||||
7B6F7061636974793A302E353B7D3C2F7374796C653E0D0A3C672069643D2245
|
||||
646974223E0D0A09093C7061746820636C6173733D22426C75652220643D224D
|
||||
32372E362C382E326C2D332E382D332E38632D302E352D302E352D312E342D30
|
||||
2E352D312E392C306C2D322E352C322E356C352E382C352E386C322E352D322E
|
||||
354332382E312C392E362C32382E312C382E382C32372E362C382E327A222F3E
|
||||
0D0A09093C706F6C79676F6E20636C6173733D22426C75652220706F696E7473
|
||||
3D22342C323820392E382C323820342C32322E32202623393B222F3E0D0A0909
|
||||
3C7265637420783D22352E382220793D2231332E3422207472616E73666F726D
|
||||
3D226D617472697828302E373037202D302E3730373220302E3730373220302E
|
||||
373037202D382E303732312031352E34303438292220636C6173733D22426C75
|
||||
65222077696474683D2231372E3622206865696768743D22382E32222F3E0D0A
|
||||
093C2F673E0D0A3C2F7376673E0D0A}
|
||||
FileName = 'SVG Images\Icon Builder\Actions_Edit.svg'
|
||||
Keywords = 'Icon Builder;Actions;Edit'
|
||||
end
|
||||
item
|
||||
ImageClass = 'TdxSmartImage'
|
||||
Image.Data = {
|
||||
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554
|
||||
462D38223F3E0D0A3C7376672076657273696F6E3D22312E31222069643D224C
|
||||
617965725F312220786D6C6E733D22687474703A2F2F7777772E77332E6F7267
|
||||
2F323030302F7376672220786D6C6E733A786C696E6B3D22687474703A2F2F77
|
||||
77772E77332E6F72672F313939392F786C696E6B2220783D223070782220793D
|
||||
22307078222076696577426F783D2230203020333220333222207374796C653D
|
||||
22656E61626C652D6261636B67726F756E643A6E657720302030203332203332
|
||||
3B2220786D6C3A73706163653D227072657365727665223E262331333B262331
|
||||
303B3C7374796C6520747970653D22746578742F6373732220786D6C3A737061
|
||||
63653D227072657365727665223E2E426C75657B66696C6C3A23313137374437
|
||||
3B7D262331333B262331303B2623393B2E59656C6C6F777B66696C6C3A234646
|
||||
423131353B7D262331333B262331303B2623393B2E426C61636B7B66696C6C3A
|
||||
233732373237323B7D262331333B262331303B2623393B2E477265656E7B6669
|
||||
6C6C3A233033394332333B7D262331333B262331303B2623393B2E5265647B66
|
||||
696C6C3A234431314331433B7D262331333B262331303B2623393B2E7374307B
|
||||
6F7061636974793A302E37353B7D262331333B262331303B2623393B2E737431
|
||||
7B6F7061636974793A302E353B7D3C2F7374796C653E0D0A3C672069643D2244
|
||||
656C657465436972636C6564223E0D0A09093C7061746820636C6173733D2252
|
||||
65642220643D224D31362C3443392E342C342C342C392E342C342C313673352E
|
||||
342C31322C31322C31327331322D352E342C31322D31325332322E362C342C31
|
||||
362C347A204D32332E312C32302E326C2D322E382C322E384C31362C31382E38
|
||||
6C2D342E322C342E3220202623393B2623393B6C2D322E382D322E386C342E32
|
||||
2D342E326C2D342E322D342E326C322E382D322E386C342E322C342E326C342E
|
||||
322D342E326C322E382C322E384C31382E382C31364C32332E312C32302E327A
|
||||
222F3E0D0A093C2F673E0D0A3C2F7376673E0D0A}
|
||||
FileName = 'SVG Images\Icon Builder\Actions_DeleteCircled.svg'
|
||||
Keywords = 'Icon Builder;Actions;DeleteCircled'
|
||||
end
|
||||
item
|
||||
ImageClass = 'TdxSmartImage'
|
||||
Image.Data = {
|
||||
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554
|
||||
462D38223F3E0D0A3C7376672076657273696F6E3D22312E31222069643D224C
|
||||
617965725F312220786D6C6E733D22687474703A2F2F7777772E77332E6F7267
|
||||
2F323030302F7376672220786D6C6E733A786C696E6B3D22687474703A2F2F77
|
||||
77772E77332E6F72672F313939392F786C696E6B2220783D223070782220793D
|
||||
22307078222076696577426F783D2230203020333220333222207374796C653D
|
||||
22656E61626C652D6261636B67726F756E643A6E657720302030203332203332
|
||||
3B2220786D6C3A73706163653D227072657365727665223E262331333B262331
|
||||
303B3C7374796C6520747970653D22746578742F637373223E2E477265656E7B
|
||||
66696C6C3A233033394332333B7D3C2F7374796C653E0D0A3C7061746820636C
|
||||
6173733D22477265656E2220643D224D32392C32682D35763130483856324833
|
||||
43322E342C322C322C322E342C322C3376323663302C302E362C302E342C312C
|
||||
312C3168323663302E362C302C312D302E342C312D3156334333302C322E342C
|
||||
32392E362C322C32392C327A204D32342C32344838762D3620202623393B6831
|
||||
365632347A204D31302C327638683856324831307A204D31342C38682D325634
|
||||
683256387A222F3E0D0A3C2F7376673E0D0A}
|
||||
FileName = 'SVG Images\XAF\Action_SaveScript.svg'
|
||||
Keywords = 'XAF;Action;SaveScript'
|
||||
end
|
||||
item
|
||||
ImageClass = 'TdxSmartImage'
|
||||
Image.Data = {
|
||||
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554
|
||||
462D38223F3E0D0A3C7376672076657273696F6E3D22312E31222069643D224C
|
||||
617965725F312220786D6C6E733D22687474703A2F2F7777772E77332E6F7267
|
||||
2F323030302F7376672220786D6C6E733A786C696E6B3D22687474703A2F2F77
|
||||
77772E77332E6F72672F313939392F786C696E6B2220783D223070782220793D
|
||||
22307078222076696577426F783D2230203020333220333222207374796C653D
|
||||
22656E61626C652D6261636B67726F756E643A6E657720302030203332203332
|
||||
3B2220786D6C3A73706163653D227072657365727665223E262331333B262331
|
||||
303B3C7374796C6520747970653D22746578742F637373223E2E426C75657B66
|
||||
696C6C3A233131373744373B7D3C2F7374796C653E0D0A3C7061746820636C61
|
||||
73733D22426C75652220643D224D33322C323863302C302C302D382D31362D38
|
||||
76364C302C31364C31362C3676364333322C31322C33322C32382C33322C3238
|
||||
7A222F3E0D0A3C2F7376673E0D0A}
|
||||
FileName = 'SVG Images\XAF\Action_Cancel.svg'
|
||||
Keywords = 'XAF;Action;Cancel'
|
||||
end>
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,80 @@
|
||||
unit DataUnit;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{ Delphi }
|
||||
System.SysUtils, System.Classes, Data.DB, dxmdaset, System.ImageList,
|
||||
Vcl.ImgList, Vcl.Controls, cxImageList, cxGraphics,
|
||||
{ Constom }
|
||||
Employee.Model;
|
||||
|
||||
type
|
||||
/// <summary>MainUnit에서 DataSet State를 사용하기 위해 인터페이스로 전달</summary>
|
||||
IDataStateNotifier = interface
|
||||
procedure NotifyDataSetStateChange(const AState: TDataSetState);
|
||||
end;
|
||||
|
||||
TdmData = class(TDataModule)
|
||||
mdEmployee: TdxMemData;
|
||||
mdEmployeename: TStringField;
|
||||
mdEmployeeage: TSmallintField;
|
||||
mdEmployeeposition: TStringField;
|
||||
mdEmployeesalary: TIntegerField;
|
||||
mdEmployeeaddress: TStringField;
|
||||
dsEmployee: TDataSource;
|
||||
ilSmallIcons: TcxImageList;
|
||||
procedure dsEmployeeStateChange(Sender: TObject);
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
private
|
||||
FNotifier: IDataStateNotifier;
|
||||
public
|
||||
procedure SetNotifier(ANotifier: IDataStateNotifier);
|
||||
/// <summary>Employee 전체 데이타 반환</summary>
|
||||
/// <returns>TArray<TEmployee> TEmployee 레코드를 배열로 반환</returns>
|
||||
/// <remarks>예제함수</remarks>
|
||||
function GetAllEmployee: TArray<TEmployee>;
|
||||
end;
|
||||
|
||||
var
|
||||
dmData: TdmData;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TdmData.DataModuleCreate(Sender: TObject);
|
||||
begin
|
||||
mdEmployee.Active:= True;
|
||||
end;
|
||||
|
||||
procedure TdmData.dsEmployeeStateChange(Sender: TObject);
|
||||
begin
|
||||
// DataSet 상태가 변할때 NotifyDataSetStateChange 메소드로 전달
|
||||
if Assigned(FNotifier) then
|
||||
FNotifier.NotifyDataSetStateChange(dsEmployee.DataSet.State);
|
||||
end;
|
||||
|
||||
procedure TdmData.SetNotifier(ANotifier: IDataStateNotifier);
|
||||
begin
|
||||
FNotifier:= ANotifier;
|
||||
end;
|
||||
|
||||
function TdmData.GetAllEmployee: TArray<TEmployee>;
|
||||
begin
|
||||
var Employees: TArray<TEmployee>;
|
||||
var i:= 0;
|
||||
|
||||
SetLength(Employees, mdEmployee.RecordCount);
|
||||
mdEmployee.First;
|
||||
|
||||
while Not mdEmployee.EOF do
|
||||
begin
|
||||
Employees[i].Name:= mdEmployee.FieldByName('Name').AsString;
|
||||
Inc(i);
|
||||
mdEmployee.Next;
|
||||
end;
|
||||
|
||||
result:= Employees;
|
||||
end;
|
||||
end.
|
||||
@@ -0,0 +1,16 @@
|
||||
unit Employee.Model;
|
||||
|
||||
interface
|
||||
|
||||
type
|
||||
TEmployee = record
|
||||
Name: string;
|
||||
Age: integer;
|
||||
Position: string;
|
||||
Salary: integer;
|
||||
Address: string;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
@@ -0,0 +1,17 @@
|
||||
program Á÷¿ø°ü¸®;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
MainUnit in 'MainUnit.pas' {frmMain},
|
||||
DataUnit in 'controller\DataUnit.pas' {dmData: TDataModule},
|
||||
Employee.Model in 'model\Employee.Model.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.CreateForm(TdmData, dmData);
|
||||
Application.CreateForm(TfrmMain, frmMain);
|
||||
Application.Run;
|
||||
end.
|
||||
+1123
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<BorlandProject>
|
||||
<Transactions>
|
||||
<Transaction>1899-12-30 00:00:00.000.450,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\controller\DataUnit.dfm=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Unit1.dfm</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.095,=D:\Embarcadero\projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.172,=D:\Embarcadero\projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.114,=D:\Embarcadero\projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.547,=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.833,=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.842,=D:\Embarcadero\projects\WebModuleUnit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.905,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\직원관리.dproj=D:\Embarcadero\projects\Project1.dproj</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.724,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Employee.Model.pas=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\model\Employee.Model.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.127,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\MainUnit.pas=D:\Embarcadero\projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.127,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\MainUnit.dfm=D:\Embarcadero\projects\Unit1.dfm</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.001,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\model\Employee.Model.pas=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.851,=D:\Embarcadero\projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.450,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\controller\DataUnit.pas=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.106,=D:\Embarcadero\projects\FormUnit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.805,D:\Embarcadero\projects\스터디\20241117_데이타셋\source\Employee.Model.pas=D:\Embarcadero\projects\스터디\20241117_데이타셋\source\model\Employee.Model.pas</Transaction>
|
||||
</Transactions>
|
||||
</BorlandProject>
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,61 @@
|
||||
[ExpressSkins]
|
||||
Default=1
|
||||
ShowNotifications=0
|
||||
Enabled=1
|
||||
dxSkinBasic=0
|
||||
dxSkinBlack=0
|
||||
dxSkinBlue=0
|
||||
dxSkinBlueprint=0
|
||||
dxSkinCaramel=0
|
||||
dxSkinCoffee=0
|
||||
dxSkinDarkroom=0
|
||||
dxSkinDarkSide=0
|
||||
dxSkinDevExpressDarkStyle=0
|
||||
dxSkinDevExpressStyle=0
|
||||
dxSkinFoggy=0
|
||||
dxSkinGlassOceans=0
|
||||
dxSkinHighContrast=0
|
||||
dxSkiniMaginary=0
|
||||
dxSkinLilian=0
|
||||
dxSkinLiquidSky=0
|
||||
dxSkinLondonLiquidSky=0
|
||||
dxSkinMcSkin=0
|
||||
dxSkinMetropolis=0
|
||||
dxSkinMetropolisDark=0
|
||||
dxSkinMoneyTwins=0
|
||||
dxSkinOffice2007Black=0
|
||||
dxSkinOffice2007Blue=0
|
||||
dxSkinOffice2007Green=0
|
||||
dxSkinOffice2007Pink=0
|
||||
dxSkinOffice2007Silver=0
|
||||
dxSkinOffice2010Black=0
|
||||
dxSkinOffice2010Blue=0
|
||||
dxSkinOffice2010Silver=0
|
||||
dxSkinOffice2013DarkGray=0
|
||||
dxSkinOffice2013LightGray=0
|
||||
dxSkinOffice2013White=0
|
||||
dxSkinOffice2016Colorful=0
|
||||
dxSkinOffice2016Dark=0
|
||||
dxSkinOffice2019Black=0
|
||||
dxSkinOffice2019Colorful=0
|
||||
dxSkinOffice2019DarkGray=0
|
||||
dxSkinOffice2019White=0
|
||||
dxSkinPumpkin=0
|
||||
dxSkinSeven=0
|
||||
dxSkinSevenClassic=0
|
||||
dxSkinSharp=0
|
||||
dxSkinSharpPlus=0
|
||||
dxSkinSilver=0
|
||||
dxSkinSpringtime=0
|
||||
dxSkinStardust=0
|
||||
dxSkinSummer2008=0
|
||||
dxSkinTheAsphaltWorld=0
|
||||
dxSkinTheBezier=0
|
||||
dxSkinValentine=0
|
||||
dxSkinVisualStudio2013Blue=0
|
||||
dxSkinVisualStudio2013Dark=0
|
||||
dxSkinVisualStudio2013Light=0
|
||||
dxSkinVS2010=0
|
||||
dxSkinWhiteprint=0
|
||||
dxSkinWXI=1
|
||||
dxSkinXmas2008Blue=0
|
||||
Reference in New Issue
Block a user