From 5282430fd9fb0521e5b50b0d2c9663c73ec98848 Mon Sep 17 00:00:00 2001 From: "pagewiz@naver.com" Date: Sun, 1 Dec 2024 11:27:41 +0900 Subject: [PATCH] =?UTF-8?q?UI=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=83=80=EC=85=8B=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/EmployeeUnit.dfm | 42 ++++++++++ data/EmployeeUnit.pas | 33 ++++++++ form/MainUnit.dfm | 147 +++++++++++++++++++++++++++++++++- form/MainUnit.pas | 29 ++++++- form/데이타셋데모.dproj.local | 9 +++ form/데이타셋데모.identcache | Bin 0 -> 209 bytes 데이타셋데모.dpr | 6 +- 데이타셋데모.dproj | 9 ++- 데이타셋데모.dproj.local | 18 +++-- 데이타셋데모.identcache | Bin 0 -> 199 bytes 10 files changed, 278 insertions(+), 15 deletions(-) create mode 100644 data/EmployeeUnit.dfm create mode 100644 data/EmployeeUnit.pas create mode 100644 form/데이타셋데모.dproj.local create mode 100644 form/데이타셋데모.identcache create mode 100644 데이타셋데모.identcache 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 0000000000000000000000000000000000000000..d9dc3322e4f3b1f7fa1803f460d18f232fc10f40 GIT binary patch literal 209 zcmZQ#U|@)Gv5IlcO-d|EPE1KH%8w~1%FjwoE-8+A)3xMn%ZAreroZK%>Bo?QZ#HXa@=EoH07nLTb#-!yJ<;J}3-SB4ambc9fZ(6&7?ANPS=%o}C0nLYl aaOzkDw#_#&GcPnRvqY~Tu^4UvkO2VM6;3Yz literal 0 HcmV?d00001 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 -
Form1
+
frmMain
dfm
+ +
dmData
+ 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 0000000000000000000000000000000000000000..d50e6e48eaf46aa88ef39c5e8097c65c8ce77423 GIT binary patch literal 199 zcmZQ#U|ZK%>Bo?QZ#HXa@=EoH07nLTb#-!yJ<;M6XX6A+FWtQj_Bo+frg@bU4jep&{;mzDF YZ<`z5v~~m8uUD