From d68064187dc56d82019206fc7fd68b81eb7e15d9 Mon Sep 17 00:00:00 2001 From: "PC1\\PTyTb" Date: Wed, 6 Aug 2025 09:21:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BE=D0=BA=D0=BD=D0=B0=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=BD=D1=82=D0=B5=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B9=20=D1=81=20=D0=9E=D0=91=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TTW_Bot_app.dpr | 10 +- TTW_Bot_app.dproj | 31 ++- fChatOBS.fmx | 393 ------------------------------------- fChatOBS.pas | 67 ------- fColorSettings.fmx | 108 ++++++++++ fColorSettings.pas | 34 ++++ fFontSettings.fmx | 100 ++++++++++ fFontSettings.pas | 29 +++ fOBS.fmx | 63 ++++++ fOBS.pas | 31 +++ uCreateChat.fmx | 184 +++++++++++++++++ uCreateChat.pas | 107 ++++++++++ uCreateNotify.fmx | 292 +++++++++++++++++++++++++++ uCreateNotify.pas | 190 ++++++++++++++++++ uGeneral.fmx | 480 ++++++++++++++------------------------------- uGeneral.pas | 411 +++++++++++++++++++------------------- 16 files changed, 1518 insertions(+), 1012 deletions(-) delete mode 100644 fChatOBS.fmx delete mode 100644 fChatOBS.pas create mode 100644 fColorSettings.fmx create mode 100644 fColorSettings.pas create mode 100644 fFontSettings.fmx create mode 100644 fFontSettings.pas create mode 100644 fOBS.fmx create mode 100644 fOBS.pas create mode 100644 uCreateChat.fmx create mode 100644 uCreateChat.pas create mode 100644 uCreateNotify.fmx create mode 100644 uCreateNotify.pas 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.