_uf_start.pas

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.





../delphi71code/exosee-code-source/uf_start-pas..