diff --git a/TTW_Bot_app.dpr b/TTW_Bot_app.dpr index ac77652..5abd894 100644 --- a/TTW_Bot_app.dpr +++ b/TTW_Bot_app.dpr @@ -8,16 +8,22 @@ uses fAI in 'fAI.pas' {frAI: TFrame}, fNotify in 'fNotify.pas' {frNotify: TFrame}, fAutoActions in 'fAutoActions.pas' {frAutoActions: TFrame}, - fChatOBS in 'fChatOBS.pas' {frChatOBS: TFrame}, + fOBS in 'fOBS.pas' {frOBS: TFrame}, fLog in 'fLog.pas' {frLog: TFrame}, uRecords in 'uRecords.pas', fCommands in 'fCommands.pas' {frCommands: TFrame}, - uDataBase in 'uDataBase.pas'; + uDataBase in 'uDataBase.pas', + fColorSettings in 'fColorSettings.pas' {frColorSettings: TFrame}, + uCreateChat in 'uCreateChat.pas' {fCreateChat}, + fFontSettings in 'fFontSettings.pas' {frFontSettings: TFrame}, + uCreateNotify in 'uCreateNotify.pas' {fCreateNotify}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); + Application.CreateForm(TfCreateChat, fCreateChat); + Application.CreateForm(TfCreateNotify, fCreateNotify); Application.Run; end. diff --git a/TTW_Bot_app.dproj b/TTW_Bot_app.dproj index f1ca5bf..b0a77b9 100644 --- a/TTW_Bot_app.dproj +++ b/TTW_Bot_app.dproj @@ -330,8 +330,8 @@ fmx TFrame - -
frChatOBS
+ +
frOBS
fmx TFrame
@@ -347,6 +347,25 @@ TFrame
+ +
frColorSettings
+ fmx + TFrame +
+ +
fCreateChat
+ fmx +
+ +
frFontSettings
+ fmx + TFrame +
+ +
fCreateNotify
+ fmx +
+ Base @@ -384,6 +403,12 @@ true + + + .\ + true + + TTW_Bot_app.exe @@ -1344,11 +1369,9 @@ True True - False True True True - False True True True diff --git a/fChatOBS.fmx b/fChatOBS.fmx deleted file mode 100644 index 3f52831..0000000 --- a/fChatOBS.fmx +++ /dev/null @@ -1,393 +0,0 @@ -object frChatOBS: TfrChatOBS - Size.Width = 922.000000000000000000 - Size.Height = 408.000000000000000000 - Size.PlatformDefault = False - object GroupBox13: TGroupBox - Position.X = 562.000000000000000000 - Position.Y = 8.000000000000000000 - Size.Width = 351.000000000000000000 - Size.Height = 203.000000000000000000 - Size.PlatformDefault = False - Text = #1064#1088#1080#1092#1090 - TabOrder = 2 - object Label41: TLabel - Position.X = 8.000000000000000000 - Position.Y = 22.000000000000000000 - Size.Width = 100.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - TextSettings.Trimming = None - Text = #1056#1072#1079#1084#1077#1088' '#1096#1088#1080#1092#1090#1072 - TabOrder = 9 - end - object sbFontSize: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 1 - Cursor = crIBeam - Value = 14.000000000000000000 - Position.X = 8.000000000000000000 - Position.Y = 47.000000000000000000 - end - object ccbFontColor: TColorComboBox - DropDownKind = Custom - Color = claNull - DisableFocusEffect = False - ItemIndex = 147 - Position.X = 8.000000000000000000 - Position.Y = 102.000000000000000000 - Size.Width = 120.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 41 - end - object Label49: TLabel - Position.X = 8.000000000000000000 - Position.Y = 77.000000000000000000 - TextSettings.Trimming = None - Text = #1062#1074#1077#1090' '#1096#1088#1080#1092#1090#1072 - TabOrder = 39 - end - object cbFontStyleDefault: TComboBox - Items.Strings = ( - 'Arial' - 'Arial Cyr' - 'Arial Black' - 'Book antiqua' - 'Bookman old style' - 'Calibri' - 'Cambria' - 'Candara' - 'Century' - 'Century gothic' - 'Comic Sans Ms' - 'Consolas' - 'Constantia' - 'Corbel' - 'Courier' - 'Courier New' - 'Courier, monospace' - 'Cursive' - 'Franklin Gothic' - 'Gabriola' - 'Garamond' - 'Georgia' - 'Helvetica' - 'Impact' - 'Lucida console' - 'Lucida Sans Unicode' - 'Mistral (Mistral)' - 'monospace' - 'Monotype Corsiva' - 'MS Sans Serif' - 'MS Serif' - 'Palatino Linotype' - 'Roboto' - 'Sans-serif' - 'Segoe print' - 'Segoe script' - 'Sylfaen' - 'Tahoma' - 'Times New Roman' - 'Trebuchet ms' - 'Verdana') - ItemIndex = 0 - Position.X = 136.000000000000000000 - Position.Y = 47.000000000000000000 - Size.Width = 206.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 0 - end - object Label46: TLabel - Position.X = 136.000000000000000000 - Position.Y = 22.000000000000000000 - TextSettings.Trimming = None - Text = #1064#1088#1080#1092#1090 - TabOrder = 42 - end - object ccbBColor: TColorComboBox - DropDownKind = Custom - Color = claLime - DisableFocusEffect = False - ItemIndex = 82 - Position.X = 8.000000000000000000 - Position.Y = 157.000000000000000000 - Size.Width = 120.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 40 - end - object Label1: TLabel - Position.X = 8.000000000000000000 - Position.Y = 132.000000000000000000 - TextSettings.Trimming = None - Text = #1062#1074#1077#1090' '#1092#1086#1085#1072 - TabOrder = 38 - end - object btnChangeBGColor: TButton - Position.X = 136.000000000000000000 - Position.Y = 157.000000000000000000 - Size.Width = 145.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 43 - Text = #1055#1088#1080#1084#1077#1085#1080#1090#1100' '#1094#1074#1077#1090' '#1092#1086#1085#1072 - TextSettings.Trimming = None - end - end - object GroupBox12: TGroupBox - Position.X = 241.000000000000000000 - Position.Y = 8.000000000000000000 - Size.Width = 313.000000000000000000 - Size.Height = 203.000000000000000000 - Size.PlatformDefault = False - Text = #1041#1083#1086#1082' '#1089#1086#1086#1073#1097#1077#1085#1080#1103 - TabOrder = 1 - object cpStyleBlockColor: TColorPanel - Color = claWhite - Position.X = 16.000000000000000000 - Position.Y = 45.000000000000000000 - Size.Width = 161.000000000000000000 - Size.Height = 150.000000000000000000 - Size.PlatformDefault = False - TabOrder = 7 - end - object Label40: TLabel - Position.X = 16.000000000000000000 - Position.Y = 20.000000000000000000 - Size.Width = 161.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - TextSettings.Trimming = None - Text = #1062#1074#1077#1090' '#1080' '#1087#1088#1086#1079#1088#1072#1095#1085#1086#1089#1090#1100' '#1073#1083#1086#1082#1072 - TabOrder = 8 - end - object Label42: TLabel - Position.X = 185.000000000000000000 - Position.Y = 22.000000000000000000 - TextSettings.Trimming = None - Text = #1062#1074#1077#1090' '#1088#1072#1084#1082#1080 - TabOrder = 38 - end - object ccbStyleBorderColor: TColorComboBox - DropDownKind = Custom - Color = claNull - DisableFocusEffect = False - ItemIndex = 147 - Position.X = 185.000000000000000000 - Position.Y = 47.000000000000000000 - Size.Width = 120.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 39 - end - object Label44: TLabel - Position.X = 185.000000000000000000 - Position.Y = 132.000000000000000000 - TextSettings.Trimming = None - Text = #1054#1090#1089#1090#1091#1087#1099 - TabOrder = 41 - end - object sbStyleBlockPadding: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 43 - Cursor = crIBeam - Value = 10.000000000000000000 - Position.X = 185.000000000000000000 - Position.Y = 157.000000000000000000 - Size.Width = 120.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - end - object sbStyleBlockBorderSize: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 42 - Cursor = crIBeam - Value = 2.000000000000000000 - Position.X = 185.000000000000000000 - Position.Y = 102.000000000000000000 - Size.Width = 120.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - end - object Label48: TLabel - Position.X = 185.000000000000000000 - Position.Y = 77.000000000000000000 - TextSettings.Trimming = None - Text = #1058#1086#1083#1097#1080#1085#1072' '#1088#1072#1084#1082#1080 - TabOrder = 40 - end - end - object GroupBox10: TGroupBox - Position.X = 1.000000000000000000 - Position.Y = 8.000000000000000000 - Size.Width = 232.000000000000000000 - Size.Height = 203.000000000000000000 - Size.PlatformDefault = False - Text = #1053#1072#1089#1090#1088#1086#1081#1082#1080 - TabOrder = 0 - object Label27: TLabel - Position.X = 8.000000000000000000 - Position.Y = 22.000000000000000000 - Size.Width = 249.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - TextSettings.Trimming = None - Text = #1052#1072#1082#1089#1080#1084#1072#1083#1100#1085#1086#1077' '#1082#1086#1083#1080#1095#1077#1089#1090#1074#1086' '#1089#1086#1086#1073#1097#1077#1085#1080#1081 - TabOrder = 3 - end - object Label38: TLabel - Position.X = 8.000000000000000000 - Position.Y = 77.000000000000000000 - Size.Width = 249.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - TextSettings.Trimming = None - Text = #1042#1088#1077#1084#1103' '#1086#1090#1086#1073#1088#1072#1078#1077#1085#1080#1103' '#1089#1086#1086#1073#1097#1077#1085#1080#1103 - TabOrder = 0 - end - object sbMaxMsg: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 5 - Cursor = crIBeam - Value = 5.000000000000000000 - Position.X = 8.000000000000000000 - Position.Y = 47.000000000000000000 - end - object sbTimeMsg: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 2 - Cursor = crIBeam - Value = 10.000000000000000000 - Position.X = 8.000000000000000000 - Position.Y = 102.000000000000000000 - end - object Label39: TLabel - Position.X = 8.000000000000000000 - Position.Y = 132.000000000000000000 - Size.Width = 193.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - TextSettings.Trimming = None - Text = #1055#1086#1088#1090' '#1042#1077#1073' '#1057#1077#1088#1074#1077#1088#1072 - TabOrder = 6 - end - object cbFreez: TCheckBox - Position.X = 112.000000000000000000 - Position.Y = 105.000000000000000000 - Size.Width = 112.000000000000000000 - Size.Height = 19.000000000000000000 - Size.PlatformDefault = False - TabOrder = 38 - Text = #1042#1077#1095#1085#1086 - end - object sbWebServerPort: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 4 - Cursor = crIBeam - Min = 8080.000000000000000000 - Max = 65000.000000000000000000 - Value = 8085.000000000000000000 - Position.X = 8.000000000000000000 - Position.Y = 157.000000000000000000 - end - end - object btnWebChatTest: TButton - Position.X = 8.000000000000000000 - Position.Y = 249.000000000000000000 - Size.Width = 152.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 3 - Text = #1058#1077#1089#1090#1086#1074#1086#1077' '#1089#1086#1086#1073#1097#1077#1085#1080#1077 - TextSettings.Trimming = None - end - object edtWebChatTest: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - TabOrder = 4 - Position.X = 8.000000000000000000 - Position.Y = 219.000000000000000000 - Size.Width = 225.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - end - object btnCreateWebChat: TButton - Position.X = 241.000000000000000000 - Position.Y = 219.000000000000000000 - TabOrder = 5 - Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090 - TextSettings.Trimming = None - end - object btnDeleteWebChat: TButton - Position.X = 329.000000000000000000 - Position.Y = 219.000000000000000000 - TabOrder = 6 - Text = #1059#1076#1072#1083#1080#1090#1100' '#1095#1072#1090 - TextSettings.Trimming = None - end - object sgWebChats: TStringGrid - Align = Bottom - CanFocus = True - ClipChildren = True - Position.Y = 288.000000000000000000 - Size.Width = 922.000000000000000000 - Size.Height = 120.000000000000000000 - Size.PlatformDefault = False - TabOrder = 7 - RowCount = 0 - Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement] - Viewport.Width = 918.000000000000000000 - Viewport.Height = 95.000000000000000000 - object StringColumn1: TStringColumn - Header = #1055#1086#1088#1090 - HeaderSettings.TextSettings.WordWrap = False - end - object IntegerColumn1: TIntegerColumn - Header = #1052#1072#1082#1089' '#1089#1086#1086#1073#1097 - HeaderSettings.TextSettings.WordWrap = False - Size.Width = 80.000000000000000000 - end - object IntegerColumn2: TIntegerColumn - Header = #1042#1088#1077#1084#1103' '#1089#1086#1086#1073#1097 - HeaderSettings.TextSettings.WordWrap = False - Size.Width = 82.000000000000000000 - end - object CheckColumn1: TCheckColumn - Header = #1042#1077#1095#1085#1086 - HeaderSettings.TextSettings.WordWrap = False - end - object StringColumn2: TStringColumn - Header = #1062#1074#1077#1090' '#1088#1072#1084#1082#1080 - HeaderSettings.TextSettings.WordWrap = False - end - object StringColumn3: TStringColumn - Header = #1062#1074#1077#1090' '#1073#1083#1086#1082#1072 - HeaderSettings.TextSettings.WordWrap = False - end - object IntegerColumn5: TIntegerColumn - Header = #1058#1086#1083#1097#1080#1085#1072 - HeaderSettings.TextSettings.WordWrap = False - Size.Width = 80.000000000000000000 - end - object IntegerColumn4: TIntegerColumn - Header = #1054#1090#1089#1090#1091#1087#1099 - HeaderSettings.TextSettings.WordWrap = False - end - object StringColumn4: TStringColumn - Header = #1064#1088#1080#1092#1090 - HeaderSettings.TextSettings.WordWrap = False - end - object StringColumn5: TStringColumn - Header = #1062#1074#1077#1090' '#1096#1088#1080#1092#1090#1072 - HeaderSettings.TextSettings.WordWrap = False - end - object StringColumn6: TStringColumn - Header = #1062#1074#1077#1090' '#1092#1086#1085#1072 - HeaderSettings.TextSettings.WordWrap = False - end - object IntegerColumn3: TIntegerColumn - Header = #1056#1072#1079#1084#1077#1088' '#1096#1088#1080#1092#1090#1072 - HeaderSettings.TextSettings.WordWrap = False - end - end -end diff --git a/fChatOBS.pas b/fChatOBS.pas deleted file mode 100644 index bb0d166..0000000 --- a/fChatOBS.pas +++ /dev/null @@ -1,67 +0,0 @@ -unit fChatOBS; - -interface - -uses - System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, - FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, - System.Rtti, FMX.Grid.Style, FMX.Grid, FMX.ScrollBox, FMX.Edit, FMX.Colors, - FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Controls.Presentation; - -type - TfrChatOBS = class(TFrame) - GroupBox13: TGroupBox; - Label41: TLabel; - sbFontSize: TSpinBox; - ccbFontColor: TColorComboBox; - Label49: TLabel; - cbFontStyleDefault: TComboBox; - Label46: TLabel; - ccbBColor: TColorComboBox; - Label1: TLabel; - btnChangeBGColor: TButton; - GroupBox12: TGroupBox; - cpStyleBlockColor: TColorPanel; - Label40: TLabel; - Label42: TLabel; - ccbStyleBorderColor: TColorComboBox; - Label44: TLabel; - sbStyleBlockPadding: TSpinBox; - sbStyleBlockBorderSize: TSpinBox; - Label48: TLabel; - GroupBox10: TGroupBox; - Label27: TLabel; - Label38: TLabel; - sbMaxMsg: TSpinBox; - sbTimeMsg: TSpinBox; - Label39: TLabel; - cbFreez: TCheckBox; - sbWebServerPort: TSpinBox; - btnWebChatTest: TButton; - edtWebChatTest: TEdit; - btnCreateWebChat: TButton; - btnDeleteWebChat: TButton; - sgWebChats: TStringGrid; - StringColumn1: TStringColumn; - IntegerColumn1: TIntegerColumn; - IntegerColumn2: TIntegerColumn; - CheckColumn1: TCheckColumn; - StringColumn2: TStringColumn; - StringColumn3: TStringColumn; - IntegerColumn5: TIntegerColumn; - IntegerColumn4: TIntegerColumn; - StringColumn4: TStringColumn; - StringColumn5: TStringColumn; - StringColumn6: TStringColumn; - IntegerColumn3: TIntegerColumn; - private - { Private declarations } - public - { Public declarations } - end; - -implementation - -{$R *.fmx} - -end. diff --git a/fColorSettings.fmx b/fColorSettings.fmx new file mode 100644 index 0000000..7dd200a --- /dev/null +++ b/fColorSettings.fmx @@ -0,0 +1,108 @@ +object frColorSettings: TfrColorSettings + Size.Width = 311.000000000000000000 + Size.Height = 253.000000000000000000 + Size.PlatformDefault = False + object ccbStyleBorderColor: TColorComboBox + DropDownKind = Custom + Color = claNull + DisableFocusEffect = False + ItemIndex = 147 + Position.X = 177.000000000000000000 + Position.Y = 35.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 39 + end + object cpStyleBlockColor: TColorPanel + Color = claWhite + Position.X = 8.000000000000000000 + Position.Y = 33.000000000000000000 + Size.Width = 161.000000000000000000 + Size.Height = 150.000000000000000000 + Size.PlatformDefault = False + TabOrder = 6 + end + object Label40: TLabel + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 161.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1062#1074#1077#1090' '#1080' '#1087#1088#1086#1079#1088#1072#1095#1085#1086#1089#1090#1100' '#1073#1083#1086#1082#1072 + TabOrder = 7 + end + object Label42: TLabel + Position.X = 177.000000000000000000 + Position.Y = 10.000000000000000000 + TextSettings.Trimming = None + Text = #1062#1074#1077#1090' '#1088#1072#1084#1082#1080 + TabOrder = 37 + end + object Label44: TLabel + Position.X = 177.000000000000000000 + Position.Y = 120.000000000000000000 + TextSettings.Trimming = None + Text = #1054#1090#1089#1090#1091#1087#1099 + TabOrder = 41 + end + object Label48: TLabel + Position.X = 177.000000000000000000 + Position.Y = 65.000000000000000000 + TextSettings.Trimming = None + Text = #1058#1086#1083#1097#1080#1085#1072' '#1088#1072#1084#1082#1080 + TabOrder = 42 + end + object sbStyleBlockBorderSize: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 44 + Cursor = crIBeam + Value = 2.000000000000000000 + Position.X = 177.000000000000000000 + Position.Y = 90.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object sbStyleBlockPadding: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 45 + Cursor = crIBeam + Value = 10.000000000000000000 + Position.X = 177.000000000000000000 + Position.Y = 145.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object Label1: TLabel + Position.X = 8.000000000000000000 + Position.Y = 191.000000000000000000 + TextSettings.Trimming = None + Text = #1062#1074#1077#1090' '#1092#1086#1085#1072 + TabOrder = 38 + end + object ccbBColor: TColorComboBox + DropDownKind = Custom + Color = claLime + DisableFocusEffect = False + ItemIndex = 82 + Position.X = 8.000000000000000000 + Position.Y = 216.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 40 + end + object btnChangeBGColor: TButton + Position.X = 136.000000000000000000 + Position.Y = 216.000000000000000000 + Size.Width = 145.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 43 + Text = #1055#1088#1080#1084#1077#1085#1080#1090#1100' '#1094#1074#1077#1090' '#1092#1086#1085#1072 + TextSettings.Trimming = None + end +end diff --git a/fColorSettings.pas b/fColorSettings.pas new file mode 100644 index 0000000..00ae6d8 --- /dev/null +++ b/fColorSettings.pas @@ -0,0 +1,34 @@ +unit fColorSettings; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, + FMX.Edit, FMX.Colors, FMX.ListBox, FMX.EditBox, FMX.SpinBox, + FMX.Controls.Presentation; + +type + TfrColorSettings = class(TFrame) + cpStyleBlockColor: TColorPanel; + Label40: TLabel; + Label42: TLabel; + ccbStyleBorderColor: TColorComboBox; + Label44: TLabel; + sbStyleBlockPadding: TSpinBox; + sbStyleBlockBorderSize: TSpinBox; + Label48: TLabel; + Label1: TLabel; + ccbBColor: TColorComboBox; + btnChangeBGColor: TButton; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.fmx} + +end. diff --git a/fFontSettings.fmx b/fFontSettings.fmx new file mode 100644 index 0000000..42592d6 --- /dev/null +++ b/fFontSettings.fmx @@ -0,0 +1,100 @@ +object frFontSettings: TfrFontSettings + Size.Width = 249.000000000000000000 + Size.Height = 125.000000000000000000 + Size.PlatformDefault = False + object Label41: TLabel + Position.X = 8.000000000000000000 + Position.Y = 63.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1056#1072#1079#1084#1077#1088' '#1096#1088#1080#1092#1090#1072 + TabOrder = 9 + end + object sbFontSize: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 1 + Cursor = crIBeam + Value = 14.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 88.000000000000000000 + end + object ccbFontColor: TColorComboBox + DropDownKind = Custom + Color = claNull + DisableFocusEffect = False + ItemIndex = 147 + Position.X = 116.000000000000000000 + Position.Y = 88.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 39 + end + object Label49: TLabel + Position.X = 116.000000000000000000 + Position.Y = 63.000000000000000000 + TextSettings.Trimming = None + Text = #1062#1074#1077#1090' '#1096#1088#1080#1092#1090#1072 + TabOrder = 38 + end + object cbFontStyleDefault: TComboBox + Items.Strings = ( + 'Arial' + 'Arial Cyr' + 'Arial Black' + 'Book antiqua' + 'Bookman old style' + 'Calibri' + 'Cambria' + 'Candara' + 'Century' + 'Century gothic' + 'Comic Sans Ms' + 'Consolas' + 'Constantia' + 'Corbel' + 'Courier' + 'Courier New' + 'Courier, monospace' + 'Cursive' + 'Franklin Gothic' + 'Gabriola' + 'Garamond' + 'Georgia' + 'Helvetica' + 'Impact' + 'Lucida console' + 'Lucida Sans Unicode' + 'Mistral (Mistral)' + 'monospace' + 'Monotype Corsiva' + 'MS Sans Serif' + 'MS Serif' + 'Palatino Linotype' + 'Roboto' + 'Sans-serif' + 'Segoe print' + 'Segoe script' + 'Sylfaen' + 'Tahoma' + 'Times New Roman' + 'Trebuchet ms' + 'Verdana') + ItemIndex = 0 + Position.X = 8.000000000000000000 + Position.Y = 33.000000000000000000 + Size.Width = 228.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + end + object Label46: TLabel + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + TextSettings.Trimming = None + Text = #1057#1090#1080#1083#1100 + TabOrder = 40 + end +end diff --git a/fFontSettings.pas b/fFontSettings.pas new file mode 100644 index 0000000..fa2f0ca --- /dev/null +++ b/fFontSettings.pas @@ -0,0 +1,29 @@ +unit fFontSettings; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, + FMX.ListBox, FMX.Colors, FMX.Edit, FMX.EditBox, FMX.SpinBox, + FMX.Controls.Presentation; + +type + TfrFontSettings = class(TFrame) + Label41: TLabel; + sbFontSize: TSpinBox; + ccbFontColor: TColorComboBox; + Label49: TLabel; + cbFontStyleDefault: TComboBox; + Label46: TLabel; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.fmx} + +end. diff --git a/fOBS.fmx b/fOBS.fmx new file mode 100644 index 0000000..5679148 --- /dev/null +++ b/fOBS.fmx @@ -0,0 +1,63 @@ +object frOBS: TfrOBS + Size.Width = 689.000000000000000000 + Size.Height = 252.000000000000000000 + Size.PlatformDefault = False + object sgWebChats: TStringGrid + Anchors = [akLeft, akTop, akRight, akBottom] + Align = Bottom + CanFocus = True + ClipChildren = True + Position.Y = 63.000000000000000000 + Size.Width = 689.000000000000000000 + Size.Height = 189.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + RowCount = 0 + Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement] + Viewport.Width = 689.000000000000000000 + Viewport.Height = 189.000000000000000000 + object IntegerColumn1: TIntegerColumn + Header = #1055#1086#1088#1090 + HeaderSettings.TextSettings.WordWrap = False + end + object StringColumn1: TStringColumn + Header = #1058#1080#1087 + HeaderSettings.TextSettings.WordWrap = False + end + object StringColumn2: TStringColumn + Header = #1057#1089#1099#1083#1082#1072' '#1076#1083#1103' OBS' + HeaderSettings.TextSettings.WordWrap = False + Size.Width = 200.000000000000000000 + end + end + object btnCreateOBSChat: TButton + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + TabOrder = 1 + Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090 + TextSettings.Trimming = None + end + object btnDeleteeChat: TButton + Position.X = 601.000000000000000000 + Position.Y = 8.000000000000000000 + TabOrder = 2 + Text = #1059#1076#1072#1083#1080#1090#1100 + TextSettings.Trimming = None + end + object Label1: TLabel + Position.X = 8.000000000000000000 + Position.Y = 38.000000000000000000 + Text = #1057#1086#1079#1076#1072#1085#1085#1099#1077' '#1095#1072#1090#1099':' + TabOrder = 3 + end + object btnCreateOBSNotify: TButton + Position.X = 103.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 146.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 4 + Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077 + TextSettings.Trimming = None + end +end diff --git a/fOBS.pas b/fOBS.pas new file mode 100644 index 0000000..7c33c37 --- /dev/null +++ b/fOBS.pas @@ -0,0 +1,31 @@ +unit fOBS; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, + System.Rtti, FMX.Grid.Style, FMX.Grid, FMX.ScrollBox, FMX.Edit, FMX.Colors, + FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Controls.Presentation; + +type + TfrOBS = class(TFrame) + sgWebChats: TStringGrid; + btnCreateOBSChat: TButton; + btnDeleteeChat: TButton; + Label1: TLabel; + IntegerColumn1: TIntegerColumn; + StringColumn1: TStringColumn; + StringColumn2: TStringColumn; + btnCreateOBSNotify: TButton; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.fmx} + +end. diff --git a/uCreateChat.fmx b/uCreateChat.fmx new file mode 100644 index 0000000..5879ef5 --- /dev/null +++ b/uCreateChat.fmx @@ -0,0 +1,184 @@ +object fCreateChat: TfCreateChat + Left = 0 + Top = 0 + Caption = 'Form2' + ClientHeight = 287 + ClientWidth = 810 + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + OnCreate = FormCreate + DesignerMasterStyle = 0 + object GroupBox1: TGroupBox + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 305.000000000000000000 + Size.Height = 271.000000000000000000 + Size.PlatformDefault = False + Text = #1041#1083#1086#1082' '#1089#1086#1086#1073#1097#1077#1085#1080#1103 + TabOrder = 1 + inline frChatSettings1: TfrColorSettings + Align = Client + Margins.Top = 20.000000000000000000 + Size.Width = 305.000000000000000000 + Size.Height = 251.000000000000000000 + Size.PlatformDefault = False + inherited ccbStyleBorderColor: TColorComboBox + TabOrder = 35 + end + inherited cpStyleBlockColor: TColorPanel + TabOrder = 7 + end + inherited Label40: TLabel + TabOrder = 8 + end + inherited Label42: TLabel + TabOrder = 36 + end + inherited Label44: TLabel + TabOrder = 39 + end + inherited Label48: TLabel + TabOrder = 41 + end + inherited sbStyleBlockPadding: TSpinBox + TabOrder = 46 + end + inherited ccbBColor: TColorComboBox + OnChange = nil + end + end + end + object GroupBox2: TGroupBox + Position.X = 321.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 240.000000000000000000 + Size.Height = 145.000000000000000000 + Size.PlatformDefault = False + Text = #1064#1088#1080#1092#1090 + TabOrder = 2 + inline frFontSettings1: TfrFontSettings + Align = Client + Margins.Top = 20.000000000000000000 + Size.Width = 240.000000000000000000 + Size.Height = 125.000000000000000000 + Size.PlatformDefault = False + inherited Label41: TLabel + TabOrder = 8 + end + inherited sbFontSize: TSpinBox + OnChange = nil + end + inherited ccbFontColor: TColorComboBox + TabOrder = 38 + OnChange = nil + end + inherited Label49: TLabel + TabOrder = 37 + end + inherited cbFontStyleDefault: TComboBox + OnChange = nil + end + end + end + object GroupBox10: TGroupBox + Position.X = 569.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 232.000000000000000000 + Size.Height = 203.000000000000000000 + Size.PlatformDefault = False + Text = #1053#1072#1089#1090#1088#1086#1081#1082#1080 + TabOrder = 0 + object Label27: TLabel + Position.X = 8.000000000000000000 + Position.Y = 22.000000000000000000 + Size.Width = 249.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1052#1072#1082#1089#1080#1084#1072#1083#1100#1085#1086#1077' '#1082#1086#1083#1080#1095#1077#1089#1090#1074#1086' '#1089#1086#1086#1073#1097#1077#1085#1080#1081 + TabOrder = 3 + end + object Label38: TLabel + Position.X = 8.000000000000000000 + Position.Y = 77.000000000000000000 + Size.Width = 249.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1042#1088#1077#1084#1103' '#1086#1090#1086#1073#1088#1072#1078#1077#1085#1080#1103' '#1089#1086#1086#1073#1097#1077#1085#1080#1103 + TabOrder = 0 + end + object sbMaxMsg: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 5 + Cursor = crIBeam + Value = 5.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 47.000000000000000000 + end + object sbTimeMsg: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 2 + Cursor = crIBeam + Value = 10.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 102.000000000000000000 + end + object Label39: TLabel + Position.X = 8.000000000000000000 + Position.Y = 132.000000000000000000 + Size.Width = 193.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1055#1086#1088#1090' '#1042#1077#1073' '#1057#1077#1088#1074#1077#1088#1072 + TabOrder = 6 + end + object cbFreez: TCheckBox + Position.X = 112.000000000000000000 + Position.Y = 105.000000000000000000 + Size.Width = 112.000000000000000000 + Size.Height = 19.000000000000000000 + Size.PlatformDefault = False + TabOrder = 38 + Text = #1042#1077#1095#1085#1086 + end + object sbWebServerPort: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 4 + Cursor = crIBeam + Min = 8080.000000000000000000 + Max = 65000.000000000000000000 + Value = 8085.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 157.000000000000000000 + end + end + object edtWebChatTest: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 5 + Position.X = 321.000000000000000000 + Position.Y = 161.000000000000000000 + Size.Width = 240.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object btnWebChatTest: TButton + Position.X = 321.000000000000000000 + Position.Y = 191.000000000000000000 + Size.Width = 152.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 3 + Text = #1058#1077#1089#1090#1086#1074#1086#1077' '#1089#1086#1086#1073#1097#1077#1085#1080#1077 + TextSettings.Trimming = None + end + object btnCreateWebChat: TButton + Position.X = 721.000000000000000000 + Position.Y = 257.000000000000000000 + TabOrder = 4 + Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090 + TextSettings.Trimming = None + end +end diff --git a/uCreateChat.pas b/uCreateChat.pas new file mode 100644 index 0000000..f0e72a7 --- /dev/null +++ b/uCreateChat.pas @@ -0,0 +1,107 @@ +unit uCreateChat; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, + System.Variants, FMX.ListBox, FMX.Colors, FMX.SpinBox, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, + fColorSettings, fFontSettings, FMX.Controls.Presentation, FMX.StdCtrls, + FMX.Edit, FMX.EditBox, StrUtils; + +type + TfCreateChat = class(TForm) + frChatSettings1: TfrColorSettings; + GroupBox1: TGroupBox; + GroupBox2: TGroupBox; + frFontSettings1: TfrFontSettings; + GroupBox10: TGroupBox; + Label27: TLabel; + Label38: TLabel; + sbMaxMsg: TSpinBox; + sbTimeMsg: TSpinBox; + Label39: TLabel; + cbFreez: TCheckBox; + sbWebServerPort: TSpinBox; + edtWebChatTest: TEdit; + btnWebChatTest: TButton; + btnCreateWebChat: TButton; + procedure FormCreate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fCreateChat: TfCreateChat; + +implementation + +uses uGeneral; + +{$R *.fmx} + +procedure TfCreateChat.FormCreate(Sender: TObject); + procedure LoadFontList; + var + SearchRec: TSearchRec; + n: Integer; + begin + if not DirectoryExists(myConst.fontsPath) then + CreateDir(myConst.fontsPath); + + n := 1; + if FindFirst(IncludeTrailingPathDelimiter(myConst.fontsPath) + '*.*', + faArchive, SearchRec) = 0 then + try + repeat + if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then + begin + fCreateChat.frFontSettings1.cbFontStyleDefault.Items.Add + (SearchRec.Name); + Inc(n); + end; + until FindNext(SearchRec) <> 0; + finally + System.SysUtils.FindClose(SearchRec); + end; + end; + + procedure LoadChatOBSSettings; + var + I: Integer; + c: TComponent; + ColorStr: string; + SavedColor: TAlphaColor; + begin + for I := 0 to frChatSettings1.ComponentCount - 1 do + begin + c := frChatSettings1.Components[I]; + if c is TComboBox then + TComboBox(c).ItemIndex := + strtoint(db.ReadSetting(TComboBox(c).Name, '0')) + else if c is TColorComboBox then + TColorComboBox(c).ItemIndex := + strtoint(db.ReadSetting(TComboBox(c).Name, '147')) + else if c is TSpinBox then + TSpinBox(c).text := db.ReadSetting(TSpinBox(c).Name, + IfThen(TSpinBox(c).Name = 'sbWebServerPort', '8080', '1')) + else if c is TCheckBox then + TCheckBox(c).IsChecked := db.ReadSetting(TCheckBox(c).Name, '0') = '1'; + end; + + ColorStr := db.ReadSetting('cpStyleBlockColor', 'FF000000'); + if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then + frChatSettings1.cpStyleBlockColor.Color := SavedColor + else + frChatSettings1.cpStyleBlockColor.Color := TAlphaColorRec.Black; + end; + +begin + LoadChatOBSSettings; + LoadFontList; + +end; + +end. diff --git a/uCreateNotify.fmx b/uCreateNotify.fmx new file mode 100644 index 0000000..8259811 --- /dev/null +++ b/uCreateNotify.fmx @@ -0,0 +1,292 @@ +object fCreateNotify: TfCreateNotify + Left = 0 + Top = 0 + Caption = 'Form2' + ClientHeight = 383 + ClientWidth = 813 + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + OnCreate = FormCreate + DesignerMasterStyle = 0 + object btnESImageOpen: TButton + Hint = #1050#1072#1088#1090#1080#1085#1082#1080'|*.jpg; *.jpeg; *.gif; *.webp' + Position.X = 297.000000000000000000 + Position.Y = 33.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 45 + Text = '...' + TextSettings.Trimming = None + end + object btnESSoundOpen: TButton + Hint = #1052#1091#1079#1099#1082#1072'|*.mp3' + Position.X = 297.000000000000000000 + Position.Y = 88.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 42 + Text = '...' + TextSettings.Trimming = None + end + object edtESImage: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 36 + ReadOnly = True + Text = '\imgs\follow.gif' + Position.X = 8.000000000000000000 + Position.Y = 33.000000000000000000 + Size.Width = 281.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object edtESSound: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 35 + ReadOnly = True + Text = '\sounds\report_bobdyfound.mp3' + Position.X = 8.000000000000000000 + Position.Y = 88.000000000000000000 + Size.Width = 281.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object Label58: TLabel + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + TextSettings.Trimming = None + Text = #1050#1072#1088#1090#1080#1085#1082#1072 + TabOrder = 49 + end + object Label68: TLabel + Position.X = 8.000000000000000000 + Position.Y = 63.000000000000000000 + TextSettings.Trimming = None + Text = #1047#1074#1091#1082 + TabOrder = 37 + end + inline frColorSettings1: TfrColorSettings + Position.X = 8.000000000000000000 + Position.Y = 118.000000000000000000 + Size.Width = 311.000000000000000000 + Size.Height = 258.000000000000000000 + Size.PlatformDefault = False + inherited ccbStyleBorderColor: TColorComboBox + TabOrder = 37 + end + inherited Label42: TLabel + TabOrder = 36 + end + inherited Label44: TLabel + TabOrder = 39 + end + inherited Label48: TLabel + TabOrder = 41 + end + inherited sbStyleBlockBorderSize: TSpinBox + TabOrder = 42 + end + inherited sbStyleBlockPadding: TSpinBox + TabOrder = 44 + end + inherited ccbBColor: TColorComboBox + OnChange = nil + end + end + object GroupBox10: TGroupBox + Position.X = 596.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 209.000000000000000000 + Size.Height = 247.000000000000000000 + Size.PlatformDefault = False + Text = #1053#1072#1089#1090#1088#1086#1081#1082#1080 + TabOrder = 0 + object Label38: TLabel + Position.X = 8.000000000000000000 + Position.Y = 25.000000000000000000 + Size.Width = 216.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1042#1088#1077#1084#1103' '#1086#1090#1086#1073#1088#1072#1078#1077#1085#1080#1103' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1103 + TabOrder = 0 + end + object sbTimeMsg: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 2 + Cursor = crIBeam + Value = 10.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 50.000000000000000000 + end + object Label39: TLabel + Position.X = 8.000000000000000000 + Position.Y = 80.000000000000000000 + Size.Width = 193.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Trimming = None + Text = #1055#1086#1088#1090' '#1042#1077#1073' '#1057#1077#1088#1074#1077#1088#1072 + TabOrder = 4 + end + object sbWebServerPort: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 3 + Cursor = crIBeam + Min = 8080.000000000000000000 + Max = 65000.000000000000000000 + Value = 8085.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 105.000000000000000000 + end + object Label2: TLabel + Position.X = 8.000000000000000000 + Position.Y = 135.000000000000000000 + Text = #1057#1086#1073#1099#1090#1080#1077 + TabOrder = 68 + end + object cbEventsType: TComboBox + Items.Strings = ( + #1054#1090#1089#1083#1077#1078#1080#1074#1072#1085#1080#1077 + #1055#1086#1076#1087#1080#1089#1082#1072 + #1055#1086#1076#1072#1088#1086#1095#1085#1072#1103' '#1087#1086#1076#1087#1080#1089#1082#1072 + #1056#1077#1081#1076 + #1044#1086#1085#1072#1090) + Position.X = 8.000000000000000000 + Position.Y = 160.000000000000000000 + Size.Width = 192.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 69 + end + object Label3: TLabel + Position.X = 8.000000000000000000 + Position.Y = 190.000000000000000000 + Text = #1059#1089#1083#1086#1074#1080#1077' '#1089#1091#1084#1084#1099 + TabOrder = 70 + end + object edtIF: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + TabOrder = 71 + Position.X = 8.000000000000000000 + Position.Y = 215.000000000000000000 + Size.Width = 192.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + end + object btnCreateEvent: TButton + Position.X = 596.000000000000000000 + Position.Y = 353.000000000000000000 + Size.Width = 209.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 64 + Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077 + TextSettings.Trimming = None + end + object btnESTest: TButton + Position.X = 596.000000000000000000 + Position.Y = 263.000000000000000000 + TabOrder = 59 + Text = #1058#1077#1089#1090 + TextSettings.Trimming = None + end + object GroupBox1: TGroupBox + Padding.Left = 10.000000000000000000 + Padding.Top = 20.000000000000000000 + Padding.Right = 10.000000000000000000 + Padding.Bottom = 10.000000000000000000 + Position.X = 327.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 261.000000000000000000 + Size.Height = 167.000000000000000000 + Size.PlatformDefault = False + Text = #1047#1072#1075#1086#1083#1086#1074#1086#1082 + TabOrder = 66 + object edtESTitle: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Top + TabOrder = 38 + Text = '[NICK] '#1085#1072#1095#1072#1083' '#1086#1090#1089#1083#1077#1078#1080#1074#1072#1090#1100' '#1074#1072#1089 + Position.X = 10.000000000000000000 + Position.Y = 20.000000000000000000 + Size.Width = 241.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + inline frFontSettings2: TfrFontSettings + Align = Client + Size.Width = 241.000000000000000000 + Size.Height = 115.000000000000000000 + Size.PlatformDefault = False + inherited Label41: TLabel + TabOrder = 8 + end + inherited sbFontSize: TSpinBox + OnChange = nil + end + inherited ccbFontColor: TColorComboBox + TabOrder = 38 + OnChange = nil + end + inherited Label49: TLabel + TabOrder = 37 + end + inherited cbFontStyleDefault: TComboBox + OnChange = nil + end + end + end + object GroupBox2: TGroupBox + Padding.Left = 10.000000000000000000 + Padding.Top = 20.000000000000000000 + Padding.Right = 10.000000000000000000 + Padding.Bottom = 10.000000000000000000 + Position.X = 327.000000000000000000 + Position.Y = 183.000000000000000000 + Size.Width = 261.000000000000000000 + Size.Height = 167.000000000000000000 + Size.PlatformDefault = False + Text = #1047#1072#1075#1086#1083#1086#1074#1086#1082 + TabOrder = 65 + inline frFontSettings3: TfrFontSettings + Align = Client + Size.Width = 241.000000000000000000 + Size.Height = 115.000000000000000000 + Size.PlatformDefault = False + inherited Label41: TLabel + TabOrder = 8 + end + inherited sbFontSize: TSpinBox + OnChange = nil + end + inherited ccbFontColor: TColorComboBox + TabOrder = 37 + OnChange = nil + end + inherited Label49: TLabel + TabOrder = 36 + end + inherited cbFontStyleDefault: TComboBox + OnChange = nil + end + inherited Label46: TLabel + TabOrder = 38 + end + end + object edtESMessage: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Top + TabOrder = 35 + Text = #1044#1086#1073#1088#1086' '#1087#1086#1078#1072#1083#1086#1074#1072#1090#1100 + Position.X = 10.000000000000000000 + Position.Y = 20.000000000000000000 + Size.Width = 241.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + end +end diff --git a/uCreateNotify.pas b/uCreateNotify.pas new file mode 100644 index 0000000..4eed545 --- /dev/null +++ b/uCreateNotify.pas @@ -0,0 +1,190 @@ +unit uCreateNotify; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, fFontSettings, + fColorSettings, FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation, + FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Colors; + +type + TfCreateNotify = class(TForm) + btnESImageOpen: TButton; + btnESSoundOpen: TButton; + edtESImage: TEdit; + edtESSound: TEdit; + edtESTitle: TEdit; + Label58: TLabel; + Label68: TLabel; + frColorSettings1: TfrColorSettings; + frFontSettings2: TfrFontSettings; + GroupBox10: TGroupBox; + Label38: TLabel; + sbTimeMsg: TSpinBox; + Label39: TLabel; + sbWebServerPort: TSpinBox; + Label2: TLabel; + cbEventsType: TComboBox; + Label3: TLabel; + edtIF: TEdit; + btnCreateEvent: TButton; + btnESTest: TButton; + GroupBox1: TGroupBox; + GroupBox2: TGroupBox; + frFontSettings3: TfrFontSettings; + edtESMessage: TEdit; + procedure FormCreate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fCreateNotify: TfCreateNotify; + +implementation + +uses uGeneral; + +{$R *.fmx} + +procedure TfCreateNotify.FormCreate(Sender: TObject); +var + i: Integer; + SavedColor: TAlphaColor; + c: TComponent; + ColorStr: string; +begin + for i := 0 to frColorSettings1.ComponentCount - 1 do + begin + c := frColorSettings1.Components[i]; + if c is TComboBox then + begin + TComboBox(c).ItemIndex := + strtoint(DB.ReadSetting(TComboBox(c).Name, '0')); + end; + if c is TColorComboBox then + begin + TColorComboBox(c).ItemIndex := + strtoint(DB.ReadSetting(TComboBox(c).Name, '147')); + end; + if c is TSpinBox then + begin + TSpinBox(c).text := DB.ReadSetting(TSpinBox(c).Name, '1'); + end; + if c is TColorPanel then + begin + ColorStr := DB.ReadSetting(TColorPanel(c).Name, 'FF000000'); + if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then + TColorPanel(c).Color := SavedColor + else + TColorPanel(c).Color := TAlphaColorRec.Black; + end; + if c is TEdit then + begin + if TEdit(c).Name <> 'edtPortServer' then + TEdit(c).text := DB.ReadSetting(TEdit(c).Name, '0'); + end; + if c is TCheckBox then + begin + TCheckBox(c).IsChecked := DB.ReadSetting(TCheckBox(c).Name) = '1'; + end; + end; + for i := 0 to frFontSettings2.ComponentCount - 1 do + begin + c := frFontSettings2.Components[i]; + if c is TComboBox then + begin + TComboBox(c).ItemIndex := + strtoint(DB.ReadSetting(TComboBox(c).Name, '0')); + end; + if c is TColorComboBox then + begin + TColorComboBox(c).ItemIndex := + strtoint(DB.ReadSetting(TComboBox(c).Name, '147')); + end; + if c is TSpinBox then + begin + TSpinBox(c).text := DB.ReadSetting(TSpinBox(c).Name, '1'); + end; + if c is TColorPanel then + begin + ColorStr := DB.ReadSetting(TColorPanel(c).Name, 'FF000000'); + if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then + TColorPanel(c).Color := SavedColor + else + TColorPanel(c).Color := TAlphaColorRec.Black; + end; + if c is TEdit then + begin + if TEdit(c).Name <> 'edtPortServer' then + TEdit(c).text := DB.ReadSetting(TEdit(c).Name, '0'); + end; + if c is TCheckBox then + begin + TCheckBox(c).IsChecked := DB.ReadSetting(TCheckBox(c).Name) = '1'; + end; + end; + + for i := 0 to frFontSettings3.ComponentCount - 1 do + begin + c := frFontSettings3.Components[i]; + if c is TComboBox then + begin + TComboBox(c).ItemIndex := + strtoint(DB.ReadSetting(TComboBox(c).Name, '0')); + end; + if c is TColorComboBox then + begin + TColorComboBox(c).ItemIndex := + strtoint(DB.ReadSetting(TComboBox(c).Name, '147')); + end; + if c is TSpinBox then + begin + TSpinBox(c).text := DB.ReadSetting(TSpinBox(c).Name, '1'); + end; + if c is TColorPanel then + begin + ColorStr := DB.ReadSetting(TColorPanel(c).Name, 'FF000000'); + if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then + TColorPanel(c).Color := SavedColor + else + TColorPanel(c).Color := TAlphaColorRec.Black; + end; + if c is TEdit then + begin + if TEdit(c).Name <> 'edtPortServer' then + TEdit(c).text := DB.ReadSetting(TEdit(c).Name, '0'); + end; + if c is TCheckBox then + begin + TCheckBox(c).IsChecked := DB.ReadSetting(TCheckBox(c).Name) = '1'; + end; + end; + var + n := 1; + var + cDir := myconst.fontsPath; // Искать в папке с программой + var + FileName := '*.*'; // Ищем все файлы + ChDir(cDir); // войти в каталог + var + SearchRec: TSearchRec; + if FindFirst(FileName, faArchive, SearchRec) = 0 then + repeat + if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then + begin + frFontSettings2.cbFontStyleDefault.Items.Add(SearchRec.Name); + frFontSettings3.cbFontStyleDefault.Items.Add(SearchRec.Name); + + Inc(n); + end; + until FindNext(SearchRec) <> 0; + ChDir('..'); + + +end; + +end. diff --git a/uGeneral.fmx b/uGeneral.fmx index 03efa7a..6c94cf4 100644 --- a/uGeneral.fmx +++ b/uGeneral.fmx @@ -1,13 +1,15 @@ object Form1: TForm1 - Left = 0 + Left = 480 Top = 0 Caption = 'Form1' ClientHeight = 886 ClientWidth = 1042 + Position = Designed FormFactor.Width = 320 FormFactor.Height = 480 FormFactor.Devices = [Desktop] OnCreate = FormCreate + Left = 480 DesignerMasterStyle = 0 object V: TTabControl Align = Client @@ -15,7 +17,7 @@ object Form1: TForm1 Size.Width = 1042.000000000000000000 Size.Height = 744.000000000000000000 Size.PlatformDefault = False - TabIndex = 4 + TabIndex = 2 TabOrder = 0 TabPosition = PlatformDefault Sizes = ( @@ -50,76 +52,78 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1053#1072#1089#1090#1088#1086#1081#1082#1080 + ExplicitSize.cx = 96.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 inline fSettings: TfrSettings Align = Client Size.Width = 1042.000000000000000000 Size.Height = 718.000000000000000000 Size.PlatformDefault = False inherited GroupBox3: TGroupBox - inherited edtBotName: TEdit - OnExit = nil - end - inherited edtBotToken: TEdit - OnExit = nil - end - inherited edtChannel: TEdit - OnExit = nil - end inherited btnGetToken: TButton Images = ImageList1 ImageIndex = 10 end - inherited edtBotClientID: TEdit - OnExit = nil - end - inherited btnGetClientID: TButton - OnClick = nil - end inherited btnOpenStream: TButton Images = ImageList1 ImageIndex = 17 - OnClick = nil + TabOrder = 33 end inherited btnGetTokenStreamer: TButton Images = ImageList1 ImageIndex = 10 + TabOrder = 34 end inherited edtBotTokenStreamer: TEdit - OnExit = nil + TabOrder = 35 + end + inherited Label53: TLabel + TabOrder = 37 end end inherited GroupBox22: TGroupBox inherited btnDAGetCode: TButton Images = ImageList1 ImageIndex = 10 - OnClick = nil + TabOrder = 43 + end + inherited Label63: TLabel + TabOrder = 35 end inherited edtDAClientID: TEdit - OnExit = nil + TabOrder = 38 + end + inherited Label64: TLabel + TabOrder = 36 end inherited edtDAClientSecret: TEdit - OnExit = nil + TabOrder = 37 + end + inherited Label65: TLabel + TabOrder = 39 end inherited edtDARedirectURL: TEdit - OnExit = nil + TabOrder = 40 end inherited edtDACode: TEdit - OnExit = nil + TabOrder = 41 + end + inherited Label66: TLabel + TabOrder = 42 end inherited btnDAStart: TButton Images = ImageList1 ImageIndex = 18 - OnClick = nil + TabOrder = 44 end inherited btnGetDADef: TButton - OnClick = nil + TabOrder = 45 end end inherited btnOpenRomaning: TButton Images = ImageList1 ImageIndex = 14 Size.Width = 201.000000000000000000 - OnClick = nil end inherited btnImportSettings: TButton Images = ImageList1 @@ -127,7 +131,6 @@ object Form1: TForm1 Position.X = 8.000000000000000000 Position.Y = 351.000000000000000000 Size.Width = 201.000000000000000000 - OnClick = nil end inherited btnExportSettings: TButton Images = ImageList1 @@ -135,7 +138,6 @@ object Form1: TForm1 Position.X = 8.000000000000000000 Position.Y = 381.000000000000000000 Size.Width = 201.000000000000000000 - OnClick = nil end inherited btnMaster: TButton Images = ImageList1 @@ -143,7 +145,6 @@ object Form1: TForm1 Position.X = 8.000000000000000000 Position.Y = 411.000000000000000000 Size.Width = 201.000000000000000000 - OnClick = nil end end end @@ -160,6 +161,8 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1053#1077#1081#1088#1086#1089#1077#1090#1080 + ExplicitSize.cx = 96.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 inline frAI1: TfrAI Align = Client Size.Width = 1042.000000000000000000 @@ -169,56 +172,11 @@ object Form1: TForm1 Images = ImageList1 ImageIndex = 10 Size.Width = 145.000000000000000000 - OnClick = nil - end - inherited edtAIP2: TEdit - OnExit = nil - end - inherited edtAIP1: TEdit - OnExit = nil - end - inherited edtGPTPrefix: TEdit - OnExit = nil - end - inherited GroupBox1: TGroupBox - inherited rbGC: TRadioButton - TabOrder = 41 - OnChange = nil - end - inherited RBCustom: TRadioButton - TabOrder = 40 - OnChange = nil - end - inherited rbDS: TRadioButton - TabOrder = 39 - OnChange = nil - end - inherited rbCG: TRadioButton - TabOrder = 38 - OnChange = nil - end - end - inherited edtAIP3: TEdit - OnExit = nil - end - inherited cbOllama: TCheckBox - OnChange = nil end inherited GroupBox2: TGroupBox Position.X = 462.000000000000000000 - inherited Label3: TLabel - TabOrder = 38 - end - inherited Label4: TLabel - TabOrder = 39 - end - inherited edtKandiKey: TEdit - TabOrder = 40 - OnExit = nil - end inherited edtKandiSecret: TEdit TabOrder = 41 - OnExit = nil end end end @@ -228,7 +186,7 @@ object Form1: TForm1 item end> TextSettings.Trimming = None - IsSelected = False + IsSelected = True ImageIndex = 13 Size.Width = 78.000000000000000000 Size.Height = 26.000000000000000000 @@ -236,16 +194,16 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1063#1072#1090' '#1073#1086#1090 + ExplicitSize.cx = 78.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 inline frCommands1: TfrCommands Align = Client Size.Width = 1042.000000000000000000 Size.Height = 718.000000000000000000 Size.PlatformDefault = False inherited sgCommands: TStringGrid - TabOrder = 5 - OnCellClick = nil - Viewport.Width = 606.000000000000000000 - Viewport.Height = 193.000000000000000000 + Viewport.Width = 602.000000000000000000 + Viewport.Height = 168.000000000000000000 inherited scCommand: TStringColumn Size.Width = 134.000000000000000000 end @@ -255,24 +213,21 @@ object Form1: TForm1 end inherited GroupBox1: TGroupBox inherited mResponse: TMemo - Viewport.Width = 376.000000000000000000 - Viewport.Height = 177.000000000000000000 + Viewport.Width = 372.000000000000000000 + Viewport.Height = 173.000000000000000000 end inherited GroupBox7: TGroupBox inherited btnAddUserName: TButton Images = ImageList1 ImageIndex = 11 - OnClick = nil end inherited btnGetDateFollow: TButton Images = ImageList1 ImageIndex = 15 - OnClick = nil end inherited btnGetAgeAccaunt: TButton Images = ImageList1 ImageIndex = 15 - OnClick = nil end inherited btnCounterAddtoText: TButton Images = ImageList1 @@ -281,50 +236,40 @@ object Form1: TForm1 inherited btnGPT: TButton Images = ImageList1 ImageIndex = 19 - OnClick = nil end inherited btnRandomUserName: TButton Images = ImageList1 ImageIndex = 11 - OnClick = nil end inherited btnGetChannelStat: TButton Images = ImageList1 ImageIndex = 20 Size.Width = 128.000000000000000000 - OnClick = nil end inherited btnAIPic: TButton Images = ImageList1 ImageIndex = 5 - OnClick = nil end end inherited btnAddCommand: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnEditCommand: TButton Images = ImageList1 - ImageIndex = 0 - OnClick = nil + ImageIndex = 3 end inherited btnRmCommand: TButton Images = ImageList1 ImageIndex = 4 - OnClick = nil end end inherited GroupBox9: TGroupBox inherited lbRandomGroup: TListBox - OnDblClick = nil - OnChange = nil Viewport.Width = 117.000000000000000000 Viewport.Height = 116.000000000000000000 end inherited lbRandomRespons: TListBox - OnClick = nil Viewport.Width = 270.000000000000000000 Viewport.Height = 116.000000000000000000 end @@ -332,42 +277,30 @@ object Form1: TForm1 Images = ImageList1 ImageIndex = 0 TabOrder = 36 - OnClick = nil end inherited btnRandomDel: TButton Images = ImageList1 ImageIndex = 12 - TabOrder = 37 - OnClick = nil end inherited btnRmGroup: TButton Images = ImageList1 ImageIndex = 4 - TabOrder = 38 - OnClick = nil - end - inherited Label4: TLabel - TabOrder = 39 end end inherited GroupBox8: TGroupBox inherited btnRandAdd: TButton Images = ImageList1 ImageIndex = 0 - TabOrder = 33 - OnClick = nil + TabOrder = 32 end inherited btnRandDel: TButton Images = ImageList1 ImageIndex = 12 - TabOrder = 34 - OnClick = nil end inherited sgRandomInt: TStringGrid - OnCellClick = nil - OnCellDblClick = nil - Viewport.Width = 157.000000000000000000 - Viewport.Height = 144.000000000000000000 + TabOrder = 35 + Viewport.Width = 153.000000000000000000 + Viewport.Height = 119.000000000000000000 inherited scRIntName: TStringColumn Size.Width = 70.000000000000000000 end @@ -383,29 +316,23 @@ object Form1: TForm1 inherited btnSoundAdd: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnSoundDel: TButton Images = ImageList1 ImageIndex = 12 - OnClick = nil end inherited btnSoundOpen: TButton Images = ImageList1 ImageIndex = 14 Text = '' - OnClick = nil end inherited btnSoundTest: TButton Images = ImageList1 ImageIndex = 25 - OnClick = nil end inherited sgSAFiles: TStringGrid - OnCellClick = nil - OnCellDblClick = nil - Viewport.Width = 345.000000000000000000 - Viewport.Height = 149.000000000000000000 + Viewport.Width = 341.000000000000000000 + Viewport.Height = 124.000000000000000000 inherited sgSAFile: TStringColumn Size.Width = 220.000000000000000000 end @@ -415,24 +342,19 @@ object Form1: TForm1 inherited btnTextAdd: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnTextDel: TButton Images = ImageList1 ImageIndex = 12 - OnClick = nil end inherited btnTextOpen: TButton Images = ImageList1 ImageIndex = 14 Text = '' - OnClick = nil end inherited sgTFiles: TStringGrid - OnCellClick = nil - OnCellDblClick = nil - Viewport.Width = 297.000000000000000000 - Viewport.Height = 149.000000000000000000 + Viewport.Width = 293.000000000000000000 + Viewport.Height = 124.000000000000000000 inherited scTFileFile: TStringColumn Size.Width = 170.000000000000000000 end @@ -443,11 +365,10 @@ object Form1: TForm1 Top = 368 end inherited GroupBox2: TGroupBox + TabOrder = 7 inherited sgAIGen: TStringGrid - OnCellClick = nil - OnCellDblClick = nil - Viewport.Width = 305.000000000000000000 - Viewport.Height = 149.000000000000000000 + Viewport.Width = 301.000000000000000000 + Viewport.Height = 124.000000000000000000 inherited StringColumn2: TStringColumn Size.Width = 180.000000000000000000 end @@ -455,17 +376,14 @@ object Form1: TForm1 inherited btnAIGenAdd: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnAIGenDel: TButton Images = ImageList1 ImageIndex = 12 - OnClick = nil end inherited btnAIGetTextUser: TButton Images = ImageList1 ImageIndex = 11 - OnClick = nil end end end @@ -483,13 +401,15 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1053#1072#1074#1099#1082#1080 + ExplicitSize.cx = 79.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 end object TabItem4: TTabItem CustomIcon = < item end> TextSettings.Trimming = None - IsSelected = True + IsSelected = False ImageIndex = 10 Size.Width = 136.000000000000000000 Size.Height = 26.000000000000000000 @@ -497,109 +417,58 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1048#1085#1090#1077#1075#1088#1072#1094#1080#1103' '#1089' OBS' - inline frChatOBS1: TfrChatOBS + ExplicitSize.cx = 136.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 + inline frOBS1: TfrOBS Align = Top Size.Width = 1042.000000000000000000 - Size.Height = 408.000000000000000000 + Size.Height = 345.000000000000000000 Size.PlatformDefault = False - inherited GroupBox13: TGroupBox - inherited Label41: TLabel - TabOrder = 8 - end - inherited sbFontSize: TSpinBox - OnChange = nil - end - inherited ccbFontColor: TColorComboBox - TabOrder = 38 - OnChange = nil - end - inherited Label49: TLabel - TabOrder = 35 - end - inherited cbFontStyleDefault: TComboBox - OnChange = nil - end - inherited Label46: TLabel - TabOrder = 40 - end - inherited ccbBColor: TColorComboBox - OnChange = nil - end - inherited Label1: TLabel - TabOrder = 36 - end - inherited btnChangeBGColor: TButton - TabOrder = 43 - end - end - inherited GroupBox12: TGroupBox - inherited cpStyleBlockColor: TColorPanel - OnChange = nil - end - inherited Label42: TLabel - TabOrder = 36 - end - inherited ccbStyleBorderColor: TColorComboBox - OnChange = nil - end - inherited Label44: TLabel - TabOrder = 39 - end - inherited sbStyleBlockPadding: TSpinBox - OnChange = nil - end - inherited sbStyleBlockBorderSize: TSpinBox - OnChange = nil - end - inherited Label48: TLabel - TabOrder = 40 - end - end - inherited GroupBox10: TGroupBox - inherited Label27: TLabel - TabOrder = 1 - end - inherited sbMaxMsg: TSpinBox - TabOrder = 3 - OnChange = nil - end - inherited sbTimeMsg: TSpinBox - OnChange = nil - end - inherited Label39: TLabel - TabOrder = 5 - end - inherited cbFreez: TCheckBox - TabOrder = 36 - OnChange = nil - end - inherited sbWebServerPort: TSpinBox - OnChange = nil - end - end - inherited btnWebChatTest: TButton - OnClick = nil - end - inherited btnCreateWebChat: TButton - OnClick = nil - end - inherited btnDeleteWebChat: TButton - OnClick = nil - end inherited sgWebChats: TStringGrid Size.Width = 1042.000000000000000000 + Size.Height = 282.000000000000000000 Viewport.Width = 1038.000000000000000000 - Viewport.Height = 95.000000000000000000 - inherited IntegerColumn1: TIntegerColumn - Size.Width = 80.000000000000000000 - end - inherited IntegerColumn2: TIntegerColumn - Size.Width = 82.000000000000000000 - end - inherited IntegerColumn5: TIntegerColumn - Size.Width = 80.000000000000000000 + Viewport.Height = 257.000000000000000000 + inherited StringColumn2: TStringColumn + Size.Width = 200.000000000000000000 end end + inherited btnCreateOBSChat: TButton + Images = ImageList1 + ImageIndex = 13 + Size.Width = 94.000000000000000000 + Size.PlatformDefault = False + TabOrder = 2 + OnClick = frChatOBS1btnCreateChatClick + end + inherited btnDeleteeChat: TButton + Images = ImageList1 + ImageIndex = 4 + Position.X = 954.000000000000000000 + TabOrder = 3 + end + inherited Label1: TLabel + TabOrder = 5 + end + object btnCreateChat: TButton [4] + Images = ImageList1 + ImageIndex = 5 + Position.X = 406.000000000000000000 + Position.Y = -80.000000000000000000 + Size.Width = 153.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 1 + Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077 + TextSettings.Trimming = None + OnClick = frChatOBS1btnCreateChatClick + end + inherited btnCreateOBSNotify: TButton + Images = ImageList1 + ImageIndex = 5 + Position.X = 110.000000000000000000 + OnClick = frOBS1btnCreateOBSNotifyClick + end end end object TabItem6: TTabItem @@ -615,106 +484,52 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1059#1074#1077#1076#1086#1084#1083#1077#1085#1080#1103 + ExplicitSize.cx = 110.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 inline frNotify1: TfrNotify Align = Client Size.Width = 1042.000000000000000000 Size.Height = 718.000000000000000000 Size.PlatformDefault = False - inherited chEnNotify: TSwitch - OnSwitch = nil - end - inherited tbNotifyVolume: TTrackBar - OnExit = nil - end - inherited edtNotifyFileName: TEdit - OnExit = nil - end inherited btnNotifyOpen: TButton Images = ImageList1 ImageIndex = 14 Text = '' - OnClick = nil end inherited btnNotifyCheck: TButton Images = ImageList1 ImageIndex = 25 Text = '' - OnClick = nil - end - inherited cbNotifyFileAgain1: TCheckBox - OnChange = nil - OnExit = nil end inherited btnNotifyCheckMod: TButton Images = ImageList1 ImageIndex = 25 Text = '' - OnClick = nil end inherited btnNotifyOpenMod: TButton Images = ImageList1 ImageIndex = 14 Text = '' - OnClick = nil - end - inherited edtNotifyFileNameMod: TEdit - OnExit = nil - end - inherited tbNotifyVolumeMod: TTrackBar - OnExit = nil - end - inherited chEnNotifyMod: TSwitch - OnSwitch = nil - end - inherited chEnNotifyVip: TSwitch - OnSwitch = nil - end - inherited tbNotifyVolumeVip: TTrackBar - OnExit = nil - end - inherited edtNotifyFileNameVip: TEdit - OnExit = nil end inherited btnNotifyOpenVip: TButton Images = ImageList1 ImageIndex = 14 Text = '' - OnClick = nil end inherited btnNotifyCheckVip: TButton Images = ImageList1 ImageIndex = 25 Text = '' - OnClick = nil - end - inherited cbNotifyFileAgain2: TCheckBox - OnChange = nil - OnExit = nil - end - inherited cbNotifyFileAgain3: TCheckBox - OnChange = nil - OnExit = nil end inherited btnNotifyCheckSub: TButton Images = ImageList1 ImageIndex = 25 Text = '' - OnClick = nil end inherited btnNotifyOpenSub: TButton Images = ImageList1 ImageIndex = 14 Text = '' - OnClick = nil - end - inherited edtNotifyFileNameSub: TEdit - OnExit = nil - end - inherited tbNotifyVolumeSub: TTrackBar - OnExit = nil - end - inherited chEnNotifySub: TSwitch - OnSwitch = nil end end end @@ -731,6 +546,8 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1047#1088#1080#1090#1077#1083#1080 + ExplicitSize.cx = 81.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 end object TabItem8: TTabItem CustomIcon = < @@ -745,6 +562,8 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1040#1074#1090#1086#1084#1072#1090#1080#1082#1072 + ExplicitSize.cx = 101.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 inline frAutoActions1: TfrAutoActions Align = Client Size.Width = 1042.000000000000000000 @@ -754,25 +573,20 @@ object Form1: TForm1 inherited btnAddMessage: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnRmMessage: TButton Images = ImageList1 ImageIndex = 4 - OnClick = nil end inherited btnEditMessage: TButton Images = ImageList1 ImageIndex = 3 - OnClick = nil end inherited btnNotifyTest: TButton Images = ImageList1 ImageIndex = 25 - OnClick = nil end inherited sgTimers: TStringGrid - OnEditingDone = nil Viewport.Width = 463.000000000000000000 Viewport.Height = 225.000000000000000000 inherited scTimerMessage: TStringColumn @@ -787,17 +601,14 @@ object Form1: TForm1 inherited btnBanWordsAdd: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnBanWordsEdt: TButton Images = ImageList1 ImageIndex = 3 - OnClick = nil end inherited btnBanWordsDel: TButton Images = ImageList1 ImageIndex = 4 - OnClick = nil end inherited sgBanWords: TStringGrid Viewport.Width = 297.000000000000000000 @@ -812,7 +623,6 @@ object Form1: TForm1 Position.X = 217.000000000000000000 Size.Width = 88.000000000000000000 Size.PlatformDefault = False - OnClick = nil end inherited edtBanWordsCheck: TEdit Size.Width = 201.000000000000000000 @@ -822,12 +632,10 @@ object Form1: TForm1 inherited btnCounterAdd: TButton Images = ImageList1 ImageIndex = 0 - OnClick = nil end inherited btnCounterDelete: TButton Images = ImageList1 ImageIndex = 4 - OnClick = nil end inherited btnCounterP: TButton Images = ImageList1 @@ -835,7 +643,6 @@ object Form1: TForm1 Position.X = 416.000000000000000000 Size.Width = 22.000000000000000000 Text = '' - OnClick = nil end inherited btnCounterM: TButton Images = ImageList1 @@ -843,15 +650,12 @@ object Form1: TForm1 Position.X = 449.000000000000000000 Size.Width = 22.000000000000000000 Text = '' - OnClick = nil end inherited btnCounterEdit: TButton Images = ImageList1 ImageIndex = 3 - OnClick = nil end inherited sgCounter: TStringGrid - OnEditingDone = nil Viewport.Width = 463.000000000000000000 Viewport.Height = 121.000000000000000000 inherited scCounterTrigger: TStringColumn @@ -877,6 +681,8 @@ object Form1: TForm1 StyleLookup = '' TabOrder = 0 Text = #1051#1086#1075 + ExplicitSize.cx = 56.000000000000000000 + ExplicitSize.cy = 26.000000000000000000 inline frLog1: TfrLog Align = Client Size.Width = 1042.000000000000000000 @@ -887,19 +693,6 @@ object Form1: TForm1 inherited btnClear: TButton Images = ImageList1 ImageIndex = 4 - OnClick = nil - end - inherited chkWARNING: TCheckBox - OnChange = nil - end - inherited chkERROR: TCheckBox - OnChange = nil - end - inherited chkDEBUG: TCheckBox - OnChange = nil - end - inherited chkINFO: TCheckBox - OnChange = nil end end inherited sgLog: TStringGrid @@ -1047,28 +840,7 @@ object Form1: TForm1 Position.X = 760.000000000000000000 Position.Y = 8.000000000000000000 Text = #1054#1090#1076#1077#1083#1100#1085#1086#1077' '#1089#1087#1072#1089#1080#1073#1086':' - TabOrder = 15 - end - object Label4: TLabel - Position.X = 778.000000000000000000 - Position.Y = 33.000000000000000000 - Text = 'Incadence ('#1079#1072' '#1090#1077#1089#1090#1099')' - TabOrder = 14 - OnDblClick = Label4DblClick - end - object Label13: TLabel - Position.X = 778.000000000000000000 - Position.Y = 58.000000000000000000 - Text = 'KuznecOGR ('#1079#1072' '#1090#1077#1089#1090#1099')' - TabOrder = 13 - OnDblClick = Label13DblClick - end - object Label14: TLabel - Position.X = 778.000000000000000000 - Position.Y = 83.000000000000000000 - Text = 'Karacis ('#1079#1072' '#1080#1082#1086#1085#1082#1080')' TabOrder = 12 - OnDblClick = Label14DblClick end object cbTheme: TComboBox ItemIndex = 0 @@ -1081,7 +853,7 @@ object Form1: TForm1 Size.Width = 228.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False - TabOrder = 36 + TabOrder = 33 OnChange = cbThemeChange end object Label15: TLabel @@ -1098,6 +870,42 @@ object Form1: TForm1 Text = #1058#1077#1084#1072 TabOrder = 0 end + object SpeedButton1: TSpeedButton + Images = ImageList1 + ImageIndex = 11 + Position.X = 760.000000000000000000 + Position.Y = 33.000000000000000000 + Size.Width = 141.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = 'Incadence ('#1079#1072' '#1090#1077#1089#1090#1099')' + TextSettings.Trimming = None + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Images = ImageList1 + ImageIndex = 11 + Position.X = 760.000000000000000000 + Position.Y = 63.000000000000000000 + Size.Width = 141.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = 'KuznecOGR ('#1079#1072' '#1090#1077#1089#1090#1099')' + TextSettings.Trimming = None + OnClick = SpeedButton2Click + end + object SpeedButton3: TSpeedButton + Images = ImageList1 + ImageIndex = 11 + Position.X = 760.000000000000000000 + Position.Y = 93.000000000000000000 + Size.Width = 141.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = 'Karacis ('#1079#1072' '#1080#1082#1086#1085#1082#1080')' + TextSettings.Trimming = None + OnClick = SpeedButton3Click + end end object ImageList1: TImageList Source = < diff --git a/uGeneral.pas b/uGeneral.pas index 76a88f0..e97ecf6 100644 --- a/uGeneral.pas +++ b/uGeneral.pas @@ -7,10 +7,10 @@ uses System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.TabControl, FMX.Controls.Presentation, FMX.StdCtrls, System.ImageList, FMX.ImgList, - FMX.Styles, - fSettings, fAI, fNotify, fAutoActions, fChatOBS, FMX.ListBox, fLog, uRecords, + FMX.Styles, ShellAPI, StrUtils, + fSettings, fAI, fNotify, fAutoActions, FMX.ListBox, fLog, uRecords, System.IOUtils, fCommands, uDataBase, FMX.Edit, FMX.Colors, FMX.SpinBox, - windows; + windows, System.Skia, FMX.Skia, uCreateChat, uCreateNotify, fOBS; type TForm1 = class(TForm) @@ -42,20 +42,23 @@ type TabItem9: TTabItem; frNotify1: TfrNotify; Label1: TLabel; - Label4: TLabel; - Label13: TLabel; - Label14: TLabel; frAutoActions1: TfrAutoActions; - frChatOBS1: TfrChatOBS; + frOBS1: TfrOBS; frLog1: TfrLog; cbTheme: TComboBox; Label15: TLabel; frCommands1: TfrCommands; - procedure Label14DblClick(Sender: TObject); - procedure Label13DblClick(Sender: TObject); - procedure Label4DblClick(Sender: TObject); + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + btnCreateChat: TButton; procedure cbThemeChange(Sender: TObject); procedure FormCreate(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton3Click(Sender: TObject); + procedure SpeedButton2Click(Sender: TObject); + procedure frChatOBS1btnCreateChatClick(Sender: TObject); + procedure frOBS1btnCreateOBSNotifyClick(Sender: TObject); private { Private declarations } procedure ReadDB(); @@ -138,20 +141,14 @@ begin end; -procedure TForm1.Label13DblClick(Sender: TObject); +procedure TForm1.frChatOBS1btnCreateChatClick(Sender: TObject); begin - // https://www.twitch.tv/kuznecogr +fCreateChat.Show; end; -procedure TForm1.Label14DblClick(Sender: TObject); +procedure TForm1.frOBS1btnCreateOBSNotifyClick(Sender: TObject); begin - // https://www.flaticon.com/ru/authors/karacis - -end; - -procedure TForm1.Label4DblClick(Sender: TObject); -begin - // https://www.twitch.tv/incadence +fCreateNotify.Show; end; procedure TForm1.ReadDB; @@ -210,34 +207,49 @@ var end; end; -begin - for I := 0 to fSettings.ComponentCount - 1 do +// Загрузка компонентов настроек (TEdit, TCheckBox) + procedure LoadSettingsComponents; + var + I: Integer; + c: TComponent; begin - c := fSettings.components[I]; - if c is TEdit then + for I := 0 to fSettings.ComponentCount - 1 do begin - TEdit(c).text := db.ReadSetting(TEdit(c).Name); - end; - if c is TCheckBox then - begin - TCheckBox(c).IsChecked := (db.ReadSetting(TCheckBox(c).Name) = 'True'); + c := fSettings.Components[I]; + if c is TEdit then + TEdit(c).text := db.ReadSetting(TEdit(c).Name) + else if c is TCheckBox then + TCheckBox(c).IsChecked := (db.ReadSetting(TCheckBox(c).Name) = 'True'); end; + db.FChannel := fSettings.edtChannel.text; end; - db.FChannel := fSettings.edtChannel.text; - db.LoadGridFromTable('sgRandomInt', frCommands1.sgRandomInt); - db.LoadGridFromTable('sgCommands', frCommands1.sgCommands); - db.LoadGridFromTable('sgSAFiles', frCommands1.sgSAFiles); - db.LoadGridFromTable('sgTFiles', frCommands1.sgTFiles); - db.LoadGridFromTable('sgAIGen', frCommands1.sgAIGen); - - db.getGroupName(frCommands1.lbRandomGroup.Items); - - if FileExists(myConst.cfg1) then +// Загрузка данных в гриды команд + procedure LoadGridsData; begin + db.LoadGridFromTable('sgRandomInt', frCommands1.sgRandomInt); + db.LoadGridFromTable('sgCommands', frCommands1.sgCommands); + db.LoadGridFromTable('sgSAFiles', frCommands1.sgSAFiles); + db.LoadGridFromTable('sgTFiles', frCommands1.sgTFiles); + db.LoadGridFromTable('sgAIGen', frCommands1.sgAIGen); + end; + +// Загрузка списка групп + procedure LoadGroupNames; + begin + db.getGroupName(frCommands1.lbRandomGroup.Items); + end; + +// Загрузка зашифрованного конфига + procedure LoadEncryptedConfig; + var + sl: TStringList; + I: Integer; + begin + if not FileExists(myConst.cfg1) then + Exit; sl := TStringList.Create; - try sl.Assign(XorDecryptToStrings(myConst.cfg1, 'fgvasrgEFAXFAFAS')); for I := 0 to sl.Count - 1 do @@ -251,205 +263,184 @@ begin var Value := Trim(Copy(sl[I], eqPos + 1, MaxInt)); - // Распределяем значения по переменным if Key = 'k1' then - begin - appconst.TTV_ClientID := Value; - end + appconst.TTV_ClientID := Value else if Key = 'k2' then - begin - appconst.AI_GigaChat_AC := Value; - end + appconst.AI_GigaChat_AC := Value else if Key = 'k3' then - begin - appconst.AI_GigaChat_ClientID := Value; - end + appconst.AI_GigaChat_ClientID := Value else if Key = 'k4' then - begin - appconst.AI_ChatGPT_Token := Value; - end + appconst.AI_ChatGPT_Token := Value else if Key = 'k5' then - begin - appconst.AI_DeepSeec_Token := Value; - end + appconst.AI_DeepSeec_Token := Value else if Key = 'k6' then - begin - appconst.DA_ClientID := Value; - end + appconst.DA_ClientID := Value else if Key = 'k7' then - begin - appconst.DA_Sicret := Value; - end + appconst.DA_Sicret := Value else if Key = 'k8' then - begin appconst.DA_URL := Value; - end end; end; - if appconst.TTV_ClientID <> '' then - begin - fSettings.btnGetClientID.Visible := True; - end; - if ((appconst.AI_GigaChat_AC <> '') and (appconst.AI_GigaChat_ClientID <> - '')) or (appconst.AI_ChatGPT_Token <> '') or - (appconst.AI_DeepSeec_Token <> '') then - begin - frAI1.btnGetAIDef.Visible := True; - end; - if ((appconst.DA_ClientID <> '') and (appconst.DA_Sicret <> '') and - (appconst.DA_URL <> '')) then - begin - fSettings.btnGetDADef.Visible := True; - end; + fSettings.btnGetClientID.Visible := (appconst.TTV_ClientID <> ''); + frAI1.btnGetAIDef.Visible := ((appconst.AI_GigaChat_AC <> '') and + (appconst.AI_GigaChat_ClientID <> '')) or + (appconst.AI_ChatGPT_Token <> '') or (appconst.AI_DeepSeec_Token <> ''); + fSettings.btnGetDADef.Visible := (appconst.DA_ClientID <> '') and + (appconst.DA_Sicret <> '') and (appconst.DA_URL <> ''); finally sl.Free; end; end; - for I := 0 to frChatOBS1.ComponentCount - 1 do + + + + +// Загрузка настроек уведомлений + procedure LoadNotifySettings; + var + I: Integer; + c: TComponent; begin - c := frChatOBS1.components[I]; - if c is TComboBox then + for I := 0 to frNotify1.ComponentCount - 1 do begin - TComboBox(c).ItemIndex := - strtoint(db.ReadSetting(TComboBox(c).Name, '0')); - end; - if c is TColorComboBox then - begin - TColorComboBox(c).ItemIndex := - strtoint(db.ReadSetting(TComboBox(c).Name, '147')); - end; - if c is TSpinBox then - begin - if TSpinBox(c).Name = 'sbWebServerPort' then - TSpinBox(c).text := db.ReadSetting(TSpinBox(c).Name, '8080'); - TSpinBox(c).text := db.ReadSetting(TSpinBox(c).Name, '1'); - end; - if c is TCheckBox then - begin - TCheckBox(c).IsChecked := db.ReadSetting(TCheckBox(c).Name, '0') = '1'; + c := frNotify1.Components[I]; + if c is TEdit then + TEdit(c).text := db.ReadSetting(TEdit(c).Name) + else if c is TCheckBox then + TCheckBox(c).IsChecked := (db.ReadSetting(TCheckBox(c).Name) = 'True') + else if c is TSwitch then + TSwitch(c).IsChecked := (db.ReadSetting(TSwitch(c).Name) = 'True') + else if c is TTrackBar then + TTrackBar(c).Value := + strtoint(db.ReadSetting(TTrackBar(c).Name, '100')); end; end; - ColorStr := db.ReadSetting('cpStyleBlockColor', 'FF000000'); - if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then - frChatOBS1.cpStyleBlockColor.Color := SavedColor - else - frChatOBS1.cpStyleBlockColor.Color := TAlphaColorRec.Black; - if not DirectoryExists(myConst.fontsPath) then - CreateDirectory(PChar(myConst.fontsPath), 0); - var - n := 1; - var - cDir := myConst.fontsPath; // Искать в папке с программой - var - FileName := '*.*'; // Ищем все файлы - ChDir(cDir); // войти в каталог - var - SearchRec: TSearchRec; - if FindFirst(FileName, faArchive, SearchRec) = 0 then - repeat - if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then - begin - frChatOBS1.cbFontStyleDefault.Items.Add(SearchRec.Name); - Inc(n); - end; - until FindNext(SearchRec) <> 0; - ChDir('..'); - for I := 0 to frNotify1.ComponentCount - 1 do - begin - c := frNotify1.components[I]; - if c is TEdit then - begin - TEdit(c).text := db.ReadSetting(TEdit(c).Name); - end; - if c is TCheckBox then - begin - TCheckBox(c).IsChecked := (db.ReadSetting(TCheckBox(c).Name) = 'True'); - end; - if c is TSwitch then - begin - TSwitch(c).IsChecked := (db.ReadSetting(TSwitch(c).Name) = 'True'); - end; - if c is TTrackBar then - begin - TTrackBar(c).Value := strtoint(db.ReadSetting(TTrackBar(c).Name, '100')); - end; - end; + + +// Загрузка настроек ИИ + procedure LoadAISettings; var + I: Integer; + c: TComponent; ii: Integer; - for I := 0 to frAI1.ComponentCount - 1 do + + // Настройки GigaChat + procedure SetupGigaChatSettings; begin - c := frAI1.components[I]; - if c is TEdit then - begin - TEdit(c).text := db.ReadSetting(TEdit(c).Name); - end; - if c is TCheckBox then - begin - TCheckBox(c).IsChecked := db.ReadSetting(TCheckBox(c).Name) = '1'; - end; - - end; - ii := strtoint(db.ReadSetting('aiIndex', '0')); - - case ii of - 0: - begin - frAI1.rbGC.IsChecked := True; - frAI1.Label45.text := 'ClientID'; - frAI1.Label47.text := 'Autorization Code'; - frAI1.Label1.Visible := false; - frAI1.edtAIP2.Visible := True; - frAI1.edtAIP2.Password := True; - frAI1.edtAIP3.Visible := false; - frAI1.cbOllama.IsChecked := false; - frAI1.cbOllama.Visible := false; - end; - 1: - begin - frAI1.rbDS.IsChecked := True; - frAI1.Label45.text := 'API Token'; - frAI1.Label47.text := ''; - frAI1.Label1.Visible := false; - frAI1.edtAIP2.Visible := false; - frAI1.edtAIP2.Password := false; - frAI1.edtAIP3.Visible := false; - frAI1.cbOllama.IsChecked := false; - frAI1.cbOllama.Visible := false; - end; - 2: - begin - frAI1.rbCG.IsChecked := True; - frAI1.Label45.text := 'API Token'; - frAI1.Label47.text := ''; - frAI1.Label1.Visible := false; - frAI1.edtAIP2.Visible := false; - frAI1.edtAIP2.Password := false; - frAI1.edtAIP3.Visible := false; - frAI1.cbOllama.IsChecked := false; - frAI1.cbOllama.Visible := false; - end; - 3: - begin - frAI1.RBCustom.IsChecked := True; - frAI1.Label45.text := 'API Token'; - frAI1.Label47.text := 'URL'; - frAI1.Label1.Visible := True; - frAI1.edtAIP2.Visible := True; - frAI1.edtAIP2.Password := false; - frAI1.edtAIP3.Visible := True; - frAI1.cbOllama.IsChecked := db.ReadSetting(frAI1.cbOllama.Name) = '1'; - frAI1.cbOllama.Visible := True; - end; + frAI1.rbGC.IsChecked := True; + frAI1.Label45.text := 'ClientID'; + frAI1.Label47.text := 'Autorization Code'; + frAI1.Label1.Visible := False; + frAI1.edtAIP2.Visible := True; + frAI1.edtAIP2.Password := True; + frAI1.edtAIP3.Visible := False; + frAI1.cbOllama.Visible := False; end; - db.LoadGridFromTable('sgTimers', frAutoActions1.sgTimers); - db.LoadGridFromTable('sgCounter', frAutoActions1.sgCounter); - db.LoadGridFromTable('sgBanWords', frAutoActions1.sgBanWords); +// Настройки DeepSeek + procedure SetupDeepSeekSettings; + begin + frAI1.rbDS.IsChecked := True; + frAI1.Label45.text := 'API Token'; + frAI1.Label47.text := ''; + frAI1.Label1.Visible := False; + frAI1.edtAIP2.Visible := False; + frAI1.edtAIP3.Visible := False; + frAI1.cbOllama.Visible := False; + end; +// Настройки ChatGPT + procedure SetupChatGPTSettings; + begin + frAI1.rbCG.IsChecked := True; + frAI1.Label45.text := 'API Token'; + frAI1.Label47.text := ''; + frAI1.Label1.Visible := False; + frAI1.edtAIP2.Visible := False; + frAI1.edtAIP3.Visible := False; + frAI1.cbOllama.Visible := False; + end; + +// Настройки кастомного ИИ + procedure SetupCustomAISettings; + begin + frAI1.RBCustom.IsChecked := True; + frAI1.Label45.text := 'API Token'; + frAI1.Label47.text := 'URL'; + frAI1.Label1.Visible := True; + frAI1.edtAIP2.Visible := True; + frAI1.edtAIP2.Password := False; + frAI1.edtAIP3.Visible := True; + frAI1.cbOllama.Visible := True; + frAI1.cbOllama.IsChecked := db.ReadSetting(frAI1.cbOllama.Name) = '1'; + end; + begin + for I := 0 to frAI1.ComponentCount - 1 do + begin + c := frAI1.Components[I]; + if c is TEdit then + TEdit(c).text := db.ReadSetting(TEdit(c).Name) + else if c is TCheckBox then + TCheckBox(c).IsChecked := db.ReadSetting(TCheckBox(c).Name) = '1'; + end; + + ii := strtoint(db.ReadSetting('aiIndex', '0')); + case ii of + 0: + SetupGigaChatSettings; + 1: + SetupDeepSeekSettings; + 2: + SetupChatGPTSettings; + 3: + SetupCustomAISettings; + end; + end; + + + +// Загрузка гридов автоматических действий + procedure LoadAutoActionsGrids; + begin + db.LoadGridFromTable('sgTimers', frAutoActions1.sgTimers); + db.LoadGridFromTable('sgCounter', frAutoActions1.sgCounter); + db.LoadGridFromTable('sgBanWords', frAutoActions1.sgBanWords); + end; + +begin + LoadSettingsComponents; + LoadGridsData; + LoadGroupNames; + LoadEncryptedConfig; + + + LoadNotifySettings; + LoadAISettings; + LoadAutoActionsGrids; +end; + +procedure TForm1.SpeedButton1Click(Sender: TObject); +begin + ShellExecute(0, 'open', pwidechar('https://www.twitch.tv/incadence'), + nil, nil, 1); +end; + +procedure TForm1.SpeedButton2Click(Sender: TObject); +begin + // https://www.twitch.tv/kuznecogr + ShellExecute(0, 'open', pwidechar('https://www.twitch.tv/kuznecogr'), + nil, nil, 1); +end; + +procedure TForm1.SpeedButton3Click(Sender: TObject); +begin + // https://www.flaticon.com/ru/authors/karacis + ShellExecute(0, 'open', + pwidechar('https://www.flaticon.com/ru/authors/karacis'), nil, nil, 1); end; end.