DataSet State 변경 및 파일저장

This commit is contained in:
pagewiz@naver.com
2024-12-01 15:21:36 +09:00
parent 5282430fd9
commit a3d7709e12
8 changed files with 878 additions and 57 deletions
+445 -6
View File
@@ -1,17 +1,22 @@
object dmData: TdmData
OnCreate = DataModuleCreate
OnDestroy = DataModuleDestroy
Height = 352
Width = 455
object mdEmployee: TdxMemData
Active = True
Indexes = <>
Persistent.Data = {
5665728FC2F5285C8FFE3F060000000A000000010005006E616D650002000000
0200040061676500040000000300070073616C61727900020000000500040073
6578000A00000001000900706F736974696F6E001E0000000100080061646472
657373000106000000C0CCB0FCC0E70134000100E1F5050101000104000000B4
EBC7A50114000000BACEBBEA20C7D8BFEEB4EBB1B820B9DDBCDBB5BF}
657373000106000000C0CCB0FCC0E70134000180969800010100010100000035
0114000000BACEBBEA20C7D8BFEEB4EBB1B820B9DDBCDBB5BF0106000000C1D6
BCBAC8C601200001A08601000101000101000000330114000000BACEBBEA20C7
D8BFEEB4EBB1B820B9DDBFA9B5BF}
SortOptions = []
Left = 288
Top = 160
Left = 264
Top = 176
object mdEmployeename: TStringField
FieldName = 'name'
Size = 10
@@ -35,8 +40,442 @@ object dmData: TdmData
end
end
object dsEmployee: TDataSource
AutoEdit = False
DataSet = mdEmployee
Left = 192
Top = 152
OnStateChange = dsEmployeeStateChange
Left = 168
Top = 176
end
object liSmallIcons: TcxImageList
SourceDPI = 96
FormatVersion = 1
Left = 272
Top = 64
Bitmap = {
494C010105000800040010001000FFFFFFFF2100FFFFFFFFFFFFFFFF424D3600
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
000000000000000000000000000000000000000000001F8C02F2229C02FF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF229C02FF209202F6000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000001E8902EF1F8C02F200000000000000000000
0000000000000000000000000000000000000000000000000000D77610FFD575
10FE211202650201001900000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF000000000000000000000000000000000000
00000000000805052A73121289CF1B1BC9FB1B1BCAFB12128CD105052C760000
000A000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
0000000000000000000000000000000000000000000000000000D57510FE2112
026508040034BC670EEF321C037C000000000000000000000000000000000000
00000000000000000000000000000000000000000000229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF000000000000000000000000000000000000
021B12128DD11B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1414
93D60000031F0000000000000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
0000000000000000000000000000000000000000000000000000211202650804
0034BC670EEFD77610FFD77610FF321C037C0000000000000000000000000000
00000000000000000000000000000000000000000000229C02FF229C02FF229C
02FF000000000000000000000000000000000000000000000000000000000000
0000229C02FF229C02FF229C02FF000000000000000000000000000000071212
8BD01B1BD1FF12128DD21717ADE81B1BD1FF1B1BD1FF1818B7EF111185CC1B1B
D1FF141493D60000000A00000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
00000000000000000000000000000000000000000000000000000000000EB664
0EEBD77610FFD77610FFD77610FFD77610FF321C037C00000000000000000000
00000000000000000000000000000000000000000000229C02FF229C02FF229C
02FF000000000000000000000000000000000000000000000000000000000000
0000229C02FF229C02FF229C02FF0000000000000000000000000505266E1B1B
D1FF131390D4000001140000052B1717ADE81717B2EC010108340000000E1111
80C81B1BD1FF05052C7600000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
000000000000000000000000000000000000000000000000000000000000190D
0257D07210FBD77610FFD77610FFD77610FFD77610FF321C037C000000000000
00000000000000000000000000000000000000000000229C02FF229C02FF229C
02FF000000000000000000000000000000000000000000000000000000000000
0000229C02FF229C02FF229C02FF000000000000000000000000111182C91B1B
D1FF1818B7EF01010834000000000000052B0000072F000000000000052B1616
A9E51B1BD1FF12128CD1000000000000000000000000000000001E8902EF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF1F8C02F200000000000000000000000000000000000000000000
0000190D0257D07210FBD77610FFD77610FFD77610FFD77610FF321C037C0000
00000000000000000000000000000000000000000000229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF0000000000000000000000001919BDF31B1B
D1FF1B1BD1FF1818B7EF0101083400000000000000000000062D1717ADE81B1B
D1FF1B1BD1FF1B1BCAFB000000000000000000000000000000001D8502EB229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF1E8802EE00000000000000000000000000000000000000000000
000000000000190D0257D07210FBD77610FFD77610FFD77610FFD77610FF301A
03790000000000000000000000000000000000000000229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF0000000000000000000000001818BCF31B1B
D1FF1B1BD1FF1717B2EC0000072F00000000000000000000052B1717ADE81B1B
D1FF1B1BD1FF1A1AC9FB00000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000190D0257D07210FBD77610FFD77610FFCF7210FA150C
01510402002400000000000000000000000000000000229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C02FF229C
02FF229C02FF229C02FF229C02FF00000000000000000000000011117FC71B1B
D1FF1717B2EC0000072F000000000000072F01010834000000000000052B1717
ADE81B1BD1FF121289CF00000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000190D0257D07210FBCF7210FA150C0151120A
014BCB7010F8311B037B000000000000000000000000229C02FF229C02FF229C
02FF000000000000000000000000000000000000000000000000000000000000
0000229C02FF229C02FF229C02FF0000000000000000000000000505246B1B1B
D1FF141494D7000001170000072F1717B2EC1818B7EF01010834000001141212
8DD21B1BD1FF05052A7300000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000190D0257150C0151120A014BCB70
10F8D77610FFBD680EEF000000000000000000000000229C02FF229C02FF229C
02FF00000000229C02FF229C02FF229C02FF229C02FF00000000000000000000
0000229C02FF229C02FF229C02FF000000000000000000000000000000061111
85CC1B1BD1FF141494D71717B2EC1B1BD1FF1B1BD1FF1818B7EF131390D41B1B
D1FF12128DD10000000800000000000000000000000000000000000000000000
0000000000000000000000000000229C02FF229C02FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000001000017C56C0FF4D776
10FFC56C0FF40D07003F000000000000000000000000229C02FF229C02FF229C
02FF00000000229C02FF00000000229C02FF229C02FF00000000000000000000
0000229C02FF229C02FF229C02FF000000000000000000000000000000000000
0117111185CC1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1B1BD1FF1212
8BD00000021B0000000000000000000000000000000000000000000000000000
00000000000000000000000000001D8502EB1E8802EE00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000190D0257AF60
0DE60D07003F00000000000000000000000000000000229C02FF229C02FF229C
02FF00000000229C02FF00000000229C02FF229C02FF00000000000000000000
0000229C02FF229C02FF229C02FF000000000000000000000000000000000000
0000000000060505246B11117FC71919BDF31919BDF3111182C90505266E0000
0007000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001E8802EE229C02FF229C
02FF00000000229C02FF229C02FF229C02FF229C02FF00000000000000000000
0000229C02FF229C02FF1F8C02F2000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
2800000040000000200000000100010000000000000100000000000000000000
000000000000000000000000FFFFFF0000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000}
DesignInfo = 4194576
ImageInfo = <
item
ImageClass = 'TdxSmartImage'
Image.Data = {
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554
462D38223F3E0D0A3C7376672076657273696F6E3D22312E31222069643D224C
617965725F312220786D6C6E733D22687474703A2F2F7777772E77332E6F7267
2F323030302F7376672220786D6C6E733A786C696E6B3D22687474703A2F2F77
77772E77332E6F72672F313939392F786C696E6B2220783D223070782220793D
22307078222076696577426F783D2230203020333220333222207374796C653D
22656E61626C652D6261636B67726F756E643A6E657720302030203332203332
3B2220786D6C3A73706163653D227072657365727665223E262331333B262331
303B3C7374796C6520747970653D22746578742F6373732220786D6C3A737061
63653D227072657365727665223E2E426C75657B66696C6C3A23313137374437
3B7D262331333B262331303B2623393B2E59656C6C6F777B66696C6C3A234646
423131353B7D262331333B262331303B2623393B2E426C61636B7B66696C6C3A
233732373237323B7D262331333B262331303B2623393B2E477265656E7B6669
6C6C3A233033394332333B7D262331333B262331303B2623393B2E5265647B66
696C6C3A234431314331433B7D262331333B262331303B2623393B2E7374307B
6F7061636974793A302E37353B7D262331333B262331303B2623393B2E737431
7B6F7061636974793A302E353B7D3C2F7374796C653E0D0A3C672069643D2241
6464223E0D0A09093C7061746820636C6173733D22477265656E2220643D224D
32372C3134682D39563563302D302E352D302E352D312D312D31682D32632D30
2E352C302D312C302E352D312C3176394835632D302E352C302D312C302E352D
312C31763263302C302E352C302E352C312C312C316839763920202623393B26
23393B63302C302E352C302E352C312C312C31683263302E352C302C312D302E
352C312D31762D39683963302E352C302C312D302E352C312D31762D32433238
2C31342E352C32372E352C31342C32372C31347A222F3E0D0A093C2F673E0D0A
3C2F7376673E0D0A}
FileName = 'SVG Images\Icon Builder\Actions_Add.svg'
Keywords = 'Icon Builder;Actions;Add'
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
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
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
303B3C7374796C6520747970653D22746578742F637373223E2E426C75657B66
696C6C3A233131373744373B7D3C2F7374796C653E0D0A3C7061746820636C61
73733D22426C75652220643D224D33322C323863302C302C302D382D31362D38
76364C302C31364C31362C3676364333322C31322C33322C32382C33322C3238
7A222F3E0D0A3C2F7376673E0D0A}
FileName = 'SVG Images\XAF\Action_Cancel.svg'
Keywords = 'XAF;Action;Cancel'
end>
end
object mdPosition: TdxMemData
Indexes = <>
Persistent.Data = {
5665728FC2F5285C8FFE3F020000000400000003000300696400140000000100
05004E616D650001010000000104000000C1D6C0D301020000000104000000B4
EBB8AE01030000000104000000B0FAC0E501040000000104000000BACEC0E501
050000000104000000C0CCBBE701060000000104000000BBE7C0E5}
SortOptions = []
Left = 344
Top = 136
object mdPositionid: TIntegerField
FieldName = 'id'
end
object mdPositionName: TStringField
FieldName = 'Name'
end
end
end
+41 -2
View File
@@ -1,9 +1,10 @@
unit EmployeeUnit;
unit EmployeeUnit;
interface
uses
System.SysUtils, System.Classes, Data.DB, dxmdaset;
System.SysUtils, System.Classes, Data.DB, dxmdaset, System.ImageList,
Vcl.ImgList, Vcl.Controls, cxImageList, cxGraphics;
type
TdmData = class(TDataModule)
@@ -15,6 +16,13 @@ type
mdEmployeeaddress: TStringField;
mdEmployeeposition: TStringField;
dsEmployee: TDataSource;
liSmallIcons: TcxImageList;
mdPosition: TdxMemData;
mdPositionName: TStringField;
mdPositionid: TIntegerField;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
procedure dsEmployeeStateChange(Sender: TObject);
private
{ Private declarations }
public
@@ -30,4 +38,35 @@ implementation
{$R *.dfm}
uses
Vcl.Dialogs,
MainUnit;
var
Path: string;
procedure TdmData.DataModuleCreate(Sender: TObject);
begin
Path:= GetCurrentDir + '\data.db';
// 'D:\Embarcadero\projects\스터디\2024.12.01.dataset_demo\bin\Win32\Debug\data.db'
if FileExists(Path) then
mdEmployee.LoadFromBinaryFile(Path);
end;
procedure TdmData.DataModuleDestroy(Sender: TObject);
begin
mdEmployee.SaveToBinaryFile(Path);
end;
procedure TdmData.dsEmployeeStateChange(Sender: TObject);
{ dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey,
dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead,
dsInternalCalc, dsOpening }
begin
// ShowMessage('데아타셋 상태값이 변경이 되었습니다');
frmMain.acSave.Enabled:= dsEmployee.State in [dsInsert, dsEdit];
// if (dsEmployee.State = dsInsert) or (dsEmployee.State = dsEdit) then
// frmMain.acSave.Enabled:= True
end;
end.
+313 -30
View File
@@ -18,83 +18,225 @@ object frmMain: TfrmMain
Height = 601
Align = alClient
TabOrder = 0
LayoutLookAndFeel = dxLayoutSkinLookAndFeel1
ExplicitLeft = 104
ExplicitTop = 72
ExplicitWidth = 300
ExplicitHeight = 250
object btnAdd: TcxButton
Left = 405
Top = 33
Left = 337
Top = 12
Width = 75
Height = 35
Caption = 'btnAdd'
Action = acAdd
TabOrder = 0
end
object btnSave: TcxButton
Left = 487
Top = 33
Left = 501
Top = 12
Width = 75
Height = 35
Caption = 'btnSave'
TabOrder = 1
end
object btnDelete: TcxButton
Left = 569
Top = 33
Width = 75
Height = 35
Caption = 'btnDelete'
Action = acSave
TabOrder = 2
end
object btnCancel: TcxButton
Left = 651
Top = 33
object btnDelete: TcxButton
Left = 583
Top = 12
Width = 75
Height = 35
Caption = 'btnCancel'
Action = acDelete
TabOrder = 3
end
object grdEmployee: TcxGrid
Left = 26
Top = 152
Width = 700
Height = 200
object btnCancel: TcxButton
Left = 665
Top = 12
Width = 75
Height = 35
Action = acCancel
TabOrder = 4
end
object grdEmployee: TcxGrid
Left = 12
Top = 205
Width = 728
Height = 384
TabOrder = 11
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
OptionsView.HeaderHeight = 30
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 dbtvEmployeesalary: TcxGridDBColumn
Caption = #44553#50668
DataBinding.FieldName = 'salary'
PropertiesClassName = 'TcxCurrencyEditProperties'
HeaderAlignmentHorz = taCenter
end
object dbtvEmployeesex: TcxGridDBColumn
Caption = #49457#48324
DataBinding.FieldName = 'sex'
HeaderAlignmentHorz = taCenter
end
object dbtvEmployeeposition: TcxGridDBColumn
Caption = #51649#50948
DataBinding.FieldName = 'position'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taCenter
HeaderAlignmentHorz = taCenter
end
object dbtvEmployeeaddress: TcxGridDBColumn
Caption = #51452#49548
DataBinding.FieldName = 'address'
end
end
object grdEmployeeDBTableView1: 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 btnEdit: TcxButton
Left = 419
Top = 12
Width = 75
Height = 35
Action = acEdit
TabOrder = 1
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 = 25
Width = 318
end
object dbseAge: TcxDBSpinEdit
Left = 447
Top = 125
AutoSize = False
DataBinding.DataField = 'age'
DataBinding.DataSource = dmData.dsEmployee
Style.HotTrack = False
Style.TransparentBorder = False
TabOrder = 9
Height = 25
Width = 279
end
object dbseSalary: TcxDBSpinEdit
Left = 55
Top = 125
AutoSize = False
DataBinding.DataField = 'salary'
DataBinding.DataSource = dmData.dsEmployee
Properties.AssignedValues.EditFormat = True
Style.HotTrack = False
Style.TransparentBorder = False
TabOrder = 7
Height = 25
Width = 279
end
object cxDBCheckBox1: TcxDBCheckBox
Left = 341
Top = 125
AutoSize = False
Caption = #49457#48324
DataBinding.DataField = 'sex'
DataBinding.DataSource = dmData.dsEmployee
Properties.Alignment = taRightJustify
Style.HotTrack = False
Style.TransparentBorder = False
TabOrder = 8
Transparent = True
Height = 25
Width = 70
end
object dbtePosition: TcxDBTextEdit
Left = 409
Top = 93
AutoSize = False
DataBinding.DataField = 'position'
DataBinding.DataSource = dmData.dsEmployee
Style.HotTrack = False
Style.TransparentBorder = False
TabOrder = 6
Height = 25
Width = 317
end
object dbteAdress: TcxDBTextEdit
Left = 55
Top = 157
DataBinding.DataField = 'address'
DataBinding.DataSource = dmData.dsEmployee
Style.HotTrack = False
Style.TransparentBorder = False
TabOrder = 10
Width = 671
end
object lgRoot: TdxLayoutGroup
AlignHorz = ahParentManaged
AlignVert = avParentManaged
Hidden = True
ItemIndex = 2
ItemIndex = 1
ShowBorder = False
Index = -1
end
object lgToolbar: TdxLayoutGroup
Parent = lgRoot
CaptionOptions.Text = 'New Group'
ItemIndex = 3
ItemIndex = 1
LayoutDirection = ldHorizontal
ShowBorder = False
Index = 0
end
object lgInput: TdxLayoutGroup
Parent = lgRoot
CaptionOptions.Text = 'New Group'
CaptionOptions.Text = ' '#51077#47141' '
Index = 1
end
object lgGrid: TdxLayoutGroup
Parent = lgRoot
AlignVert = avClient
CaptionOptions.Text = 'New Group'
ShowBorder = False
Index = 2
end
object liAdd: TdxLayoutItem
@@ -117,7 +259,8 @@ object frmMain: TfrmMain
ControlOptions.OriginalHeight = 35
ControlOptions.OriginalWidth = 75
ControlOptions.ShowBorder = False
Index = 1
Enabled = False
Index = 2
end
object liDelete: TdxLayoutItem
Parent = lgToolbar
@@ -128,7 +271,7 @@ object frmMain: TfrmMain
ControlOptions.OriginalHeight = 35
ControlOptions.OriginalWidth = 75
ControlOptions.ShowBorder = False
Index = 2
Index = 3
end
object liCancel: TdxLayoutItem
Parent = lgToolbar
@@ -139,10 +282,11 @@ object frmMain: TfrmMain
ControlOptions.OriginalHeight = 35
ControlOptions.OriginalWidth = 75
ControlOptions.ShowBorder = False
Index = 3
Index = 4
end
object liGrid: TdxLayoutItem
Parent = lgGrid
AlignVert = avClient
CaptionOptions.Text = 'cxGrid2'
CaptionOptions.Visible = False
Control = grdEmployee
@@ -151,5 +295,144 @@ object frmMain: TfrmMain
ControlOptions.ShowBorder = False
Index = 0
end
object liEdit: TdxLayoutItem
Parent = lgToolbar
AlignHorz = ahRight
AlignVert = avClient
CaptionOptions.Text = 'cxButton1'
CaptionOptions.Visible = False
Control = btnEdit
ControlOptions.OriginalHeight = 35
ControlOptions.OriginalWidth = 75
ControlOptions.ShowBorder = False
Index = 1
end
object liName: TdxLayoutItem
Parent = dxLayoutGroup1
AlignHorz = ahClient
CaptionOptions.Text = #51060#47492
Control = dbteName
ControlOptions.OriginalHeight = 25
ControlOptions.OriginalWidth = 121
ControlOptions.ShowBorder = False
Index = 0
end
object liAge: TdxLayoutItem
Parent = dxLayoutGroup3
AlignHorz = ahClient
CaptionOptions.Text = #45208#51060
Control = dbseAge
ControlOptions.OriginalHeight = 25
ControlOptions.OriginalWidth = 121
ControlOptions.ShowBorder = False
Index = 2
end
object liSalary: TdxLayoutItem
Parent = dxLayoutGroup3
AlignHorz = ahClient
CaptionOptions.Text = #44553#50668
Control = dbseSalary
ControlOptions.OriginalHeight = 25
ControlOptions.OriginalWidth = 121
ControlOptions.ShowBorder = False
Index = 0
end
object liSex: TdxLayoutItem
Parent = dxLayoutGroup3
AlignHorz = ahClient
CaptionOptions.Text = 'sex'
CaptionOptions.Visible = False
Control = cxDBCheckBox1
ControlOptions.OriginalHeight = 25
ControlOptions.OriginalWidth = 34
ControlOptions.ShowBorder = False
Index = 1
end
object liPosition: TdxLayoutItem
Parent = dxLayoutGroup1
AlignHorz = ahClient
CaptionOptions.Text = #51649#50948
Control = dbtePosition
ControlOptions.OriginalHeight = 25
ControlOptions.OriginalWidth = 121
ControlOptions.ShowBorder = False
Index = 1
end
object liAddress: TdxLayoutItem
Parent = dxLayoutGroup2
CaptionOptions.Text = #51452#49548
Control = dbteAdress
ControlOptions.OriginalHeight = 27
ControlOptions.OriginalWidth = 121
ControlOptions.ShowBorder = False
Index = 0
end
object dxLayoutGroup1: TdxLayoutGroup
Parent = lgInput
CaptionOptions.Text = 'New Group'
ItemIndex = 1
LayoutDirection = ldHorizontal
ShowBorder = False
Index = 0
end
object dxLayoutGroup2: TdxLayoutGroup
Parent = lgInput
CaptionOptions.Text = 'New Group'
ShowBorder = False
Index = 2
end
object dxLayoutGroup3: TdxLayoutGroup
Parent = lgInput
CaptionOptions.Text = 'New Group'
ItemIndex = 2
LayoutDirection = ldHorizontal
ShowBorder = False
Index = 1
end
end
object alToolbar: TActionList
Images = dmData.liSmallIcons
Left = 200
Top = 24
object acAdd: TAction
Caption = #52628#44032
ImageIndex = 0
OnExecute = acAddExecute
end
object acEdit: TAction
Caption = #49688#51221
ImageIndex = 1
OnExecute = acEditExecute
end
object acSave: TAction
Caption = #51200#51109
Enabled = False
ImageIndex = 2
OnExecute = acSaveExecute
end
object acDelete: TAction
Caption = #49325#51228
ImageIndex = 3
OnExecute = acDeleteExecute
end
object acCancel: TAction
Caption = #52712#49548
ImageIndex = 4
OnExecute = acCancelExecute
end
end
object scMain: TdxSkinController
NativeStyle = False
SkinName = 'WXI'
SkinPaletteName = 'Clearness'
Left = 16
Top = 8
end
object dxLayoutLookAndFeelList: TdxLayoutLookAndFeelList
Left = 40
Top = 8
object dxLayoutSkinLookAndFeel1: TdxLayoutSkinLookAndFeel
PixelsPerInch = 96
end
end
end
+78 -4
View File
@@ -1,16 +1,22 @@
unit MainUnit;
unit MainUnit;
interface
uses
{ Delphi }
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, dxUIAClasses, cxControls,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinWXI,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
{ DevExpress }
cxGraphics, dxUIAClasses, cxControls, dxCore, dxLayoutLookAndFeels,
dxSkinsForm, 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;
cxGrid, Vcl.StdCtrls, cxButtons, dxLayoutControl, System.Actions, Vcl.ActnList,
dxLayoutcxEditAdapters, cxContainer, cxCheckBox, cxDBEdit, cxMaskEdit,
cxSpinEdit, cxTextEdit, cxCurrencyEdit;
type
TfrmMain = class(TForm)
@@ -31,6 +37,45 @@ type
grdEmployeeLevel1: TcxGridLevel;
grdEmployee: TcxGrid;
liGrid: TdxLayoutItem;
btnEdit: TcxButton;
liEdit: TdxLayoutItem;
alToolbar: TActionList;
acAdd: TAction;
acEdit: TAction;
acSave: TAction;
acDelete: TAction;
acCancel: TAction;
dbtvEmployeeRecId: TcxGridDBColumn;
dbtvEmployeename: TcxGridDBColumn;
dbtvEmployeeage: TcxGridDBColumn;
dbtvEmployeesalary: TcxGridDBColumn;
dbtvEmployeesex: TcxGridDBColumn;
dbtvEmployeeposition: TcxGridDBColumn;
dbtvEmployeeaddress: TcxGridDBColumn;
dbteName: TcxDBTextEdit;
liName: TdxLayoutItem;
dbseAge: TcxDBSpinEdit;
liAge: TdxLayoutItem;
dbseSalary: TcxDBSpinEdit;
liSalary: TdxLayoutItem;
cxDBCheckBox1: TcxDBCheckBox;
liSex: TdxLayoutItem;
dbtePosition: TcxDBTextEdit;
liPosition: TdxLayoutItem;
dbteAdress: TcxDBTextEdit;
liAddress: TdxLayoutItem;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutGroup2: TdxLayoutGroup;
dxLayoutGroup3: TdxLayoutGroup;
scMain: TdxSkinController;
dxLayoutLookAndFeelList: TdxLayoutLookAndFeelList;
dxLayoutSkinLookAndFeel1: TdxLayoutSkinLookAndFeel;
grdEmployeeDBTableView1: TcxGridDBTableView;
procedure acAddExecute(Sender: TObject);
procedure acEditExecute(Sender: TObject);
procedure acSaveExecute(Sender: TObject);
procedure acDeleteExecute(Sender: TObject);
procedure acCancelExecute(Sender: TObject);
private
{ Private declarations }
public
@@ -44,4 +89,33 @@ implementation
{$R *.dfm}
uses
EmployeeUnit;
procedure TfrmMain.acAddExecute(Sender: TObject);
begin
dmData.mdEmployee.Append;
dbteName.SetFocus;
end;
procedure TfrmMain.acCancelExecute(Sender: TObject);
begin
dmData.mdEmployee.Cancel;
end;
procedure TfrmMain.acDeleteExecute(Sender: TObject);
begin
dmData.mdEmployee.Delete;
end;
procedure TfrmMain.acEditExecute(Sender: TObject);
begin
dmData.mdEmployee.Edit;
end;
procedure TfrmMain.acSaveExecute(Sender: TObject);
begin
dmData.mdEmployee.Post;
end;
end.
-14
View File
@@ -1,14 +0,0 @@
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 441
ClientWidth = 624
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'Segoe UI'
Font.Style = []
TextHeight = 15
end
+1 -1
View File
@@ -1,4 +1,4 @@
program 데이타셋데모;
program 데이타셋데모;
uses
Vcl.Forms,
Binary file not shown.
Binary file not shown.