248 lines
6.8 KiB
ObjectPascal
248 lines
6.8 KiB
ObjectPascal
unit uCreateNotify;
|
|
|
|
interface
|
|
|
|
uses
|
|
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
|
|
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, fFontSettings,
|
|
fColorSettings, FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation,
|
|
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Colors,uRecords;
|
|
|
|
type
|
|
TfCreateNotify = class(TForm)
|
|
btnESImageOpen: TButton;
|
|
btnESSoundOpen: TButton;
|
|
edtESImage: TEdit;
|
|
edtESSound: TEdit;
|
|
edtESTitle: TEdit;
|
|
Label58: TLabel;
|
|
Label68: TLabel;
|
|
frColorSettings1: TfrColorSettings;
|
|
frFontSettings2: TfrFontSettings;
|
|
GroupBox10: TGroupBox;
|
|
Label38: TLabel;
|
|
sbTimeMsg: TSpinBox;
|
|
Label39: TLabel;
|
|
sbWebServerPort: TSpinBox;
|
|
Label2: TLabel;
|
|
cbEventsType: TComboBox;
|
|
Label3: TLabel;
|
|
edtIF: TEdit;
|
|
btnCreateEvent: TButton;
|
|
btnESTest: TButton;
|
|
GroupBox1: TGroupBox;
|
|
GroupBox2: TGroupBox;
|
|
frFontSettings3: TfrFontSettings;
|
|
edtESMessage: TEdit;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure btnCreateEventClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
function GetColorFromColorPanel(aColor: TAlphaColor): string;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
fCreateNotify: TfCreateNotify;
|
|
|
|
implementation
|
|
|
|
uses uGeneral;
|
|
|
|
{$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);
|
|
var
|
|
i: Integer;
|
|
SavedColor: TAlphaColor;
|
|
c: TComponent;
|
|
ColorStr: string;
|
|
begin
|
|
for i := 0 to frColorSettings1.ComponentCount - 1 do
|
|
begin
|
|
c := frColorSettings1.Components[i];
|
|
if c is TComboBox then
|
|
begin
|
|
TComboBox(c).ItemIndex :=
|
|
strtoint(DB.ReadSetting(TComboBox(c).Name, '0'));
|
|
end;
|
|
if c is TColorComboBox then
|
|
begin
|
|
TColorComboBox(c).ItemIndex :=
|
|
strtoint(DB.ReadSetting(TComboBox(c).Name, '147'));
|
|
end;
|
|
if c is TSpinBox then
|
|
begin
|
|
TSpinBox(c).text := DB.ReadSetting(TSpinBox(c).Name, '1');
|
|
end;
|
|
if c is TColorPanel then
|
|
begin
|
|
ColorStr := DB.ReadSetting(TColorPanel(c).Name, 'FF000000');
|
|
if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then
|
|
TColorPanel(c).Color := SavedColor
|
|
else
|
|
TColorPanel(c).Color := TAlphaColorRec.Black;
|
|
end;
|
|
if c is TEdit then
|
|
begin
|
|
if TEdit(c).Name <> 'edtPortServer' then
|
|
TEdit(c).text := DB.ReadSetting(TEdit(c).Name, '0');
|
|
end;
|
|
if c is TCheckBox then
|
|
begin
|
|
TCheckBox(c).IsChecked := DB.ReadSetting(TCheckBox(c).Name) = '1';
|
|
end;
|
|
end;
|
|
for i := 0 to frFontSettings2.ComponentCount - 1 do
|
|
begin
|
|
c := frFontSettings2.Components[i];
|
|
if c is TComboBox then
|
|
begin
|
|
TComboBox(c).ItemIndex :=
|
|
strtoint(DB.ReadSetting(TComboBox(c).Name, '0'));
|
|
end;
|
|
if c is TColorComboBox then
|
|
begin
|
|
TColorComboBox(c).ItemIndex :=
|
|
strtoint(DB.ReadSetting(TComboBox(c).Name, '147'));
|
|
end;
|
|
if c is TSpinBox then
|
|
begin
|
|
TSpinBox(c).text := DB.ReadSetting(TSpinBox(c).Name, '1');
|
|
end;
|
|
if c is TColorPanel then
|
|
begin
|
|
ColorStr := DB.ReadSetting(TColorPanel(c).Name, 'FF000000');
|
|
if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then
|
|
TColorPanel(c).Color := SavedColor
|
|
else
|
|
TColorPanel(c).Color := TAlphaColorRec.Black;
|
|
end;
|
|
if c is TEdit then
|
|
begin
|
|
if TEdit(c).Name <> 'edtPortServer' then
|
|
TEdit(c).text := DB.ReadSetting(TEdit(c).Name, '0');
|
|
end;
|
|
if c is TCheckBox then
|
|
begin
|
|
TCheckBox(c).IsChecked := DB.ReadSetting(TCheckBox(c).Name) = '1';
|
|
end;
|
|
end;
|
|
|
|
for i := 0 to frFontSettings3.ComponentCount - 1 do
|
|
begin
|
|
c := frFontSettings3.Components[i];
|
|
if c is TComboBox then
|
|
begin
|
|
TComboBox(c).ItemIndex :=
|
|
strtoint(DB.ReadSetting(TComboBox(c).Name, '0'));
|
|
end;
|
|
if c is TColorComboBox then
|
|
begin
|
|
TColorComboBox(c).ItemIndex :=
|
|
strtoint(DB.ReadSetting(TComboBox(c).Name, '147'));
|
|
end;
|
|
if c is TSpinBox then
|
|
begin
|
|
TSpinBox(c).text := DB.ReadSetting(TSpinBox(c).Name, '1');
|
|
end;
|
|
if c is TColorPanel then
|
|
begin
|
|
ColorStr := DB.ReadSetting(TColorPanel(c).Name, 'FF000000');
|
|
if TryStrToUInt('$' + ColorStr, Cardinal(SavedColor)) then
|
|
TColorPanel(c).Color := SavedColor
|
|
else
|
|
TColorPanel(c).Color := TAlphaColorRec.Black;
|
|
end;
|
|
if c is TEdit then
|
|
begin
|
|
if TEdit(c).Name <> 'edtPortServer' then
|
|
TEdit(c).text := DB.ReadSetting(TEdit(c).Name, '0');
|
|
end;
|
|
if c is TCheckBox then
|
|
begin
|
|
TCheckBox(c).IsChecked := DB.ReadSetting(TCheckBox(c).Name) = '1';
|
|
end;
|
|
end;
|
|
var
|
|
n := 1;
|
|
var
|
|
cDir := myconst.fontsPath; // Èñêàòü â ïàïêå ñ ïðîãðàììîé
|
|
var
|
|
FileName := '*.*'; // Èùåì âñå ôàéëû
|
|
ChDir(cDir); // âîéòè â êàòàëîã
|
|
var
|
|
SearchRec: TSearchRec;
|
|
if FindFirst(FileName, faArchive, SearchRec) = 0 then
|
|
repeat
|
|
if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then
|
|
begin
|
|
frFontSettings2.cbFontStyleDefault.Items.Add(SearchRec.Name);
|
|
frFontSettings3.cbFontStyleDefault.Items.Add(SearchRec.Name);
|
|
|
|
Inc(n);
|
|
end;
|
|
until FindNext(SearchRec) <> 0;
|
|
ChDir('..');
|
|
|
|
|
|
end;
|
|
|
|
end.
|