unit _uf_start;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, ImgList, xocCButton,registry, xocLabel,
Menus, Buttons;
type
T_FXOC_START = class(TForm)
AA_0560_eGoSTART: TButton;
imgsSTART: TImageList;
eeHinterLabel: TLabel;
ppComsLIST: TPopupMenu;
AA_0416_nnnAddCom: TMenuItem;
AA_0417_DeleteSelected1: TMenuItem;
AA_0419_Properties1: TMenuItem;
AA_0418_UpdateComs: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
AA_0556_eeAddCom: TExoSeeLabel;
AA_0557_eDelCom: TExoSeeLabel;
AA_0558_eComProps: TExoSeeLabel;
AA_0559_eUpdateComs: TExoSeeLabel;
Image2: TImage;
AA_0555_startLabel4: TExoSeeLabel;
LvSTART: TListView;
Shape3: TShape;
Shape2: TShape;
Image3: TImage;
Shape1: TShape;
AA_0528_n_coms: TLabel;
procedure AA_0556_eeAddComClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AA_0557_eDelComClick(Sender: TObject);
procedure AA_0560_eGoSTARTClick(Sender: TObject);
procedure LvSTARTDblClick(Sender: TObject);
procedure AA_0559_eUpdateComsClick(Sender: TObject);
procedure LvSTARTSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure LvSTARTMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure LvSTARTInfoTip(Sender: TObject; Item: TListItem;
var InfoTip: String);
procedure AA_0558_eComPropsClick(Sender: TObject);
procedure LvSTARTChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
_FXOC_START: T_FXOC_START;
implementation
uses Unit1, _uc_funcs, _uc_refs_consts, _uc_refs_vars,
_uc_tektek_thread, _uf_ComProps, _uc_GuiLanG;
{$R *.DFM}
procedure T_FXOC_START.AA_0556_eeAddComClick(Sender: TObject);
var
s,val:string;
okb: Boolean;
v:tlistitem;
reg:tregistry;
begin
// http://musicafe.org/cs/xoc_com.php
// http://musicafe.org/cs/
okb:=InputQuery('ExoSee',___ccc__0063__AddCom, s);
s:=LowerCase(s);
if (okb) and (copy(s,1,7)='http://') and (s[length(s)]='/') and (_VV_COMMUNITIES_LIST.IndexOf(s)=-1) then
begin
v:=LvSTART.Items.Add;
v.Caption:=s;
v.SubItems.Add(s);
v.ImageIndex:=0;
v.sava_f:=s; // sava_f has whole com
v.pat_n:='100';
val:=SetStringBetween(val,'$µA','$µB',s);
val:=SetStringBetween(val,'$µE','$µF',v.pat_n);
Reg := TRegistry.Create;
try
if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true) then
begin
reg.WriteString(s,val);
Reg.CloseKey;
end;
finally Reg.Free; end;
_VV_COMMUNITIES_LIST.Add(s);
v.Selected:=true;
end
else
if okb then ShowMessage(___ccc__0064__InvalidComURL);
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.FormCreate(Sender: TObject);
var
reg:tregistry;
i:integer;
v:tlistitem;
s,ComRegCODE,nam:string;
begin
GoSetLANG(Self); //----- go loadLang --- if ok (1st here)
Caption:='ExoSee - '+___ccc__0400__Start;
AA_0528_n_coms.Caption:=format(AA_0528_n_coms.Caption,[_APPLICATION_MAX_START_COMS]);
Reg := TRegistry.Create;
try
Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true); // make new
Reg.GetValueNames(_VV_COMMUNITIES_LIST);
//------------------------------------
for i:=0 to _VV_COMMUNITIES_LIST.Count-1 do
begin
s:=_VV_COMMUNITIES_LIST[i];
if (copy(s,1,7)='http://') then
begin
v:=LvSTART.Items.Add;
v.Caption:=s;
v.ImageIndex:=0;
ComRegCODE:=reg.ReadString(s);
nam:=GimeStringBetween(ComRegCODE,'$µA','$µB');
if (nam<>'') then v.Caption:=nam;
v.sava_f:=_VV_COMMUNITIES_LIST[i]; // sava_f has whole com
v.uzr_id:=GimeStringBetween(ComRegCODE,'$µC','$µD'); //pass : Start Box list (uzr_id used as com-pass)
v.pat_n:=GimeStringBetween(ComRegCODE,'$µE','$µF'); //com 3-bools x[1]=allowWEBpage
if (length(v.pat_n)<>3) then v.pat_n:='100'; // default = allow homePage
end;
end;
Reg.CloseKey;
finally Reg.Free; end;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0557_eDelComClick(Sender: TObject);
var
s:string;
reg:tregistry;
i:integer;
begin
if LvSTART.Selected=nil then exit;
for i:=0 to LvSTART.Items.Count-1 do
if (LvSTART.Items[i].Selected) then
begin
s:=LvSTART.Items[i].sava_f;
if (MessageDlg(___ccc__0065__SureToDelSelCom+ret+ret+s,mtConfirmation,[mbyes,mbno],0)=mryes) then
begin;
_VV_COMMUNITIES_LIST.Delete(_VV_COMMUNITIES_LIST.IndexOf(s));
LvSTART.Items[i].Delete;
Reg := TRegistry.Create;
try
if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true) then
begin
reg.DeleteValue(s);
Reg.CloseKey;
end;
finally Reg.Free; end;
AA_0557_eDelComClick(nil);// restart proc, we break
break; // items index changed, go re-proc
end
else
LvSTART.Items[i].Selected:=false;
end;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0560_eGoSTARTClick(Sender: TObject);
var
p,i:integer;
StrComLINK:string;
StrComDOMAIN:string;
StrComPATHsek:string;
begin
if (LvSTART.SelCount=0) then exit;
// http://boooooo.org/cs/
for i:=0 to LvSTART.Items.Count-1 do
begin
if Not(LvSTART.Items[i].Checked) then Continue; // skip
StrComLINK :=LvSTART.Items[i].sava_f;
StrComDOMAIN :=StrComLINK;
Delete(StrComDOMAIN,1,7); // boooooo.org/cs/
StrComPATHsek :=StrComDOMAIN; // boooooo.org/cs/
p:=pos('/',StrComDOMAIN);
StrComDOMAIN:=copy(StrComDOMAIN,1,p-1); // boooooo.org
Delete(StrComPATHsek,1,p-1); // /cs/
if (Copy(StrComLINK,1,7)='http://') then
with TTekTekTHREAD.Create do
begin
_tek_Domain :=StrComDOMAIN;
_tek_port :=80; // fixed value !! (pro will do user custom http:port)
_tek_com_path_plus_Tik_File :=StrComPATHsek+_C_EXOSEE_WEB_TEK_FILE;
_tek_full_http_link_stok :=StrComLINK;
_tek_access_password :=LvSTART.Items[i].uzr_id;
_ZunderStartBoxITEM :=LvSTART.Items[i]; // to delete item if success
if _tek_access_password='' then _tek_access_password:='0000'; // for compatibilty with server/0.4
//ShowMessage('('+_tek_access_password+')');
Resume;
end;
end;
close;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTDblClick(Sender: TObject);
begin
if LvSTART.Selected=nil then exit;
LvSTART.Selected.Checked:=not LvSTART.Selected.Checked;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0559_eUpdateComsClick(Sender: TObject);
begin
GoFillActualWebPublicComs;
ShowMessage(___ccc__0066__ComsUpdateOk);
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
begin
Item.Checked:=Selected;
if (LvSTART.SelCount>(_APPLICATION_MAX_START_COMS-(_TV_NODE_OF_COMMUNITIES.Count))) then
begin
Item.Checked:=false;
Item.Selected:=false;
end;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
tm :TListItem;
begin
tm:=LvSTART.GetItemAt(x,y);
if tm=nil then exit;
tm.Selected:=tm.Checked;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String);
begin
InfoTip:=Item.Caption+ret+sep+ret+Item.sava_f;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0558_eComPropsClick(Sender: TObject);
begin
if LvSTART.Selected=nil then exit;
_FCOM_PROPS:=T_FCOM_PROPS.Create(Application);
_FCOM_PROPS.vTM:=LvSTART.Selected;
_FCOM_PROPS.ShowModal;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTChange(Sender: TObject; Item: TListItem; Change: TItemChange);
begin
AA_0560_eGoSTART.Enabled:=(LvSTART.SelCount>0);
end;
end.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, ImgList, xocCButton,registry, xocLabel,
Menus, Buttons;
type
T_FXOC_START = class(TForm)
AA_0560_eGoSTART: TButton;
imgsSTART: TImageList;
eeHinterLabel: TLabel;
ppComsLIST: TPopupMenu;
AA_0416_nnnAddCom: TMenuItem;
AA_0417_DeleteSelected1: TMenuItem;
AA_0419_Properties1: TMenuItem;
AA_0418_UpdateComs: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
AA_0556_eeAddCom: TExoSeeLabel;
AA_0557_eDelCom: TExoSeeLabel;
AA_0558_eComProps: TExoSeeLabel;
AA_0559_eUpdateComs: TExoSeeLabel;
Image2: TImage;
AA_0555_startLabel4: TExoSeeLabel;
LvSTART: TListView;
Shape3: TShape;
Shape2: TShape;
Image3: TImage;
Shape1: TShape;
AA_0528_n_coms: TLabel;
procedure AA_0556_eeAddComClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AA_0557_eDelComClick(Sender: TObject);
procedure AA_0560_eGoSTARTClick(Sender: TObject);
procedure LvSTARTDblClick(Sender: TObject);
procedure AA_0559_eUpdateComsClick(Sender: TObject);
procedure LvSTARTSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure LvSTARTMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure LvSTARTInfoTip(Sender: TObject; Item: TListItem;
var InfoTip: String);
procedure AA_0558_eComPropsClick(Sender: TObject);
procedure LvSTARTChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
_FXOC_START: T_FXOC_START;
implementation
uses Unit1, _uc_funcs, _uc_refs_consts, _uc_refs_vars,
_uc_tektek_thread, _uf_ComProps, _uc_GuiLanG;
{$R *.DFM}
procedure T_FXOC_START.AA_0556_eeAddComClick(Sender: TObject);
var
s,val:string;
okb: Boolean;
v:tlistitem;
reg:tregistry;
begin
// http://musicafe.org/cs/xoc_com.php
// http://musicafe.org/cs/
okb:=InputQuery('ExoSee',___ccc__0063__AddCom, s);
s:=LowerCase(s);
if (okb) and (copy(s,1,7)='http://') and (s[length(s)]='/') and (_VV_COMMUNITIES_LIST.IndexOf(s)=-1) then
begin
v:=LvSTART.Items.Add;
v.Caption:=s;
v.SubItems.Add(s);
v.ImageIndex:=0;
v.sava_f:=s; // sava_f has whole com
v.pat_n:='100';
val:=SetStringBetween(val,'$µA','$µB',s);
val:=SetStringBetween(val,'$µE','$µF',v.pat_n);
Reg := TRegistry.Create;
try
if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true) then
begin
reg.WriteString(s,val);
Reg.CloseKey;
end;
finally Reg.Free; end;
_VV_COMMUNITIES_LIST.Add(s);
v.Selected:=true;
end
else
if okb then ShowMessage(___ccc__0064__InvalidComURL);
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.FormCreate(Sender: TObject);
var
reg:tregistry;
i:integer;
v:tlistitem;
s,ComRegCODE,nam:string;
begin
GoSetLANG(Self); //----- go loadLang --- if ok (1st here)
Caption:='ExoSee - '+___ccc__0400__Start;
AA_0528_n_coms.Caption:=format(AA_0528_n_coms.Caption,[_APPLICATION_MAX_START_COMS]);
Reg := TRegistry.Create;
try
Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true); // make new
Reg.GetValueNames(_VV_COMMUNITIES_LIST);
//------------------------------------
for i:=0 to _VV_COMMUNITIES_LIST.Count-1 do
begin
s:=_VV_COMMUNITIES_LIST[i];
if (copy(s,1,7)='http://') then
begin
v:=LvSTART.Items.Add;
v.Caption:=s;
v.ImageIndex:=0;
ComRegCODE:=reg.ReadString(s);
nam:=GimeStringBetween(ComRegCODE,'$µA','$µB');
if (nam<>'') then v.Caption:=nam;
v.sava_f:=_VV_COMMUNITIES_LIST[i]; // sava_f has whole com
v.uzr_id:=GimeStringBetween(ComRegCODE,'$µC','$µD'); //pass : Start Box list (uzr_id used as com-pass)
v.pat_n:=GimeStringBetween(ComRegCODE,'$µE','$µF'); //com 3-bools x[1]=allowWEBpage
if (length(v.pat_n)<>3) then v.pat_n:='100'; // default = allow homePage
end;
end;
Reg.CloseKey;
finally Reg.Free; end;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0557_eDelComClick(Sender: TObject);
var
s:string;
reg:tregistry;
i:integer;
begin
if LvSTART.Selected=nil then exit;
for i:=0 to LvSTART.Items.Count-1 do
if (LvSTART.Items[i].Selected) then
begin
s:=LvSTART.Items[i].sava_f;
if (MessageDlg(___ccc__0065__SureToDelSelCom+ret+ret+s,mtConfirmation,[mbyes,mbno],0)=mryes) then
begin;
_VV_COMMUNITIES_LIST.Delete(_VV_COMMUNITIES_LIST.IndexOf(s));
LvSTART.Items[i].Delete;
Reg := TRegistry.Create;
try
if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true) then
begin
reg.DeleteValue(s);
Reg.CloseKey;
end;
finally Reg.Free; end;
AA_0557_eDelComClick(nil);// restart proc, we break
break; // items index changed, go re-proc
end
else
LvSTART.Items[i].Selected:=false;
end;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0560_eGoSTARTClick(Sender: TObject);
var
p,i:integer;
StrComLINK:string;
StrComDOMAIN:string;
StrComPATHsek:string;
begin
if (LvSTART.SelCount=0) then exit;
// http://boooooo.org/cs/
for i:=0 to LvSTART.Items.Count-1 do
begin
if Not(LvSTART.Items[i].Checked) then Continue; // skip
StrComLINK :=LvSTART.Items[i].sava_f;
StrComDOMAIN :=StrComLINK;
Delete(StrComDOMAIN,1,7); // boooooo.org/cs/
StrComPATHsek :=StrComDOMAIN; // boooooo.org/cs/
p:=pos('/',StrComDOMAIN);
StrComDOMAIN:=copy(StrComDOMAIN,1,p-1); // boooooo.org
Delete(StrComPATHsek,1,p-1); // /cs/
if (Copy(StrComLINK,1,7)='http://') then
with TTekTekTHREAD.Create do
begin
_tek_Domain :=StrComDOMAIN;
_tek_port :=80; // fixed value !! (pro will do user custom http:port)
_tek_com_path_plus_Tik_File :=StrComPATHsek+_C_EXOSEE_WEB_TEK_FILE;
_tek_full_http_link_stok :=StrComLINK;
_tek_access_password :=LvSTART.Items[i].uzr_id;
_ZunderStartBoxITEM :=LvSTART.Items[i]; // to delete item if success
if _tek_access_password='' then _tek_access_password:='0000'; // for compatibilty with server/0.4
//ShowMessage('('+_tek_access_password+')');
Resume;
end;
end;
close;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTDblClick(Sender: TObject);
begin
if LvSTART.Selected=nil then exit;
LvSTART.Selected.Checked:=not LvSTART.Selected.Checked;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0559_eUpdateComsClick(Sender: TObject);
begin
GoFillActualWebPublicComs;
ShowMessage(___ccc__0066__ComsUpdateOk);
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
begin
Item.Checked:=Selected;
if (LvSTART.SelCount>(_APPLICATION_MAX_START_COMS-(_TV_NODE_OF_COMMUNITIES.Count))) then
begin
Item.Checked:=false;
Item.Selected:=false;
end;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
tm :TListItem;
begin
tm:=LvSTART.GetItemAt(x,y);
if tm=nil then exit;
tm.Selected:=tm.Checked;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String);
begin
InfoTip:=Item.Caption+ret+sep+ret+Item.sava_f;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.AA_0558_eComPropsClick(Sender: TObject);
begin
if LvSTART.Selected=nil then exit;
_FCOM_PROPS:=T_FCOM_PROPS.Create(Application);
_FCOM_PROPS.vTM:=LvSTART.Selected;
_FCOM_PROPS.ShowModal;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_START.LvSTARTChange(Sender: TObject; Item: TListItem; Change: TItemChange);
begin
AA_0560_eGoSTART.Enabled:=(LvSTART.SelCount>0);
end;
end.