доделал автоматические действия

This commit is contained in:
PC1\PTyTb
2025-08-08 10:03:01 +03:00
parent f2c012dd28
commit 1936c9c9c0
8 changed files with 4336 additions and 91 deletions
+2 -1
View File
@@ -26,7 +26,8 @@ uses
fSimpleGrid in 'fSimpleGrid.pas' {frSimpleGrid: TFrame}, fSimpleGrid in 'fSimpleGrid.pas' {frSimpleGrid: TFrame},
fContruct in 'fContruct.pas' {frContruct: TFrame}, fContruct in 'fContruct.pas' {frContruct: TFrame},
fGroupsRequest in 'fGroupsRequest.pas' {frGroupsRequest: TFrame}, fGroupsRequest in 'fGroupsRequest.pas' {frGroupsRequest: TFrame},
uMyTimer in 'uMyTimer.pas'; uMyTimer in 'uMyTimer.pas',
uRegExpr in 'uRegExpr.pas';
{$R *.res} {$R *.res}
+1
View File
@@ -393,6 +393,7 @@
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uMyTimer.pas"/> <DCCReference Include="uMyTimer.pas"/>
<DCCReference Include="uRegExpr.pas"/>
<None Include=".gitignore"/> <None Include=".gitignore"/>
<BuildConfiguration Include="Base"> <BuildConfiguration Include="Base">
<Key>Base</Key> <Key>Base</Key>
+12
View File
@@ -75,6 +75,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 44 TabOrder = 44
RowCount = 0 RowCount = 0
OnEditingDone = sgTimersEditingDone OnEditingDone = sgTimersEditingDone
OnCellClick = sgTimersCellClick
Viewport.Width = 459.000000000000000000 Viewport.Width = 459.000000000000000000
Viewport.Height = 200.000000000000000000 Viewport.Height = 200.000000000000000000
object ccTimerEnable: TCheckColumn object ccTimerEnable: TCheckColumn
@@ -122,6 +123,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 39 TabOrder = 39
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 = btnBanWordsAddClick
end end
object btnBanWordsEdt: TButton object btnBanWordsEdt: TButton
Position.X = 96.000000000000000000 Position.X = 96.000000000000000000
@@ -129,6 +131,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 40 TabOrder = 40
Text = #1048#1079#1084#1077#1085#1080#1090#1100 Text = #1048#1079#1084#1077#1085#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnBanWordsEdtClick
end end
object btnBanWordsDel: TButton object btnBanWordsDel: TButton
Position.X = 184.000000000000000000 Position.X = 184.000000000000000000
@@ -136,6 +139,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 41 TabOrder = 41
Text = #1059#1076#1072#1083#1080#1090#1100 Text = #1059#1076#1072#1083#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnBanWordsDelClick
end end
object sgBanWords: TStringGrid object sgBanWords: TStringGrid
CanFocus = True CanFocus = True
@@ -147,6 +151,7 @@ object frAutoActions: TfrAutoActions
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 42 TabOrder = 42
RowCount = 0 RowCount = 0
OnCellClick = sgBanWordsCellClick
Viewport.Width = 293.000000000000000000 Viewport.Width = 293.000000000000000000
Viewport.Height = 200.000000000000000000 Viewport.Height = 200.000000000000000000
object scRegEx: TStringColumn object scRegEx: TStringColumn
@@ -162,6 +167,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 43 TabOrder = 43
Text = #1055#1088#1086#1074#1077#1088#1080#1090#1100 Text = #1055#1088#1086#1074#1077#1088#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnBanWordsCheckClick
end end
object Label6: TLabel object Label6: TLabel
Position.X = 8.000000000000000000 Position.X = 8.000000000000000000
@@ -239,6 +245,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 40 TabOrder = 40
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 = btnCounterAddClick
end end
object btnCounterDelete: TButton object btnCounterDelete: TButton
Position.X = 184.000000000000000000 Position.X = 184.000000000000000000
@@ -246,6 +253,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 42 TabOrder = 42
Text = #1059#1076#1072#1083#1080#1090#1100 Text = #1059#1076#1072#1083#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCounterDeleteClick
end end
object btnCounterP: TButton object btnCounterP: TButton
Position.X = 410.000000000000000000 Position.X = 410.000000000000000000
@@ -256,6 +264,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 43 TabOrder = 43
Text = '+' Text = '+'
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCounterPClick
end end
object btnCounterM: TButton object btnCounterM: TButton
Position.X = 443.000000000000000000 Position.X = 443.000000000000000000
@@ -266,6 +275,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 44 TabOrder = 44
Text = '-' Text = '-'
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCounterMClick
end end
object btnCounterEdit: TButton object btnCounterEdit: TButton
Position.X = 96.000000000000000000 Position.X = 96.000000000000000000
@@ -273,6 +283,7 @@ object frAutoActions: TfrAutoActions
TabOrder = 45 TabOrder = 45
Text = #1048#1079#1084#1077#1085#1080#1090#1100 Text = #1048#1079#1084#1077#1085#1080#1090#1100
TextSettings.Trimming = None TextSettings.Trimming = None
OnClick = btnCounterEditClick
end end
object sgCounter: TStringGrid object sgCounter: TStringGrid
CanFocus = True CanFocus = True
@@ -284,6 +295,7 @@ object frAutoActions: TfrAutoActions
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 46 TabOrder = 46
RowCount = 0 RowCount = 0
OnCellClick = sgCounterCellClick
Viewport.Width = 459.000000000000000000 Viewport.Width = 459.000000000000000000
Viewport.Height = 96.000000000000000000 Viewport.Height = 96.000000000000000000
object scCounterName: TStringColumn object scCounterName: TStringColumn
+236 -31
View File
@@ -4,7 +4,7 @@ interface
uses uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants, System.Variants, uRegExpr,
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, StrUtils, System.Rtti, FMX.Grid.Style, FMX.Grid, FMX.ScrollBox, FMX.Edit, StrUtils,
FMX.Controls.Presentation, uMyTimer, uRecords, System.Generics.Collections; FMX.Controls.Presentation, uMyTimer, uRecords, System.Generics.Collections;
@@ -54,6 +54,18 @@ type
procedure btnRmMessageClick(Sender: TObject); procedure btnRmMessageClick(Sender: TObject);
procedure btnNotifyTestClick(Sender: TObject); procedure btnNotifyTestClick(Sender: TObject);
procedure sgTimersEditingDone(Sender: TObject; const ACol, ARow: Integer); procedure sgTimersEditingDone(Sender: TObject; const ACol, ARow: Integer);
procedure btnBanWordsCheckClick(Sender: TObject);
procedure btnBanWordsAddClick(Sender: TObject);
procedure btnBanWordsEdtClick(Sender: TObject);
procedure btnBanWordsDelClick(Sender: TObject);
procedure btnCounterAddClick(Sender: TObject);
procedure btnCounterEditClick(Sender: TObject);
procedure btnCounterDeleteClick(Sender: TObject);
procedure btnCounterPClick(Sender: TObject);
procedure btnCounterMClick(Sender: TObject);
procedure sgTimersCellClick(const Column: TColumn; const Row: Integer);
procedure sgBanWordsCellClick(const Column: TColumn; const Row: Integer);
procedure sgCounterCellClick(const Column: TColumn; const Row: Integer);
private private
{ Private declarations } { Private declarations }
procedure OnMyTimerExec(Sender: TObject; const txt: string; o: Boolean); procedure OnMyTimerExec(Sender: TObject; const txt: string; o: Boolean);
@@ -62,6 +74,8 @@ type
{ Public declarations } { Public declarations }
FTimerList: TObjectList<TMyTimerThread>; FTimerList: TObjectList<TMyTimerThread>;
listTimer: TArray<TListTimer>; listTimer: TArray<TListTimer>;
listBanWords: TArray<TBanWord>;
listCounters: TArray<TCounter>;
procedure UpdateGridFromArray; procedure UpdateGridFromArray;
procedure initTimers; procedure initTimers;
end; end;
@@ -100,12 +114,165 @@ begin
edtInterval.text := '10'; edtInterval.text := '10';
end; end;
procedure TfrAutoActions.btnBanWordsAddClick(Sender: TObject);
var
NewRec: TBanWord;
begin
if (edtBanWords.text = '') then
exit;
NewRec.regexp := edtBanWords.text;
SetLength(listBanWords, Length(listBanWords) + 1);
listBanWords[High(listBanWords)] := NewRec;
UpdateGridFromArray;
DB.SaveRecordArray<TBanWord>('listBanWords', listBanWords);
edtBanWords.text := '';
end;
procedure TfrAutoActions.btnBanWordsCheckClick(Sender: TObject);
var
rx: TRegExpr;
begin
rx := TRegExpr.Create;
rx.InputString := edtBanWordsCheck.text;
rx.Expression := edtBanWords.text;
if rx.Exec then
lBanWordsCheck.text := 'åñòü áàíâîðä'
else
lBanWordsCheck.text := 'íåò áàíâîðäà';
end;
procedure TfrAutoActions.btnBanWordsDelClick(Sender: TObject);
var
SelectedRow: Integer;
I: Integer;
begin
SelectedRow := sgBanWords.Row;
// Ïðîâåðÿåì âàëèäíîñòü âûáðàííîé ñòðîêè
if (SelectedRow < 0) or (SelectedRow >= sgBanWords.RowCount) then
exit;
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for I := SelectedRow to High(listBanWords) - 1 do
listBanWords[I] := listBanWords[I + 1];
SetLength(listBanWords, Length(listBanWords) - 1);
UpdateGridFromArray;
DB.SaveRecordArray<TBanWord>('listBanWords', listBanWords);
end;
procedure TfrAutoActions.btnBanWordsEdtClick(Sender: TObject);
var
SelectedRow: Integer;
NewText, oldText: string;
I: Integer;
myRec: TBanWord;
begin
SelectedRow := sgBanWords.Row;
if (edtBanWords.text = '') or (SelectedRow <= 0) or
(SelectedRow >= sgBanWords.RowCount) then
exit;
NewText := edtBanWords.text;
oldText := sgBanWords.Cells[0, SelectedRow];
for I := 0 to High(listBanWords) do
if listBanWords[I].regexp = oldText then
begin
listBanWords[I].regexp := NewText;
break;
end;
UpdateGridFromArray;
DB.SaveRecordArray<TBanWord>('listBanWords', listBanWords);
edtBanWords.text := '';
end;
procedure TfrAutoActions.btnCounterAddClick(Sender: TObject);
var
NewRec: TCounter;
begin
if (edtCounterName.text = '') or (edtCounterTrigger.text = '') then
exit;
if (edtCounterCount.text = '') then
edtCounterCount.text := '0';
NewRec.counterName := edtCounterName.text;
NewRec.trigger := edtCounterTrigger.text;
NewRec.count := strtoint(edtCounterCount.text);
NewRec.auto := 0;
SetLength(listCounters, Length(listCounters) + 1);
listCounters[High(listCounters)] := NewRec;
UpdateGridFromArray;
DB.SaveRecordArray<TCounter>('listCounters', listCounters);
edtCounterName.text := '';
edtCounterTrigger.text := '';
edtCounterCount.text := '0';
end;
procedure TfrAutoActions.btnCounterDeleteClick(Sender: TObject);
var
SelectedRow: Integer;
I: Integer;
begin
SelectedRow := sgCounter.Row;
// Ïðîâåðÿåì âàëèäíîñòü âûáðàííîé ñòðîêè
if (SelectedRow < 0) or (SelectedRow >= sgCounter.RowCount) then
exit;
for I := SelectedRow to High(listCounters) - 1 do
listCounters[I] := listCounters[I + 1];
SetLength(listCounters, Length(listCounters) - 1);
UpdateGridFromArray;
DB.SaveRecordArray<TCounter>('listCounters', listCounters);
end;
procedure TfrAutoActions.btnCounterEditClick(Sender: TObject);
var
SelectedRow: Integer;
oldName: string;
I: Integer;
begin
SelectedRow := sgCounter.Row;
if (edtCounterName.text = '') or (edtCounterTrigger.text = '') then
exit;
if (edtCounterCount.text = '') then
edtCounterCount.text := '0';
oldName := sgCounter.Cells[0, SelectedRow];
for I := 0 to high(listCounters) do
if listCounters[I].counterName = oldName then
begin
listCounters[I].counterName := edtCounterName.text;
listCounters[I].trigger := edtCounterTrigger.text;
listCounters[I].count := strtoint(edtCounterCount.text);
end;
UpdateGridFromArray;
DB.SaveRecordArray<TCounter>('listCounters', listCounters);
edtCounterName.text := '';
edtCounterTrigger.text := '';
edtCounterCount.text := '0';
end;
procedure TfrAutoActions.btnCounterMClick(Sender: TObject);
begin
edtCounterCount.text := inttostr(strtoint(edtCounterCount.text) - 1);
end;
procedure TfrAutoActions.btnCounterPClick(Sender: TObject);
begin
edtCounterCount.text := inttostr(strtoint(edtCounterCount.text) + 1);
end;
procedure TfrAutoActions.btnEditMessageClick(Sender: TObject); procedure TfrAutoActions.btnEditMessageClick(Sender: TObject);
var var
SelectedRow: Integer; SelectedRow: Integer;
NewText: string; NewText: string;
NewInterval: Integer; NewInterval: Integer;
RowIndex: Integer;
begin begin
SelectedRow := sgTimers.Row; SelectedRow := sgTimers.Row;
if (edtMessage.text = '') or (edtInterval.text = '') or (SelectedRow <= 0) or if (edtMessage.text = '') or (edtInterval.text = '') or (SelectedRow <= 0) or
@@ -114,17 +281,11 @@ begin
NewText := edtMessage.text; NewText := edtMessage.text;
NewInterval := StrToIntDef(edtInterval.text, 0); NewInterval := StrToIntDef(edtInterval.text, 0);
RowIndex := sgTimers.Row;
if (RowIndex < 0) or (RowIndex > High(listTimer)) then
exit;
if NewInterval <= 0 then
exit;
// Îáíîâëÿåì íàñòðîéêè òàéìåðà // Îáíîâëÿåì íàñòðîéêè òàéìåðà
FTimerList[SelectedRow].Update(sgTimers.Cells[2, SelectedRow].ToInteger, FTimerList[SelectedRow].Update(sgTimers.Cells[2, SelectedRow].ToInteger,
sgTimers.Cells[1, SelectedRow], (sgTimers.Cells[3, SelectedRow] = 'True')); sgTimers.Cells[1, SelectedRow], (sgTimers.Cells[3, SelectedRow] = 'True'));
listTimer[RowIndex].interval := NewInterval; listTimer[SelectedRow].interval := NewInterval;
listTimer[RowIndex].mess := NewText; listTimer[SelectedRow].mess := NewText;
UpdateGridFromArray; UpdateGridFromArray;
DB.SaveRecordArray<TListTimer>('listTimer', listTimer); DB.SaveRecordArray<TListTimer>('listTimer', listTimer);
@@ -148,14 +309,14 @@ end;
procedure TfrAutoActions.btnRmMessageClick(Sender: TObject); procedure TfrAutoActions.btnRmMessageClick(Sender: TObject);
var var
SelectedRow: Integer; SelectedRow: Integer;
i, RowIndex: Integer; I: Integer;
begin begin
SelectedRow := sgTimers.Row; SelectedRow := sgTimers.Row;
// Ïðîâåðÿåì âàëèäíîñòü âûáðàííîé ñòðîêè // Ïðîâåðÿåì âàëèäíîñòü âûáðàííîé ñòðîêè
if (SelectedRow < 0) or (SelectedRow >= sgTimers.RowCount) then if (SelectedRow < 0) or (SelectedRow >= sgTimers.RowCount) then
exit; exit;
// Ïðîâåðÿåì íàëè÷èå òàéìåðà â ñïèñêå // Ïðîâåðÿåì íàëè÷èå òàéìåðà â ñïèñêå
if (SelectedRow < FTimerList.Count) then if (SelectedRow < FTimerList.count) then
begin begin
// Îñòàíàâëèâàåì è óíè÷òîæàåì òàéìåð // Îñòàíàâëèâàåì è óíè÷òîæàåì òàéìåð
if Assigned(FTimerList[SelectedRow]) then if Assigned(FTimerList[SelectedRow]) then
@@ -165,15 +326,9 @@ begin
FTimerList.Delete(SelectedRow); // Óäàëÿåì èç ñïèñêà ñ àâòîóíè÷òîæåíèåì FTimerList.Delete(SelectedRow); // Óäàëÿåì èç ñïèñêà ñ àâòîóíè÷òîæåíèåì
end; end;
end; end;
// Óäàëÿåì ñòðîêó èç ñåòêè
RowIndex := sgTimers.Row; for I := SelectedRow to High(listTimer) - 1 do
if (RowIndex < 0) or (RowIndex > High(listTimer)) then listTimer[I] := listTimer[I + 1];
exit;
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for i := RowIndex to High(listTimer) do
listTimer[i] := listTimer[i + 1];
SetLength(listTimer, Length(listTimer) - 1); SetLength(listTimer, Length(listTimer) - 1);
UpdateGridFromArray; UpdateGridFromArray;
DB.SaveRecordArray<TListTimer>('listTimer', listTimer); DB.SaveRecordArray<TListTimer>('listTimer', listTimer);
@@ -181,13 +336,13 @@ end;
procedure TfrAutoActions.initTimers; procedure TfrAutoActions.initTimers;
var var
i: Integer; I: Integer;
TimerThread: TMyTimerThread; TimerThread: TMyTimerThread;
begin begin
for i := 0 to High(listTimer) do for I := 0 to High(listTimer) do
begin begin
TimerThread := TMyTimerThread.Create(listTimer[i].interval, TimerThread := TMyTimerThread.Create(listTimer[I].interval,
listTimer[i].mess, listTimer[i].o = 1); listTimer[I].mess, listTimer[I].o = 1);
TimerThread.OnTimerExec := OnMyTimerExec; TimerThread.OnTimerExec := OnMyTimerExec;
FTimerList.Add(TimerThread); FTimerList.Add(TimerThread);
end; end;
@@ -202,6 +357,29 @@ begin
ttw_IRS.sendMessage(txt); } ttw_IRS.sendMessage(txt); }
end; end;
procedure TfrAutoActions.sgBanWordsCellClick(const Column: TColumn;
const Row: Integer);
begin
edtBanWords.text := sgBanWords.Cells[0, Row];
end;
procedure TfrAutoActions.sgCounterCellClick(const Column: TColumn;
const Row: Integer);
begin
edtCounterName.text := sgCounter.Cells[0, Row];
edtCounterTrigger.text := sgCounter.Cells[1, Row];
edtCounterCount.text := sgCounter.Cells[2, Row];
end;
procedure TfrAutoActions.sgTimersCellClick(const Column: TColumn;
const Row: Integer);
begin
edtMessage.text := sgTimers.Cells[1, Row];
edtInterval.text := sgTimers.Cells[2, Row];
end;
procedure TfrAutoActions.sgTimersEditingDone(Sender: TObject; procedure TfrAutoActions.sgTimersEditingDone(Sender: TObject;
const ACol, ARow: Integer); const ACol, ARow: Integer);
var var
@@ -230,23 +408,50 @@ end;
procedure TfrAutoActions.UpdateGridFromArray; procedure TfrAutoActions.UpdateGridFromArray;
var var
i: Integer; I: Integer;
begin begin
sgTimers.BeginUpdate; sgTimers.BeginUpdate;
try try
sgTimers.RowCount := 0; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè) sgTimers.RowCount := 0; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè)
for i := 0 to High(listTimer) do for I := 0 to High(listTimer) do
begin begin
sgTimers.RowCount := i + 1; sgTimers.RowCount := I + 1;
sgTimers.Cells[0, i] := ifthen(listTimer[i].Enable = 1, 'True', 'False'); sgTimers.Cells[0, I] := ifthen(listTimer[I].Enable = 1, 'True', 'False');
sgTimers.Cells[1, i] := listTimer[i].mess; sgTimers.Cells[1, I] := listTimer[I].mess;
sgTimers.Cells[2, i] := IntToStr(listTimer[i].interval); sgTimers.Cells[2, I] := inttostr(listTimer[I].interval);
sgTimers.Cells[3, i] := ifthen(listTimer[i].o = 1, 'True', 'False'); sgTimers.Cells[3, I] := ifthen(listTimer[I].o = 1, 'True', 'False');
end; end;
finally finally
sgTimers.EndUpdate; sgTimers.EndUpdate;
end; end;
sgBanWords.BeginUpdate;
try
sgBanWords.RowCount := 0; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè)
for I := 0 to High(listBanWords) do
begin
sgBanWords.RowCount := I + 1;
sgBanWords.Cells[0, I] := listBanWords[I].regexp;
end;
finally
sgBanWords.EndUpdate;
end;
sgCounter.BeginUpdate;
try
sgCounter.RowCount := 0; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè)
for I := 0 to High(listCounters) do
begin
sgCounter.RowCount := I + 1;
sgCounter.Cells[0, I] := listCounters[I].counterName;
sgCounter.Cells[1, I] := listCounters[I].trigger;
sgCounter.Cells[2, I] := inttostr(listCounters[I].count);
sgCounter.Cells[3, I] := ifthen(listCounters[I].auto = 1, '1', '0');
end;
finally
sgCounter.EndUpdate;
end;
end; end;
end. end.
+14 -53
View File
@@ -283,10 +283,10 @@ object TTW_Bot: TTTW_Bot
Viewport.Height = 116.000000000000000000 Viewport.Height = 116.000000000000000000
end end
inherited btnRandomAdd: TButton inherited btnRandomAdd: TButton
TabOrder = 33 TabOrder = 32
end end
inherited btnRandomDel: TButton inherited btnRmGroup: TButton
TabOrder = 34 TabOrder = 33
end end
inherited Label4: TLabel inherited Label4: TLabel
TabOrder = 35 TabOrder = 35
@@ -450,8 +450,8 @@ object TTW_Bot: TTTW_Bot
inherited sgWebChats: TStringGrid inherited sgWebChats: TStringGrid
Size.Width = 970.000000000000000000 Size.Width = 970.000000000000000000
Size.Height = 282.000000000000000000 Size.Height = 282.000000000000000000
Viewport.Width = 966.000000000000000000 Viewport.Width = 970.000000000000000000
Viewport.Height = 257.000000000000000000 Viewport.Height = 282.000000000000000000
inherited StringColumn2: TStringColumn inherited StringColumn2: TStringColumn
Size.Width = 200.000000000000000000 Size.Width = 200.000000000000000000
end end
@@ -472,7 +472,7 @@ object TTW_Bot: TTTW_Bot
OnClick = frOBS1btnDeleteeChatClick OnClick = frOBS1btnDeleteeChatClick
end end
inherited Label1: TLabel inherited Label1: TLabel
TabOrder = 9 TabOrder = 10
end end
inherited btnCreateOBSNotify: TButton inherited btnCreateOBSNotify: TButton
Images = ImageList1 Images = ImageList1
@@ -601,36 +601,25 @@ object TTW_Bot: TTTW_Bot
Size.Height = 718.000000000000000000 Size.Height = 718.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
inherited GroupBox20: TGroupBox inherited GroupBox20: TGroupBox
inherited edtMessage: TEdit
TabOrder = 38
end
inherited edtInterval: TEdit
TabOrder = 39
end
inherited btnAddMessage: TButton inherited btnAddMessage: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 0 ImageIndex = 0
TabOrder = 40
end end
inherited btnRmMessage: TButton inherited btnRmMessage: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 4 ImageIndex = 4
TabOrder = 41
end end
inherited btnEditMessage: TButton inherited btnEditMessage: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 3 ImageIndex = 3
TabOrder = 42
end end
inherited btnNotifyTest: TButton inherited btnNotifyTest: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 25 ImageIndex = 25
TabOrder = 43
end end
inherited sgTimers: TStringGrid inherited sgTimers: TStringGrid
TabOrder = 44 Viewport.Width = 463.000000000000000000
Viewport.Width = 459.000000000000000000 Viewport.Height = 225.000000000000000000
Viewport.Height = 200.000000000000000000
inherited scTimerMessage: TStringColumn inherited scTimerMessage: TStringColumn
Size.Width = 301.000000000000000000 Size.Width = 301.000000000000000000
end end
@@ -640,28 +629,21 @@ object TTW_Bot: TTTW_Bot
end end
end end
inherited GroupBox23: TGroupBox inherited GroupBox23: TGroupBox
inherited edtBanWords: TEdit
TabOrder = 38
end
inherited btnBanWordsAdd: TButton inherited btnBanWordsAdd: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 0 ImageIndex = 0
TabOrder = 39
end end
inherited btnBanWordsEdt: TButton inherited btnBanWordsEdt: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 3 ImageIndex = 3
TabOrder = 40
end end
inherited btnBanWordsDel: TButton inherited btnBanWordsDel: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 4 ImageIndex = 4
TabOrder = 41
end end
inherited sgBanWords: TStringGrid inherited sgBanWords: TStringGrid
TabOrder = 42 Viewport.Width = 297.000000000000000000
Viewport.Width = 293.000000000000000000 Viewport.Height = 225.000000000000000000
Viewport.Height = 200.000000000000000000
inherited scRegEx: TStringColumn inherited scRegEx: TStringColumn
Size.Width = 265.000000000000000000 Size.Width = 265.000000000000000000
end end
@@ -672,47 +654,29 @@ object TTW_Bot: TTTW_Bot
Position.X = 217.000000000000000000 Position.X = 217.000000000000000000
Size.Width = 88.000000000000000000 Size.Width = 88.000000000000000000
Size.PlatformDefault = False Size.PlatformDefault = False
TabOrder = 43
end
inherited Label6: TLabel
TabOrder = 44
end end
inherited edtBanWordsCheck: TEdit inherited edtBanWordsCheck: TEdit
TabOrder = 45
Size.Width = 201.000000000000000000 Size.Width = 201.000000000000000000
end end
inherited Label7: TLabel
TabOrder = 46
end
inherited lBanWordsCheck: TLabel
TabOrder = 47
end
end end
inherited GroupBox17: TGroupBox inherited GroupBox17: TGroupBox
inherited edtCounterName: TEdit
TabOrder = 42
end
inherited edtCounterTrigger: TEdit
TabOrder = 39
end
inherited edtCounterCount: TEdit inherited edtCounterCount: TEdit
TabOrder = 38 TabOrder = 37
end end
inherited btnCounterAdd: TButton inherited btnCounterAdd: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 0 ImageIndex = 0
TabOrder = 40
end end
inherited btnCounterDelete: TButton inherited btnCounterDelete: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 4 ImageIndex = 4
TabOrder = 38
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 = 43
Text = '' Text = ''
end end
inherited btnCounterM: TButton inherited btnCounterM: TButton
@@ -720,18 +684,15 @@ 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 = 44
Text = '' Text = ''
end end
inherited btnCounterEdit: TButton inherited btnCounterEdit: TButton
Images = ImageList1 Images = ImageList1
ImageIndex = 3 ImageIndex = 3
TabOrder = 45
end end
inherited sgCounter: TStringGrid inherited sgCounter: TStringGrid
TabOrder = 46 Viewport.Width = 463.000000000000000000
Viewport.Width = 459.000000000000000000 Viewport.Height = 121.000000000000000000
Viewport.Height = 96.000000000000000000
inherited scCounterTrigger: TStringColumn inherited scCounterTrigger: TStringColumn
Size.Width = 236.000000000000000000 Size.Width = 236.000000000000000000
end end
+2
View File
@@ -423,6 +423,8 @@ var
procedure LoadAutoActionsGrids; procedure LoadAutoActionsGrids;
begin begin
db.LoadRecordArray<TListTimer>('listTimer', frAutoActions1.listTimer); db.LoadRecordArray<TListTimer>('listTimer', frAutoActions1.listTimer);
db.LoadRecordArray<TBanWord>('listBanWords', frAutoActions1.listBanWords);
db.LoadRecordArray<TCounter>('listCounters', frAutoActions1.listCounters);
frAutoActions1.initTimers; frAutoActions1.initTimers;
frAutoActions1.UpdateGridFromArray; frAutoActions1.UpdateGridFromArray;
end; end;
+15 -1
View File
@@ -2,7 +2,21 @@ unit uRecords;
interface interface
type TListTimer = record type
TCounter = record
counterName: string;
trigger: string;
count: integer;
auto: integer;
end;
type
TBanWord = record
regexp: string;
end;
type
TListTimer = record
Enable: integer; Enable: integer;
interval: integer; interval: integer;
o: integer; o: integer;
+4049
View File
File diff suppressed because it is too large Load Diff