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