diff --git a/data/EmployeeUnit.dfm b/data/EmployeeUnit.dfm
new file mode 100644
index 0000000..346439a
--- /dev/null
+++ b/data/EmployeeUnit.dfm
@@ -0,0 +1,42 @@
+object dmData: TdmData
+ Height = 352
+ Width = 455
+ object mdEmployee: TdxMemData
+ Indexes = <>
+ Persistent.Data = {
+ 5665728FC2F5285C8FFE3F060000000A000000010005006E616D650002000000
+ 0200040061676500040000000300070073616C61727900020000000500040073
+ 6578000A00000001000900706F736974696F6E001E0000000100080061646472
+ 657373000106000000C0CCB0FCC0E70134000100E1F5050101000104000000B4
+ EBC7A50114000000BACEBBEA20C7D8BFEEB4EBB1B820B9DDBCDBB5BF}
+ SortOptions = []
+ Left = 288
+ Top = 160
+ object mdEmployeename: TStringField
+ FieldName = 'name'
+ Size = 10
+ end
+ object mdEmployeeage: TSmallintField
+ FieldName = 'age'
+ end
+ object mdEmployeesalary: TIntegerField
+ FieldName = 'salary'
+ end
+ object mdEmployeesex: TBooleanField
+ FieldName = 'sex'
+ end
+ object mdEmployeeposition: TStringField
+ FieldName = 'position'
+ Size = 10
+ end
+ object mdEmployeeaddress: TStringField
+ FieldName = 'address'
+ Size = 30
+ end
+ end
+ object dsEmployee: TDataSource
+ DataSet = mdEmployee
+ Left = 192
+ Top = 152
+ end
+end
diff --git a/data/EmployeeUnit.pas b/data/EmployeeUnit.pas
new file mode 100644
index 0000000..d41aee1
--- /dev/null
+++ b/data/EmployeeUnit.pas
@@ -0,0 +1,33 @@
+unit EmployeeUnit;
+
+interface
+
+uses
+ System.SysUtils, System.Classes, Data.DB, dxmdaset;
+
+type
+ TdmData = class(TDataModule)
+ mdEmployee: TdxMemData;
+ mdEmployeename: TStringField;
+ mdEmployeeage: TSmallintField;
+ mdEmployeesalary: TIntegerField;
+ mdEmployeesex: TBooleanField;
+ mdEmployeeaddress: TStringField;
+ mdEmployeeposition: TStringField;
+ dsEmployee: TDataSource;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ dmData: TdmData;
+
+implementation
+
+{%CLASSGROUP 'Vcl.Controls.TControl'}
+
+{$R *.dfm}
+
+end.
diff --git a/form/MainUnit.dfm b/form/MainUnit.dfm
index 6028134..0d99125 100644
--- a/form/MainUnit.dfm
+++ b/form/MainUnit.dfm
@@ -1,9 +1,9 @@
-object Form1: TForm1
+object frmMain: TfrmMain
Left = 0
Top = 0
Caption = #47700#51064#54268
- ClientHeight = 441
- ClientWidth = 624
+ ClientHeight = 601
+ ClientWidth = 752
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -11,4 +11,145 @@ object Form1: TForm1
Font.Name = 'Segoe UI'
Font.Style = []
TextHeight = 15
+ object lcMain: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 752
+ Height = 601
+ Align = alClient
+ TabOrder = 0
+ ExplicitLeft = 104
+ ExplicitTop = 72
+ ExplicitWidth = 300
+ ExplicitHeight = 250
+ object btnAdd: TcxButton
+ Left = 405
+ Top = 33
+ Width = 75
+ Height = 35
+ Caption = 'btnAdd'
+ TabOrder = 0
+ end
+ object btnSave: TcxButton
+ Left = 487
+ Top = 33
+ Width = 75
+ Height = 35
+ Caption = 'btnSave'
+ TabOrder = 1
+ end
+ object btnDelete: TcxButton
+ Left = 569
+ Top = 33
+ Width = 75
+ Height = 35
+ Caption = 'btnDelete'
+ TabOrder = 2
+ end
+ object btnCancel: TcxButton
+ Left = 651
+ Top = 33
+ Width = 75
+ Height = 35
+ Caption = 'btnCancel'
+ TabOrder = 3
+ end
+ object grdEmployee: TcxGrid
+ Left = 26
+ Top = 152
+ Width = 700
+ Height = 200
+ TabOrder = 4
+ object dbtvEmployee: TcxGridDBTableView
+ Navigator.Buttons.CustomButtons = <>
+ ScrollbarAnnotations.CustomAnnotations = <>
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ OptionsView.GroupByBox = False
+ end
+ object grdEmployeeLevel1: TcxGridLevel
+ GridView = dbtvEmployee
+ end
+ end
+ object lgRoot: TdxLayoutGroup
+ AlignHorz = ahParentManaged
+ AlignVert = avParentManaged
+ Hidden = True
+ ItemIndex = 2
+ ShowBorder = False
+ Index = -1
+ end
+ object lgToolbar: TdxLayoutGroup
+ Parent = lgRoot
+ CaptionOptions.Text = 'New Group'
+ ItemIndex = 3
+ LayoutDirection = ldHorizontal
+ Index = 0
+ end
+ object lgInput: TdxLayoutGroup
+ Parent = lgRoot
+ CaptionOptions.Text = 'New Group'
+ Index = 1
+ end
+ object lgGrid: TdxLayoutGroup
+ Parent = lgRoot
+ CaptionOptions.Text = 'New Group'
+ 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 liSave: TdxLayoutItem
+ Parent = lgToolbar
+ AlignHorz = ahRight
+ CaptionOptions.Text = 'cxButton2'
+ CaptionOptions.Visible = False
+ Control = btnSave
+ 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 liCancel: TdxLayoutItem
+ Parent = lgToolbar
+ AlignHorz = ahRight
+ CaptionOptions.Text = 'cxButton4'
+ CaptionOptions.Visible = False
+ Control = btnCancel
+ ControlOptions.OriginalHeight = 35
+ ControlOptions.OriginalWidth = 75
+ ControlOptions.ShowBorder = False
+ Index = 3
+ end
+ object liGrid: TdxLayoutItem
+ Parent = lgGrid
+ CaptionOptions.Text = 'cxGrid2'
+ CaptionOptions.Visible = False
+ Control = grdEmployee
+ ControlOptions.OriginalHeight = 200
+ ControlOptions.OriginalWidth = 250
+ ControlOptions.ShowBorder = False
+ Index = 0
+ end
+ end
end
diff --git a/form/MainUnit.pas b/form/MainUnit.pas
index 95526f6..f7e51a0 100644
--- a/form/MainUnit.pas
+++ b/form/MainUnit.pas
@@ -4,10 +4,33 @@ interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
+ Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, dxUIAClasses, cxControls,
+ cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinWXI,
+ dxLayoutControlAdapters, dxLayoutContainer, Vcl.Menus, cxStyles, cxCustomData,
+ cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator, dxDateRanges,
+ dxScrollbarAnnotations, Data.DB, cxDBData, cxGridLevel, cxClasses,
+ cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxGrid, Vcl.StdCtrls, cxButtons, dxLayoutControl;
type
- TForm1 = class(TForm)
+ TfrmMain = class(TForm)
+ lgRoot: TdxLayoutGroup;
+ lcMain: TdxLayoutControl;
+ lgToolbar: TdxLayoutGroup;
+ lgInput: TdxLayoutGroup;
+ lgGrid: TdxLayoutGroup;
+ btnAdd: TcxButton;
+ liAdd: TdxLayoutItem;
+ btnSave: TcxButton;
+ liSave: TdxLayoutItem;
+ btnDelete: TcxButton;
+ liDelete: TdxLayoutItem;
+ btnCancel: TcxButton;
+ liCancel: TdxLayoutItem;
+ dbtvEmployee: TcxGridDBTableView;
+ grdEmployeeLevel1: TcxGridLevel;
+ grdEmployee: TcxGrid;
+ liGrid: TdxLayoutItem;
private
{ Private declarations }
public
@@ -15,7 +38,7 @@ type
end;
var
- Form1: TForm1;
+ frmMain: TfrmMain;
implementation
diff --git a/form/데이타셋데모.dproj.local b/form/데이타셋데모.dproj.local
new file mode 100644
index 0000000..3f44d9d
--- /dev/null
+++ b/form/데이타셋데모.dproj.local
@@ -0,0 +1,9 @@
+
+
+
+ 1899-12-30 00:00:00.000.571,D:\Embarcadero\projects\Project1.dproj=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\데이타셋데모.dproj
+ 1899-12-30 00:00:00.000.855,D:\Embarcadero\projects\Unit1.pas=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\form\MainUnit.pas
+ 1899-12-30 00:00:00.000.354,=D:\Embarcadero\projects\Unit1.pas
+ 1899-12-30 00:00:00.000.855,D:\Embarcadero\projects\Unit1.dfm=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\form\MainUnit.dfm
+
+
diff --git a/form/데이타셋데모.identcache b/form/데이타셋데모.identcache
new file mode 100644
index 0000000..d9dc332
Binary files /dev/null and b/form/데이타셋데모.identcache differ
diff --git a/데이타셋데모.dpr b/데이타셋데모.dpr
index 8239494..20fcbae 100644
--- a/데이타셋데모.dpr
+++ b/데이타셋데모.dpr
@@ -2,13 +2,15 @@ program
uses
Vcl.Forms,
- MainUnit in 'form\MainUnit.pas' {Form1};
+ MainUnit in 'form\MainUnit.pas' {frmMain},
+ EmployeeUnit in 'data\EmployeeUnit.pas' {dmData: TDataModule};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
- Application.CreateForm(TForm1, Form1);
+ Application.CreateForm(TfrmMain, frmMain);
+ Application.CreateForm(TdmData, dmData);
Application.Run;
end.
diff --git a/데이타셋데모.dproj b/데이타셋데모.dproj
index 1a1787b..5df089b 100644
--- a/데이타셋데모.dproj
+++ b/데이타셋데모.dproj
@@ -128,9 +128,14 @@
MainSource
-
+
dfm
+
+
+ dfm
+ TDataModule
+
Base
@@ -157,7 +162,7 @@
-
+
데이타셋데모.exe
true
diff --git a/데이타셋데모.dproj.local b/데이타셋데모.dproj.local
index 3107db3..de2a138 100644
--- a/데이타셋데모.dproj.local
+++ b/데이타셋데모.dproj.local
@@ -1,9 +1,17 @@
-
- 2024-12-01 10:39:59.354,=D:\Embarcadero\projects\Unit1.pas
- 2024-12-01 10:41:15.855,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\form\MainUnit.dfm=D:\Embarcadero\projects\Unit1.dfm
- 2024-12-01 10:41:15.855,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\form\MainUnit.pas=D:\Embarcadero\projects\Unit1.pas
- 2024-12-01 10:41:59.571,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\데이타셋데모.dproj=D:\Embarcadero\projects\Project1.dproj
+
+ 1899-12-30 00:00:00.000.855,D:\Embarcadero\projects\Unit1.dfm=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\form\MainUnit.dfm
+ 1899-12-30 00:00:00.000.354,=D:\Embarcadero\projects\Unit1.pas
+ 1899-12-30 00:00:00.000.855,D:\Embarcadero\projects\Unit1.pas=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\form\MainUnit.pas
+ 1899-12-30 00:00:00.000.571,D:\Embarcadero\projects\Project1.dproj=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\데이타셋데모.dproj
+ 2024-12-01 11:13:59.659,=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit1.pas
+ 2024-12-01 11:14:37.186,=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit1.pas
+ 2024-12-01 11:15:25.287,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\data\DataUnit.pas=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit1.pas
+ 2024-12-01 11:15:25.287,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\data\DataUnit.dfm=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit1.dfm
+ 2024-12-01 11:16:09.428,=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit2.pas
+ 2024-12-01 11:16:36.509,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\data\EmployeeUnit.pas=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit2.pas
+ 2024-12-01 11:16:36.509,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\data\EmployeeUnit.dfm=D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\Unit2.dfm
+ 2024-12-01 11:16:58.855,D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\soruce\data\DataUnit.pas=
diff --git a/데이타셋데모.identcache b/데이타셋데모.identcache
new file mode 100644
index 0000000..d50e6e4
Binary files /dev/null and b/데이타셋데모.identcache differ