Добавил интеграции с ОБС

This commit is contained in:
PC1\PTyTb
2025-08-07 21:58:46 +03:00
parent a4cbf1c709
commit 193e4cb2fa
14 changed files with 534 additions and 229 deletions
+10 -36
View File
@@ -48,35 +48,6 @@ object frCommands: TfrCommands
Viewport.Width = 388.000000000000000000 Viewport.Width = 388.000000000000000000
Viewport.Height = 157.000000000000000000 Viewport.Height = 157.000000000000000000
end end
inherited GroupBox7: TGroupBox
inherited btnAddUserName: TButton
TabOrder = 38
end
inherited btnGetDateFollow: TButton
TabOrder = 39
end
inherited btnGetAgeAccaunt: TButton
TabOrder = 40
end
inherited btnCounterAddtoText: TButton
TabOrder = 41
end
inherited cbCounterName: TComboBox
TabOrder = 42
end
inherited btnGPT: TButton
TabOrder = 43
end
inherited btnRandomUserName: TButton
TabOrder = 44
end
inherited btnGetChannelStat: TButton
TabOrder = 45
end
inherited btnAIPic: TButton
TabOrder = 46
end
end
inherited btnAddCommand: TButton inherited btnAddCommand: TButton
OnClick = frContruct1btnAddCommandClick OnClick = frContruct1btnAddCommandClick
end end
@@ -115,13 +86,16 @@ object frCommands: TfrCommands
Viewport.Height = 116.000000000000000000 Viewport.Height = 116.000000000000000000
end end
inherited btnRandomAdd: TButton inherited btnRandomAdd: TButton
TabOrder = 37 TabOrder = 35
end end
inherited btnRandomDel: TButton inherited btnRandomDel: TButton
TabOrder = 38 TabOrder = 36
end end
inherited btnRmGroup: TButton inherited btnRmGroup: TButton
TabOrder = 39 TabOrder = 38
end
inherited Label4: TLabel
TabOrder = 40
end end
end end
end end
@@ -176,7 +150,7 @@ object frCommands: TfrCommands
object btnRandAdd: TButton object btnRandAdd: TButton
Position.X = 9.000000000000000000 Position.X = 9.000000000000000000
Position.Y = 205.000000000000000000 Position.Y = 205.000000000000000000
TabOrder = 32 TabOrder = 31
Text = #1044#1086#1073#1072#1074#1080#1090#1100 Text = #1044#1086#1073#1072#1074#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnRandAddClick OnClick = btnRandAddClick
@@ -243,7 +217,7 @@ object frCommands: TfrCommands
Size.PlatformDefault = False Size.PlatformDefault = False
inherited sg: TStringGrid inherited sg: TStringGrid
Size.Width = 293.000000000000000000 Size.Width = 293.000000000000000000
TabOrder = 44 TabOrder = 43
OnCellDblClick = frsgSoundssgCellDblClick OnCellDblClick = frsgSoundssgCellDblClick
Viewport.Width = 289.000000000000000000 Viewport.Width = 289.000000000000000000
Viewport.Height = 124.000000000000000000 Viewport.Height = 124.000000000000000000
@@ -279,7 +253,7 @@ object frCommands: TfrCommands
Size.PlatformDefault = False Size.PlatformDefault = False
inherited sg: TStringGrid inherited sg: TStringGrid
Size.Width = 293.000000000000000000 Size.Width = 293.000000000000000000
TabOrder = 44 TabOrder = 43
OnCellDblClick = frsgFilessgCellDblClick OnCellDblClick = frsgFilessgCellDblClick
Viewport.Width = 289.000000000000000000 Viewport.Width = 289.000000000000000000
Viewport.Height = 124.000000000000000000 Viewport.Height = 124.000000000000000000
@@ -319,7 +293,7 @@ object frCommands: TfrCommands
Size.PlatformDefault = False Size.PlatformDefault = False
inherited sg: TStringGrid inherited sg: TStringGrid
Size.Width = 293.000000000000000000 Size.Width = 293.000000000000000000
TabOrder = 44 TabOrder = 43
OnCellDblClick = frsgNeirosgCellDblClick OnCellDblClick = frsgNeirosgCellDblClick
Viewport.Width = 289.000000000000000000 Viewport.Width = 289.000000000000000000
Viewport.Height = 124.000000000000000000 Viewport.Height = 124.000000000000000000
+3 -3
View File
@@ -10,7 +10,7 @@ object frFontSettings: TfrFontSettings
Size.PlatformDefault = False Size.PlatformDefault = False
TextSettings.Trimming = None TextSettings.Trimming = None
Text = #1056#1072#1079#1084#1077#1088' '#1096#1088#1080#1092#1090#1072 Text = #1056#1072#1079#1084#1077#1088' '#1096#1088#1080#1092#1090#1072
TabOrder = 9 TabOrder = 8
end end
object sbFontSize: TSpinBox object sbFontSize: TSpinBox
Touch.InteractiveGestures = [LongTap, DoubleTap] Touch.InteractiveGestures = [LongTap, DoubleTap]
@@ -30,14 +30,14 @@ object frFontSettings: TfrFontSettings
Size.Width = 120.000000000000000000 Size.Width = 120.000000000000000000
Size.Height = 22.000000000000000000 Size.Height = 22.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 39 TabOrder = 38
end end
object Label49: TLabel object Label49: TLabel
Position.X = 116.000000000000000000 Position.X = 116.000000000000000000
Position.Y = 63.000000000000000000 Position.Y = 63.000000000000000000
TextSettings.Trimming = None TextSettings.Trimming = None
Text = #1062#1074#1077#1090' '#1096#1088#1080#1092#1090#1072 Text = #1062#1074#1077#1090' '#1096#1088#1080#1092#1090#1072
TabOrder = 38 TabOrder = 37
end end
object cbFontStyleDefault: TComboBox object cbFontStyleDefault: TComboBox
Items.Strings = ( Items.Strings = (
+6 -3
View File
@@ -3,7 +3,6 @@ object frOBS: TfrOBS
Size.Height = 252.000000000000000000 Size.Height = 252.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
object sgWebChats: TStringGrid object sgWebChats: TStringGrid
Anchors = [akLeft, akTop, akRight, akBottom]
Align = Bottom Align = Bottom
CanFocus = True CanFocus = True
ClipChildren = True ClipChildren = True
@@ -14,8 +13,8 @@ object frOBS: TfrOBS
TabOrder = 0 TabOrder = 0
RowCount = 0 RowCount = 0
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement] Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
Viewport.Width = 689.000000000000000000 Viewport.Width = 685.000000000000000000
Viewport.Height = 189.000000000000000000 Viewport.Height = 164.000000000000000000
object IntegerColumn1: TIntegerColumn object IntegerColumn1: TIntegerColumn
Header = #1055#1086#1088#1090 Header = #1055#1086#1088#1090
HeaderSettings.TextSettings.WordWrap = False HeaderSettings.TextSettings.WordWrap = False
@@ -36,6 +35,7 @@ object frOBS: TfrOBS
TabOrder = 1 TabOrder = 1
Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090 Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCreateOBSChatClick
end end
object btnDeleteeChat: TButton object btnDeleteeChat: TButton
Position.X = 601.000000000000000000 Position.X = 601.000000000000000000
@@ -43,6 +43,7 @@ object frOBS: TfrOBS
TabOrder = 2 TabOrder = 2
Text = #1059#1076#1072#1083#1080#1090#1100 Text = #1059#1076#1072#1083#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnDeleteeChatClick
end end
object Label1: TLabel object Label1: TLabel
Position.X = 8.000000000000000000 Position.X = 8.000000000000000000
@@ -59,6 +60,7 @@ object frOBS: TfrOBS
TabOrder = 4 TabOrder = 4
Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077 Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCreateOBSNotifyClick
end end
object btnCreateOBSKandinsky: TButton object btnCreateOBSKandinsky: TButton
Position.X = 257.000000000000000000 Position.X = 257.000000000000000000
@@ -69,5 +71,6 @@ object frOBS: TfrOBS
TabOrder = 5 TabOrder = 5
Text = #1057#1086#1079#1076#1072#1090#1100' '#1050#1072#1085#1076#1080#1085#1089#1082#1080#1081 Text = #1057#1086#1079#1076#1072#1090#1100' '#1050#1072#1085#1076#1080#1085#1089#1082#1080#1081
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCreateOBSKandinskyClick
end end
end end
+222 -2
View File
@@ -3,10 +3,11 @@ unit fOBS;
interface interface
uses uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, 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, System.Rtti, FMX.Grid.Style, FMX.Grid, FMX.ScrollBox, FMX.Edit, FMX.Colors,
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Controls.Presentation; FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Controls.Presentation, uRecords;
type type
TfrOBS = class(TFrame) TfrOBS = class(TFrame)
@@ -19,14 +20,233 @@ type
StringColumn2: TStringColumn; StringColumn2: TStringColumn;
btnCreateOBSNotify: TButton; btnCreateOBSNotify: TButton;
btnCreateOBSKandinsky: TButton; btnCreateOBSKandinsky: TButton;
procedure btnDeleteeChatClick(Sender: TObject);
procedure btnCreateOBSKandinskyClick(Sender: TObject);
procedure btnCreateOBSChatClick(Sender: TObject);
procedure btnCreateOBSNotifyClick(Sender: TObject);
private private
{ Private declarations } { Private declarations }
public public
{ Public declarations } { Public declarations }
listChats: TArray<TOBSChat>;
listNotify: TArray<TOBSNotify>;
listKandinsky: TArray<TOBSKandinsky>;
procedure UpdateGridFromArray;
procedure AddChat(newRecord: TOBSChat);
procedure DelChat(aPort: integer);
procedure AddNotify(newRecord: TOBSNotify);
procedure DelNotify(aPort: integer);
procedure AddKandinsky(newRecord: TOBSKandinsky);
procedure DelKandinsky(aPort: integer);
end; end;
implementation implementation
{$R *.fmx} {$R *.fmx}
uses uGeneral, uCreateChat, uCreateNotify;
{ TfrOBS }
procedure TfrOBS.AddChat(newRecord: TOBSChat);
begin
SetLength(listChats, Length(listChats) + 1);
listChats[High(listChats)] := newRecord;
UpdateGridFromArray;
db.SaveRecordArray<TOBSChat>('listChats', listChats);
end;
procedure TfrOBS.AddKandinsky(newRecord: TOBSKandinsky);
begin
SetLength(listKandinsky, Length(listKandinsky) + 1);
listKandinsky[High(listKandinsky)] := newRecord;
UpdateGridFromArray;
db.SaveRecordArray<TOBSKandinsky>('listKandinsky', listKandinsky);
end;
procedure TfrOBS.AddNotify(newRecord: TOBSNotify);
begin
SetLength(listNotify, Length(listNotify) + 1);
listNotify[High(listNotify)] := newRecord;
UpdateGridFromArray;
db.SaveRecordArray<TOBSNotify>('listNotify', listNotify);
end;
procedure TfrOBS.btnCreateOBSChatClick(Sender: TObject);
var
dport, i: integer;
begin
dport := 8080;
for I := 0 to sgWebChats.RowCount - 1 do
begin
if strtoint(sgWebChats.Cells[0, I]) >= dport then
dport := strtoint(sgWebChats.Cells[0, I]) + 1;
end;
fCreateChat.sbWebServerPort.Value:=dport;
fCreateChat.Show;
end;
procedure TfrOBS.btnCreateOBSKandinskyClick(Sender: TObject);
var
dport: integer;
I: integer;
rk: TOBSKandinsky;
begin
dport := 8080;
for I := 0 to sgWebChats.RowCount - 1 do
begin
if strtoint(sgWebChats.Cells[0, I]) >= dport then
dport := strtoint(sgWebChats.Cells[0, I]) + 1;
end;
rk.port := dport;
AddKandinsky(rk);
end;
procedure TfrOBS.btnCreateOBSNotifyClick(Sender: TObject);
var
dport, i: integer;
begin
dport := 8080;
for I := 0 to sgWebChats.RowCount - 1 do
begin
if strtoint(sgWebChats.Cells[0, I]) >= dport then
dport := strtoint(sgWebChats.Cells[0, I]) + 1;
end;
fCreateNotify.sbWebServerPort.Value:=dport;
fCreateNotify.Show;
end;
procedure TfrOBS.btnDeleteeChatClick(Sender: TObject);
begin
if sgWebChats.Cells[1, sgWebChats.Row] = '×àò' then
begin
DelChat(strtoint(sgWebChats.Cells[0, sgWebChats.Row]));
end;
if sgWebChats.Cells[1, sgWebChats.Row] = 'Kandinsky' then
begin
DelKandinsky(strtoint(sgWebChats.Cells[0, sgWebChats.Row]));
end;
if sgWebChats.Cells[1, sgWebChats.Row] = 'Îïîâåùåíèå' then
begin
DelNotify(strtoint(sgWebChats.Cells[0, sgWebChats.Row]));
end;
end;
procedure TfrOBS.DelChat(aPort: integer);
var
I, j: integer;
begin
// Èùåì â îáðàòíîì ïîðÿäêå äëÿ áåçîïàñíîãî óäàëåíèÿ
for I := High(listChats) downto 0 do
begin
if listChats[I].port = aPort then
begin
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for j := I to High(listChats) - 1 do
listChats[j] := listChats[j + 1];
// Óìåíüøàåì ðàçìåð ìàññèâà
SetLength(listChats, Length(listChats) - 1);
// Âûõîäèì ïîñëå ïåðâîãî íàéäåííîãî ñîâïàäåíèÿ (ïðåäïîëàãàåì óíèêàëüíîñòü ïîðòîâ)
Break;
end;
end;
db.SaveRecordArray<TOBSChat>('listChats', listChats);
UpdateGridFromArray;
end;
procedure TfrOBS.DelKandinsky(aPort: integer);
var
I, j: integer;
begin
// Èùåì â îáðàòíîì ïîðÿäêå äëÿ áåçîïàñíîãî óäàëåíèÿ
for I := High(listKandinsky) downto 0 do
begin
if listKandinsky[I].port = aPort then
begin
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for j := I to High(listKandinsky) - 1 do
listKandinsky[j] := listKandinsky[j + 1];
// Óìåíüøàåì ðàçìåð ìàññèâà
SetLength(listKandinsky, Length(listKandinsky) - 1);
// Âûõîäèì ïîñëå ïåðâîãî íàéäåííîãî ñîâïàäåíèÿ (ïðåäïîëàãàåì óíèêàëüíîñòü ïîðòîâ)
Break;
end;
end;
UpdateGridFromArray;
db.SaveRecordArray<TOBSKandinsky>('listKandinsky', listKandinsky);
end;
procedure TfrOBS.DelNotify(aPort: integer);
var
I, j: integer;
begin
// Èùåì â îáðàòíîì ïîðÿäêå äëÿ áåçîïàñíîãî óäàëåíèÿ
for I := High(listNotify) downto 0 do
begin
if listNotify[I].port = aPort then
begin
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for j := I to High(listNotify) - 1 do
listNotify[j] := listNotify[j + 1];
// Óìåíüøàåì ðàçìåð ìàññèâà
SetLength(listNotify, Length(listNotify) - 1);
// Âûõîäèì ïîñëå ïåðâîãî íàéäåííîãî ñîâïàäåíèÿ (ïðåäïîëàãàåì óíèêàëüíîñòü ïîðòîâ)
Break;
end;
end;
UpdateGridFromArray;
db.SaveRecordArray<TOBSNotify>('listNotify', listNotify);
end;
procedure TfrOBS.UpdateGridFromArray;
var
I, rowIndex: integer;
begin
sgWebChats.BeginUpdate;
try
sgWebChats.RowCount := 0; // Ñáðàñûâàåì ñòðîêè
rowIndex := 0; // Îòäåëüíûé ñ÷åò÷èê äëÿ ñòðîê ñåòêè
// listChats
for I := 0 to High(listChats) do
begin
sgWebChats.RowCount := rowIndex + 1;
sgWebChats.Cells[0, rowIndex] := inttostr(listChats[I].port);
sgWebChats.Cells[1, rowIndex] := '×àò';
sgWebChats.Cells[2, rowIndex] := 'http://127.0.0.1:' + inttostr(listChats[I].port);
Inc(rowIndex); // Óâåëè÷èâàåì ñ÷åò÷èê ñòðîê
end;
// listNotify
for I := 0 to High(listNotify) do
begin
sgWebChats.RowCount := rowIndex + 1;
sgWebChats.Cells[0, rowIndex] := inttostr(listNotify[I].port);
sgWebChats.Cells[1, rowIndex] := 'Îïîâåùåíèå';
sgWebChats.Cells[2, rowIndex] := 'http://127.0.0.1:' + inttostr(listNotify[I].port);
Inc(rowIndex); // Óâåëè÷èâàåì ñ÷åò÷èê ñòðîê
end;
// listKandinsky
for I := 0 to High(listKandinsky) do
begin
sgWebChats.RowCount := rowIndex + 1;
sgWebChats.Cells[0, rowIndex] := inttostr(listKandinsky[I].port);
sgWebChats.Cells[1, rowIndex] := 'Kandinsky';
sgWebChats.Cells[2, rowIndex] := 'http://127.0.0.1:' + inttostr(listKandinsky[I].port);
Inc(rowIndex); // Óâåëè÷èâàåì ñ÷åò÷èê ñòðîê
end;
finally
sgWebChats.EndUpdate;
end;
end;
end. end.
+1 -1
View File
@@ -9,7 +9,7 @@ object frSimpleGrid: TfrSimpleGrid
Size.Width = 339.000000000000000000 Size.Width = 339.000000000000000000
Size.Height = 149.000000000000000000 Size.Height = 149.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 45 TabOrder = 44
RowCount = 0 RowCount = 0
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement] Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
OnCellClick = sgCellClick OnCellClick = sgCellClick
+1 -1
View File
@@ -127,7 +127,7 @@ var
begin begin
sg.BeginUpdate; sg.BeginUpdate;
try try
sg.RowCount := 1; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè) sg.RowCount := 0; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè)
for i := 0 to High(FMyRecord) do for i := 0 to High(FMyRecord) do
begin begin
+18 -24
View File
@@ -24,28 +24,34 @@ object fCreateChat: TfCreateChat
Size.Height = 251.000000000000000000 Size.Height = 251.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
inherited ccbStyleBorderColor: TColorComboBox inherited ccbStyleBorderColor: TColorComboBox
TabOrder = 35 TabOrder = 33
end
inherited cpStyleBlockColor: TColorPanel
TabOrder = 7
end end
inherited Label40: TLabel inherited Label40: TLabel
TabOrder = 8 TabOrder = 8
end end
inherited Label42: TLabel inherited Label42: TLabel
TabOrder = 36 TabOrder = 35
end end
inherited Label44: TLabel inherited Label44: TLabel
TabOrder = 39 TabOrder = 38
end end
inherited Label48: TLabel inherited Label48: TLabel
TabOrder = 41 TabOrder = 40
end
inherited sbStyleBlockBorderSize: TSpinBox
TabOrder = 37
end end
inherited sbStyleBlockPadding: TSpinBox inherited sbStyleBlockPadding: TSpinBox
TabOrder = 46 TabOrder = 46
end end
inherited Label1: TLabel
TabOrder = 34
end
inherited ccbBColor: TColorComboBox inherited ccbBColor: TColorComboBox
OnChange = nil TabOrder = 36
end
inherited btnChangeBGColor: TButton
TabOrder = 39
end end
end end
end end
@@ -63,21 +69,8 @@ object fCreateChat: TfCreateChat
Size.Width = 240.000000000000000000 Size.Width = 240.000000000000000000
Size.Height = 125.000000000000000000 Size.Height = 125.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
inherited Label41: TLabel inherited Label46: TLabel
TabOrder = 8 TabOrder = 39
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 end
end end
@@ -141,7 +134,7 @@ object fCreateChat: TfCreateChat
Size.Width = 112.000000000000000000 Size.Width = 112.000000000000000000
Size.Height = 19.000000000000000000 Size.Height = 19.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 38 TabOrder = 37
Text = #1042#1077#1095#1085#1086 Text = #1042#1077#1095#1085#1086
end end
object sbWebServerPort: TSpinBox object sbWebServerPort: TSpinBox
@@ -180,5 +173,6 @@ object fCreateChat: TfCreateChat
TabOrder = 4 TabOrder = 4
Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090 Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCreateWebChatClick
end end
end end
+46 -1
View File
@@ -7,7 +7,7 @@ uses
System.Variants, FMX.ListBox, FMX.Colors, FMX.SpinBox, System.Variants, FMX.ListBox, FMX.Colors, FMX.SpinBox,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
fColorSettings, fFontSettings, FMX.Controls.Presentation, FMX.StdCtrls, fColorSettings, fFontSettings, FMX.Controls.Presentation, FMX.StdCtrls,
FMX.Edit, FMX.EditBox, StrUtils; FMX.Edit, FMX.EditBox, StrUtils, uRecords;
type type
TfCreateChat = class(TForm) TfCreateChat = class(TForm)
@@ -27,8 +27,10 @@ type
btnWebChatTest: TButton; btnWebChatTest: TButton;
btnCreateWebChat: TButton; btnCreateWebChat: TButton;
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure btnCreateWebChatClick(Sender: TObject);
private private
{ Private declarations } { Private declarations }
function GetColorFromColorPanel(aColor: TAlphaColor): string;
public public
{ Public declarations } { Public declarations }
end; end;
@@ -42,6 +44,49 @@ uses uGeneral;
{$R *.fmx} {$R *.fmx}
function TfCreateChat.GetColorFromColorPanel(aColor: TAlphaColor): string;
var
Color: TAlphaColor;
r, G, B: Byte;
A: Real;
FS: TFormatSettings;
begin
Color := aColor;
r := TAlphaColorRec(Color).r;
G := TAlphaColorRec(Color).G;
B := TAlphaColorRec(Color).B;
A := TAlphaColorRec(Color).A / 255; // Ïðåîáðàçóåì àëüôà-êàíàë â äèàïàçîí 0..1
// Óñòàíàâëèâàåì òî÷êó â êà÷åñòâå äåñÿòè÷íîãî ðàçäåëèòåëÿ
FS := TFormatSettings.Create;
FS.DecimalSeparator := '.';
result := Format('rgba(%d, %d, %d, %.2f)', [r, G, B, A], FS);
end;
procedure TfCreateChat.btnCreateWebChatClick(Sender: TObject);
var
OBSChat: TOBSChat;
begin
OBSChat.ColorBlock := GetColorFromColorPanel
(frChatSettings1.cpStyleBlockColor.Color);
OBSChat.ColorBorder := frChatSettings1.ccbStyleBorderColor.ItemIndex;
OBSChat.ColorBackground := frChatSettings1.ccbBColor.ItemIndex;
OBSChat.SolidBorder := round(frChatSettings1.sbStyleBlockBorderSize.Value);
OBSChat.Paddings := round(frChatSettings1.sbStyleBlockPadding.Value);
OBSChat.ColorFont := frFontSettings1.ccbFontColor.ItemIndex;
OBSChat.SizeFont := round(frFontSettings1.sbFontSize.Value);
OBSChat.StyleFont := frFontSettings1.cbFontStyleDefault.ItemIndex;
OBSChat.MaxCountMess := round(sbMaxMsg.Value);
OBSChat.TimeMess := round(sbTimeMsg.Value);
OBSChat.Port := round(sbWebServerPort.Value);
TTW_Bot.frOBS1.AddChat(OBSChat);
close;
end;
procedure TfCreateChat.FormCreate(Sender: TObject); procedure TfCreateChat.FormCreate(Sender: TObject);
procedure LoadFontList; procedure LoadFontList;
var var
+16 -44
View File
@@ -73,26 +73,20 @@ object fCreateNotify: TfCreateNotify
Size.Width = 311.000000000000000000 Size.Width = 311.000000000000000000
Size.Height = 258.000000000000000000 Size.Height = 258.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
inherited ccbStyleBorderColor: TColorComboBox
TabOrder = 37
end
inherited Label42: TLabel
TabOrder = 36
end
inherited Label44: TLabel inherited Label44: TLabel
TabOrder = 39 TabOrder = 38
end end
inherited Label48: TLabel inherited Label48: TLabel
TabOrder = 41 TabOrder = 40
end end
inherited sbStyleBlockBorderSize: TSpinBox inherited Label1: TLabel
TabOrder = 42 TabOrder = 35
end
inherited sbStyleBlockPadding: TSpinBox
TabOrder = 44
end end
inherited ccbBColor: TColorComboBox inherited ccbBColor: TColorComboBox
OnChange = nil TabOrder = 39
end
inherited btnChangeBGColor: TButton
TabOrder = 41
end end
end end
object GroupBox10: TGroupBox object GroupBox10: TGroupBox
@@ -145,7 +139,7 @@ object fCreateNotify: TfCreateNotify
Position.X = 8.000000000000000000 Position.X = 8.000000000000000000
Position.Y = 135.000000000000000000 Position.Y = 135.000000000000000000
Text = #1057#1086#1073#1099#1090#1080#1077 Text = #1057#1086#1073#1099#1090#1080#1077
TabOrder = 68 TabOrder = 60
end end
object cbEventsType: TComboBox object cbEventsType: TComboBox
Items.Strings = ( Items.Strings = (
@@ -159,17 +153,17 @@ object fCreateNotify: TfCreateNotify
Size.Width = 192.000000000000000000 Size.Width = 192.000000000000000000
Size.Height = 22.000000000000000000 Size.Height = 22.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 69 TabOrder = 61
end end
object Label3: TLabel object Label3: TLabel
Position.X = 8.000000000000000000 Position.X = 8.000000000000000000
Position.Y = 190.000000000000000000 Position.Y = 190.000000000000000000
Text = #1059#1089#1083#1086#1074#1080#1077' '#1089#1091#1084#1084#1099 Text = #1059#1089#1083#1086#1074#1080#1077' '#1089#1091#1084#1084#1099
TabOrder = 70 TabOrder = 62
end end
object edtIF: TEdit object edtIF: TEdit
Touch.InteractiveGestures = [LongTap, DoubleTap] Touch.InteractiveGestures = [LongTap, DoubleTap]
TabOrder = 71 TabOrder = 63
Position.X = 8.000000000000000000 Position.X = 8.000000000000000000
Position.Y = 215.000000000000000000 Position.Y = 215.000000000000000000
Size.Width = 192.000000000000000000 Size.Width = 192.000000000000000000
@@ -186,6 +180,7 @@ object fCreateNotify: TfCreateNotify
TabOrder = 64 TabOrder = 64
Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077 Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCreateEventClick
end end
object btnESTest: TButton object btnESTest: TButton
Position.X = 596.000000000000000000 Position.X = 596.000000000000000000
@@ -222,21 +217,8 @@ object fCreateNotify: TfCreateNotify
Size.Width = 241.000000000000000000 Size.Width = 241.000000000000000000
Size.Height = 115.000000000000000000 Size.Height = 115.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
inherited Label41: TLabel inherited Label46: TLabel
TabOrder = 8 TabOrder = 39
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 end
end end
@@ -250,29 +232,19 @@ object fCreateNotify: TfCreateNotify
Size.Width = 261.000000000000000000 Size.Width = 261.000000000000000000
Size.Height = 167.000000000000000000 Size.Height = 167.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
Text = #1047#1072#1075#1086#1083#1086#1074#1086#1082 Text = #1057#1086#1086#1073#1097#1077#1085#1080#1077
TabOrder = 65 TabOrder = 65
inline frFontSettings3: TfrFontSettings inline frFontSettings3: TfrFontSettings
Align = Client Align = Client
Size.Width = 241.000000000000000000 Size.Width = 241.000000000000000000
Size.Height = 115.000000000000000000 Size.Height = 115.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
inherited Label41: TLabel
TabOrder = 8
end
inherited sbFontSize: TSpinBox
OnChange = nil
end
inherited ccbFontColor: TColorComboBox inherited ccbFontColor: TColorComboBox
TabOrder = 37 TabOrder = 37
OnChange = nil
end end
inherited Label49: TLabel inherited Label49: TLabel
TabOrder = 36 TabOrder = 36
end end
inherited cbFontStyleDefault: TComboBox
OnChange = nil
end
inherited Label46: TLabel inherited Label46: TLabel
TabOrder = 38 TabOrder = 38
end end
+58 -1
View File
@@ -6,7 +6,7 @@ uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, fFontSettings, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, fFontSettings,
fColorSettings, FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation, fColorSettings, FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation,
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Colors; FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Colors,uRecords;
type type
TfCreateNotify = class(TForm) TfCreateNotify = class(TForm)
@@ -35,8 +35,10 @@ type
frFontSettings3: TfrFontSettings; frFontSettings3: TfrFontSettings;
edtESMessage: TEdit; edtESMessage: TEdit;
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure btnCreateEventClick(Sender: TObject);
private private
{ Private declarations } { Private declarations }
function GetColorFromColorPanel(aColor: TAlphaColor): string;
public public
{ Public declarations } { Public declarations }
end; end;
@@ -50,6 +52,61 @@ uses uGeneral;
{$R *.fmx} {$R *.fmx}
function TfCreateNotify.GetColorFromColorPanel(aColor: TAlphaColor): string;
var
Color: TAlphaColor;
r, G, B: Byte;
A: Real;
FS: TFormatSettings;
begin
Color := aColor;
r := TAlphaColorRec(Color).r;
G := TAlphaColorRec(Color).G;
B := TAlphaColorRec(Color).B;
A := TAlphaColorRec(Color).A / 255; // Ïðåîáðàçóåì àëüôà-êàíàë â äèàïàçîí 0..1
// Óñòàíàâëèâàåì òî÷êó â êà÷åñòâå äåñÿòè÷íîãî ðàçäåëèòåëÿ
FS := TFormatSettings.Create;
FS.DecimalSeparator := '.';
result := Format('rgba(%d, %d, %d, %.2f)', [r, G, B, A], FS);
end;
procedure TfCreateNotify.btnCreateEventClick(Sender: TObject);
var
OBSNotify: TOBSNotify;
begin
with OBSNotify do
begin
Picture:=edtESImage.Text;
Sound:=edtESSound.Text;
ColorBlock:= GetColorFromColorPanel(frColorSettings1.cpStyleBlockColor.Color);
SolidBorder:=round(frColorSettings1.sbStyleBlockBorderSize.Value);
Paddings:=round(frColorSettings1.sbStyleBlockPadding.Value);
ColorBorder:=frColorSettings1.ccbStyleBorderColor.ItemIndex;
ColorBackground:=frColorSettings1.ccbBColor.ItemIndex;
HeaderText:=edtESTitle.text;
HeaderColorFont:=frFontSettings2.ccbFontColor.ItemIndex;
HeaderSizeFont:=round(frFontSettings2.sbFontSize.Value);
HeaderStyleFont:=frFontSettings2.cbFontStyleDefault.ItemIndex;
MessText:=edtESMessage.text;
MessColorFont:=frFontSettings3.ccbFontColor.ItemIndex;
MessSizeFont:=round(frFontSettings3.sbFontSize.Value);
MessStyleFont:=frFontSettings3.cbFontStyleDefault.ItemIndex;
TimeMess:=round(sbTimeMsg.Value);
TypeEvent:=cbEventsType.ItemIndex;
TypeEdit:=edtIF.Text;
Port:=round(sbWebServerPort.Value);;
end;
TTW_Bot.frOBS1.AddNotify(OBSNotify);
close;
end;
procedure TfCreateNotify.FormCreate(Sender: TObject); procedure TfCreateNotify.FormCreate(Sender: TObject);
var var
i: Integer; i: Integer;
+5 -1
View File
@@ -498,7 +498,11 @@ var
Value: TValue; Value: TValue;
Param: TFDParam; Param: TFDParam;
begin begin
if Length(Items) = 0 then Exit; if Length(Items) = 0 then
begin
FConnection.ExecSQL('DELETE FROM ' + TableName);
exit;
end;
EnsureTableForRecord(TableName, TypeInfo(T)); EnsureTableForRecord(TableName, TypeInfo(T));
+29 -10
View File
@@ -17,7 +17,7 @@ object TTW_Bot: TTTW_Bot
Size.Width = 970.000000000000000000 Size.Width = 970.000000000000000000
Size.Height = 744.000000000000000000 Size.Height = 744.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabIndex = 2 TabIndex = 4
TabOrder = 0 TabOrder = 0
TabPosition = PlatformDefault TabPosition = PlatformDefault
Sizes = ( Sizes = (
@@ -78,6 +78,9 @@ object TTW_Bot: TTTW_Bot
ImageIndex = 10 ImageIndex = 10
TabOrder = 33 TabOrder = 33
end end
inherited edtBotTokenStreamer: TEdit
TabOrder = 34
end
inherited Label53: TLabel inherited Label53: TLabel
TabOrder = 36 TabOrder = 36
end end
@@ -188,7 +191,7 @@ object TTW_Bot: TTTW_Bot
item item
end> end>
TextSettings.Trimming = None TextSettings.Trimming = None
IsSelected = True IsSelected = False
ImageIndex = 13 ImageIndex = 13
Size.Width = 78.000000000000000000 Size.Width = 78.000000000000000000
Size.Height = 26.000000000000000000 Size.Height = 26.000000000000000000
@@ -279,8 +282,14 @@ object TTW_Bot: TTTW_Bot
Viewport.Width = 207.000000000000000000 Viewport.Width = 207.000000000000000000
Viewport.Height = 116.000000000000000000 Viewport.Height = 116.000000000000000000
end end
inherited Label4: TLabel inherited btnRandomAdd: TButton
TabOrder = 40 TabOrder = 34
end
inherited btnRandomDel: TButton
TabOrder = 35
end
inherited btnRmGroup: TButton
TabOrder = 37
end end
inherited Label5: TLabel inherited Label5: TLabel
TabOrder = 43 TabOrder = 43
@@ -423,7 +432,7 @@ object TTW_Bot: TTTW_Bot
item item
end> end>
TextSettings.Trimming = None TextSettings.Trimming = None
IsSelected = False IsSelected = True
ImageIndex = 10 ImageIndex = 10
Size.Width = 136.000000000000000000 Size.Width = 136.000000000000000000
Size.Height = 26.000000000000000000 Size.Height = 26.000000000000000000
@@ -453,7 +462,6 @@ object TTW_Bot: TTTW_Bot
Size.Width = 94.000000000000000000 Size.Width = 94.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 2 TabOrder = 2
OnClick = frChatOBS1btnCreateChatClick
end end
inherited btnDeleteeChat: TButton inherited btnDeleteeChat: TButton
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -461,21 +469,20 @@ object TTW_Bot: TTTW_Bot
ImageIndex = 4 ImageIndex = 4
Position.X = 882.000000000000000000 Position.X = 882.000000000000000000
TabOrder = 3 TabOrder = 3
OnClick = frOBS1btnDeleteeChatClick
end end
inherited Label1: TLabel inherited Label1: TLabel
TabOrder = 7 TabOrder = 8
end end
inherited btnCreateOBSNotify: TButton inherited btnCreateOBSNotify: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 24 ImageIndex = 24
Position.X = 110.000000000000000000 Position.X = 110.000000000000000000
OnClick = frOBS1btnCreateOBSNotifyClick
end end
inherited btnCreateOBSKandinsky: TButton inherited btnCreateOBSKandinsky: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 5 ImageIndex = 5
Position.X = 264.000000000000000000 Position.X = 264.000000000000000000
OnClick = frOBS1btnCreateOBSKandinskyClick
end end
object btnCreateChat: TButton object btnCreateChat: TButton
Images = ImageList1 Images = ImageList1
@@ -488,7 +495,6 @@ object TTW_Bot: TTTW_Bot
TabOrder = 1 TabOrder = 1
Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077 Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = frChatOBS1btnCreateChatClick
end end
end end
end end
@@ -553,6 +559,7 @@ object TTW_Bot: TTTW_Bot
Text = '' Text = ''
end end
inherited OpenDialog1: TOpenDialog inherited OpenDialog1: TOpenDialog
Left = 472
Top = 32 Top = 32
end end
end end
@@ -653,19 +660,28 @@ object TTW_Bot: TTTW_Bot
end end
end end
inherited GroupBox17: TGroupBox inherited GroupBox17: TGroupBox
inherited edtCounterTrigger: TEdit
TabOrder = 38
end
inherited edtCounterCount: TEdit
TabOrder = 37
end
inherited btnCounterAdd: TButton inherited btnCounterAdd: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 0 ImageIndex = 0
TabOrder = 39
end end
inherited btnCounterDelete: TButton inherited btnCounterDelete: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 4 ImageIndex = 4
TabOrder = 40
end end
inherited btnCounterP: TButton inherited btnCounterP: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 0 ImageIndex = 0
Position.X = 416.000000000000000000 Position.X = 416.000000000000000000
Size.Width = 22.000000000000000000 Size.Width = 22.000000000000000000
TabOrder = 42
Text = '' Text = ''
end end
inherited btnCounterM: TButton inherited btnCounterM: TButton
@@ -673,13 +689,16 @@ object TTW_Bot: TTTW_Bot
ImageIndex = 12 ImageIndex = 12
Position.X = 449.000000000000000000 Position.X = 449.000000000000000000
Size.Width = 22.000000000000000000 Size.Width = 22.000000000000000000
TabOrder = 43
Text = '' Text = ''
end end
inherited btnCounterEdit: TButton inherited btnCounterEdit: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 3 ImageIndex = 3
TabOrder = 44
end end
inherited sgCounter: TStringGrid inherited sgCounter: TStringGrid
TabOrder = 45
Viewport.Width = 463.000000000000000000 Viewport.Width = 463.000000000000000000
Viewport.Height = 121.000000000000000000 Viewport.Height = 121.000000000000000000
inherited scCounterTrigger: TStringColumn inherited scCounterTrigger: TStringColumn
+69 -95
View File
@@ -8,7 +8,7 @@ uses
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.TabControl, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.TabControl,
FMX.Controls.Presentation, FMX.StdCtrls, System.ImageList, FMX.ImgList, FMX.Controls.Presentation, FMX.StdCtrls, System.ImageList, FMX.ImgList,
FMX.Styles, ShellAPI, StrUtils, FMX.Styles, ShellAPI, StrUtils,
fSettings, fAI, fNotify, fAutoActions, FMX.ListBox, fLog, uRecords, fSettings, fAI, fNotify, fAutoActions, FMX.ListBox, fLog, uRecords,
System.IOUtils, fCommands, uDataBase, FMX.Edit, FMX.Colors, FMX.SpinBox, System.IOUtils, fCommands, uDataBase, FMX.Edit, FMX.Colors, FMX.SpinBox,
windows, System.Skia, FMX.Skia, uCreateChat, uCreateNotify, fOBS; windows, System.Skia, FMX.Skia, uCreateChat, uCreateNotify, fOBS;
@@ -57,11 +57,9 @@ type
procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject);
procedure frChatOBS1btnCreateChatClick(Sender: TObject);
procedure frOBS1btnCreateOBSNotifyClick(Sender: TObject);
procedure frOBS1btnCreateOBSKandinskyClick(Sender: TObject);
procedure frSettings1btnDAStartClick(Sender: TObject); procedure frSettings1btnDAStartClick(Sender: TObject);
procedure frCommands1btnRandAddClick(Sender: TObject); procedure frCommands1btnRandAddClick(Sender: TObject);
procedure frOBS1btnDeleteeChatClick(Sender: TObject);
private private
{ Private declarations } { Private declarations }
procedure ReadDB(); procedure ReadDB();
@@ -136,57 +134,34 @@ begin
db := TSettingsDatabase.Create(myConst.DBPath); db := TSettingsDatabase.Create(myConst.DBPath);
ReadDB; ReadDB;
frCommands1.frsgSounds.ObjectRecord:=frCommands1.listSounds; frCommands1.frsgSounds.ObjectRecord := frCommands1.listSounds;
frCommands1.frsgSounds.TableName:='listSounds'; frCommands1.frsgSounds.TableName := 'listSounds';
frCommands1.frsgSounds.UpdateGrid; frCommands1.frsgSounds.UpdateGrid;
frCommands1.frsgFiles.ObjectRecord:=frCommands1.listFiles; frCommands1.frsgFiles.ObjectRecord := frCommands1.listFiles;
frCommands1.frsgFiles.TableName:='listFiles'; frCommands1.frsgFiles.TableName := 'listFiles';
frCommands1.frsgFiles.UpdateGrid; frCommands1.frsgFiles.UpdateGrid;
frCommands1.frsgNeiro.ObjectRecord:=frCommands1.listNeiro; frCommands1.frsgNeiro.ObjectRecord := frCommands1.listNeiro;
frCommands1.frsgNeiro.TableName:='listNeiro'; frCommands1.frsgNeiro.TableName := 'listNeiro';
frCommands1.frsgNeiro.UpdateGrid; frCommands1.frsgNeiro.UpdateGrid;
for Path in TDirectory.GetFiles(myConst.stlPath) do for Path in TDirectory.GetFiles(myConst.stlPath) do
cbTheme.Items.Add(ExtractFileName(Path)); cbTheme.Items.Add(ExtractFileName(Path));
cbTheme.ItemIndex := strtoint(db.ReadSetting('cbTheme', '-1')); cbTheme.ItemIndex := strtoint(db.ReadSetting('cbTheme', '-1'));
end; end;
procedure TTTW_Bot.frChatOBS1btnCreateChatClick(Sender: TObject);
begin
fCreateChat.Show;
end;
procedure TTTW_Bot.frCommands1btnRandAddClick(Sender: TObject); procedure TTTW_Bot.frCommands1btnRandAddClick(Sender: TObject);
begin begin
frCommands1.btnRandAddClick(Sender); frCommands1.btnRandAddClick(Sender);
end; end;
procedure TTTW_Bot.frOBS1btnCreateOBSKandinskyClick(Sender: TObject); procedure TTTW_Bot.frOBS1btnDeleteeChatClick(Sender: TObject);
var dport:integer;
I: Integer;
begin begin
dport:=8080; frOBS1.btnDeleteeChatClick(Sender);
for I := 0 to frOBS1.sgWebChats.RowCount-1 do
begin
if strtoint(frOBS1.sgWebChats.Cells[0,i]) >= dport then
dport:=strtoint(frOBS1.sgWebChats.Cells[0,i])+1;
end;
frOBS1.sgWebChats.RowCount:=frOBS1.sgWebChats.RowCount+1;
frOBS1.sgWebChats.Cells[0,frOBS1.sgWebChats.RowCount-1]:=inttostr(dport);
frOBS1.sgWebChats.Cells[1,frOBS1.sgWebChats.RowCount-1]:='Kandinsky';
frOBS1.sgWebChats.Cells[2,frOBS1.sgWebChats.RowCount-1]:='http://127.0.0.1:'+inttostr(dport);
end; end;
procedure TTTW_Bot.frOBS1btnCreateOBSNotifyClick(Sender: TObject);
begin
fCreateNotify.Show;
end;
procedure TTTW_Bot.frSettings1btnDAStartClick(Sender: TObject); procedure TTTW_Bot.frSettings1btnDAStartClick(Sender: TObject);
begin begin
frSettings1.btnDAStartClick(Sender); frSettings1.btnDAStartClick(Sender);
@@ -269,18 +244,19 @@ var
// Çàãðóçêà äàííûõ â ãðèäû êîìàíä // Çàãðóçêà äàííûõ â ãðèäû êîìàíä
procedure LoadGridsData; procedure LoadGridsData;
begin begin
DB.LoadRecordArray<TRandomCounters>('RandomCounters', frCommands1.RandomCounters); db.LoadRecordArray<TRandomCounters>('RandomCounters',
DB.LoadRecordArray<TListCommands>('listSounds', frCommands1.listSounds); frCommands1.RandomCounters);
DB.LoadRecordArray<TListCommands>('listFiles', frCommands1.listFiles); db.LoadRecordArray<TListCommands>('listSounds', frCommands1.listSounds);
DB.LoadRecordArray<TListCommands>('listNeiro', frCommands1.listNeiro); db.LoadRecordArray<TListCommands>('listFiles', frCommands1.listFiles);
DB.LoadRecordArray<TListCommands>('listCommands', frCommands1.listCommands); db.LoadRecordArray<TListCommands>('listNeiro', frCommands1.listNeiro);
db.LoadRecordArray<TListCommands>('listCommands', frCommands1.listCommands);
frCommands1.UpdateGridFromArray;
db.LoadRecordArray<TOBSChat>('listChats', frOBS1.listChats);
db.LoadRecordArray<TOBSNotify>('listNotify', frOBS1.listNotify);
db.LoadRecordArray<TOBSKandinsky>('listKandinsky', frOBS1.listKandinsky);
frOBS1.UpdateGridFromArray;
frCommands1.UpdateGridFromArray;
{ 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; end;
// Çàãðóçêà ñïèñêà ãðóïï // Çàãðóçêà ñïèñêà ãðóïï
@@ -371,55 +347,56 @@ var
ii: Integer; ii: Integer;
// Íàñòðîéêè GigaChat // Íàñòðîéêè GigaChat
procedure SetupGigaChatSettings; procedure SetupGigaChatSettings;
begin begin
frAI1.rbGC.IsChecked := True; frAI1.rbGC.IsChecked := True;
frAI1.Label45.text := 'ClientID'; frAI1.Label45.text := 'ClientID';
frAI1.Label47.text := 'Autorization Code'; frAI1.Label47.text := 'Autorization Code';
frAI1.Label1.Visible := False; frAI1.Label1.Visible := False;
frAI1.edtAIP2.Visible := True; frAI1.edtAIP2.Visible := True;
frAI1.edtAIP2.Password := True; frAI1.edtAIP2.Password := True;
frAI1.edtAIP3.Visible := False; frAI1.edtAIP3.Visible := False;
frAI1.cbOllama.Visible := False; frAI1.cbOllama.Visible := False;
end; end;
// Íàñòðîéêè DeepSeek // Íàñòðîéêè DeepSeek
procedure SetupDeepSeekSettings; procedure SetupDeepSeekSettings;
begin begin
frAI1.rbDS.IsChecked := True; frAI1.rbDS.IsChecked := True;
frAI1.Label45.text := 'API Token'; frAI1.Label45.text := 'API Token';
frAI1.Label47.text := ''; frAI1.Label47.text := '';
frAI1.Label1.Visible := False; frAI1.Label1.Visible := False;
frAI1.edtAIP2.Visible := False; frAI1.edtAIP2.Visible := False;
frAI1.edtAIP3.Visible := False; frAI1.edtAIP3.Visible := False;
frAI1.cbOllama.Visible := False; frAI1.cbOllama.Visible := False;
end; end;
// Íàñòðîéêè ChatGPT // Íàñòðîéêè ChatGPT
procedure SetupChatGPTSettings; procedure SetupChatGPTSettings;
begin begin
frAI1.rbCG.IsChecked := True; frAI1.rbCG.IsChecked := True;
frAI1.Label45.text := 'API Token'; frAI1.Label45.text := 'API Token';
frAI1.Label47.text := ''; frAI1.Label47.text := '';
frAI1.Label1.Visible := False; frAI1.Label1.Visible := False;
frAI1.edtAIP2.Visible := False; frAI1.edtAIP2.Visible := False;
frAI1.edtAIP3.Visible := False; frAI1.edtAIP3.Visible := False;
frAI1.cbOllama.Visible := False; frAI1.cbOllama.Visible := False;
end; 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;
// Íàñòðîéêè êàñòîìíîãî ÈÈ
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 begin
for I := 0 to frAI1.ComponentCount - 1 do for I := 0 to frAI1.ComponentCount - 1 do
begin begin
@@ -445,8 +422,6 @@ var
frSettings1.init; frSettings1.init;
end; end;
// Çàãðóçêà ãðèäîâ àâòîìàòè÷åñêèõ äåéñòâèé // Çàãðóçêà ãðèäîâ àâòîìàòè÷åñêèõ äåéñòâèé
procedure LoadAutoActionsGrids; procedure LoadAutoActionsGrids;
begin begin
@@ -461,7 +436,6 @@ begin
LoadGroupNames; LoadGroupNames;
LoadEncryptedConfig; LoadEncryptedConfig;
LoadNotifySettings; LoadNotifySettings;
LoadAISettings; LoadAISettings;
LoadAutoActionsGrids; LoadAutoActionsGrids;
+50 -7
View File
@@ -2,21 +2,67 @@ unit uRecords;
interface interface
type
TOBSKandinsky = record
port: integer;
end;
type
TOBSNotify = record
Picture: string;
Sound: string;
ColorBlock: string;
SolidBorder: integer;
Paddings: integer;
ColorBorder: integer;
ColorBackground: integer;
HeaderText: string;
HeaderColorFont: integer;
HeaderSizeFont: integer;
HeaderStyleFont: integer;
MessText: string;
MessColorFont: integer;
MessSizeFont: integer;
MessStyleFont: integer;
TimeMess: integer;
TypeEvent: integer;
TypeEdit: string;
port: integer;
end;
type
TOBSChat = record
ColorBlock: string;
ColorBorder: integer;
ColorBackground: integer;
ColorFont: integer;
SolidBorder: integer;
Paddings: integer;
SizeFont: integer;
MaxCountMess: integer;
TimeMess: integer;
port: integer;
StyleFont: integer;
end;
type type
TRandomCounters = record TRandomCounters = record
rndName: string; rndName: string;
Ot: Integer; Ot: integer;
ToValue: Integer; ToValue: integer;
end; end;
type type
TListCommands = record TListCommands = record
R1: string; R1: string;
R2: string; R2: string;
end; end;
type type
TConst = record TConst = record
GeneralPath: string; GeneralPath: string;
@@ -398,9 +444,6 @@ type
DA_URL: string; DA_URL: string;
end; end;
implementation implementation
end. end.