_uf_xoc_model.pas

unit _uf_xoc_model;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, xocButton, ComCtrls, xocLabel, ExtCtrls, ScktComp, Menus, ShellApi,
  ImgList;

type
  T_FrameXOC = class(TFrame)
    Panel6: TPanel;
    Image5: TImage;
    Shape1: TShape;
    Shape2: TShape;
    xxComTitle: TExoSeeLabel;
    Shape3: TShape;
    Shape4: TShape;
    Image6: TImage;
    AA_0565_eComLINKS: TLabel;
    ComLogoImage: TImage;
    xxComMsg: TLabel;
    AA_0514_LVxoc: TListView;
    edXocInput: TEdit;
    AA_0561_btn_search: TButton;
    AA_0563_AddXoc: TxocButton;
    btn_next: TButton;
    btn_Back: TButton;
    AA_0510_CmCategs: TComboBox;
    AA_0562_BtnHomeBrowser: TButton;
    AA_0566_Label1: TLabel;
    eComRECORDS: TLabel;
    StatPaneL: TPanel;
    ccConkTor: TClientSocket;
    ppXocList: TPopupMenu;
    AA_0423_mn1: TMenuItem;
    N1: TMenuItem;
    AA_0424_mn2: TMenuItem;
    AA_0506_eComRULES: TLabel;
    Label5: TLabel;
    eComFORUM: TLabel;
    _images20xoc: TImageList;
    AA_0564_Label2: TLabel;
    eComUSER: TLabel;
    TM_COM_ICONNER: TTimer;
    AA_0425_mnnADMIN: TMenuItem;
    AA_0428_mnGenerator1: TMenuItem;
    AA_0426_mnMODER: TMenuItem;
    AA_0428_mnGenerator2: TMenuItem;
    N2: TMenuItem;
    AA_0429_AddXOC1: TMenuItem;
    N3: TMenuItem;
    AA_0427_DelcomXOC1: TMenuItem;
    N4: TMenuItem;
    ppLOGO: TPopupMenu;
    UpdateCommunityLOGO1: TMenuItem;
    TmGoRefresh: TTimer;
    TmGoTriggerDL: TTimer;
    procedure AA_0514_LVxocCustomDrawItem(Sender: TCustomListView; Item: TListItem;
      State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure AA_0563_AddXocClick(Sender: TObject);
    procedure GoGoClick(Sender: TObject);
    procedure ccConkTorConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure ccConkTorError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ccConkTorRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure ccConkTorDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure AA_0514_LVxocInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String);
    procedure AA_0423_mn1Click(Sender: TObject);
    procedure ppXocListPopup(Sender: TObject);
    procedure AA_0562_BtnHomeBrowserClick(Sender: TObject);
    procedure AA_0561_btn_searchClick(Sender: TObject);
    procedure AA_0424_mn2Click(Sender: TObject);
    procedure AA_0506_eComRULESClick(Sender: TObject);
    procedure btn_nextClick(Sender: TObject);
    procedure btn_BackClick(Sender: TObject);
    procedure edXocInputKeyPress(Sender: TObject; var Key: Char);
    procedure TM_COM_ICONNERTimer(Sender: TObject);
    procedure UpdateCommunityLOGO1Click(Sender: TObject);
    procedure AA_0427_DelcomXOC1Click(Sender: TObject);
    procedure AA_0428_mnGenerator1Click(Sender: TObject);
    procedure TmGoRefreshTimer(Sender: TObject);
    procedure TmGoTriggerDLTimer(Sender: TObject);
  private
    sDynamicParams,sTemp : String;
    iSortPOZ : Integer;
    _ZunderIsDeleter: Boolean;
  public
    FrameOwnComNODA : TTreeNode;
    USER_LOCAL_IS_ADMINISTRATOR : Boolean;
    USER_LOCAL_IS_MODERATOR     : Boolean;
    USER_LOCAL_IS_REGISTRED     : Boolean;
  end;



implementation

uses Unit1, _uf_add_xoc, _uc_funcs, _uc_refs_consts, _uf_xoc_item_info,
  _uc_ip_codecs, _uf_xoc_downloader, _uc_refs_vars, _uc_com_logo_thread, _uf_xoc_html_gen,
  _uc_GuiLanG;

{$R *.DFM}

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0514_LVxocCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin

  with Sender.Canvas.Brush do
  begin
    if odd(Item.Index) then Color:=$00F7F5F4 else Color:=clWindow;
  end;

end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0563_AddXocClick(Sender: TObject);
var
_FAddXoc: T_FAddXoc;
begin


if (not (USER_LOCAL_IS_ADMINISTRATOR or USER_LOCAL_IS_ADMINISTRATOR)) and
   (FrameOwnComNODA._EXO_NODE_20BOOLS[3]<>'1') then  // xoc-upload disabled
begin
ShowMessage(FrameOwnComNODA.Text+' '+___ccc__0074__ComDisabledXoc+ret+
            ___ccc__0075__OnlyMemebersCanAdd+ret+ret+
            ___ccc__0076__SeeComRules);
exit;
end;

_FAddXoc:=T_FAddXoc.Create(Application);
_FAddXoc.vZunderComNODA:=FrameOwnComNODA;
_FAddXoc.ComImageo.Picture.Icon:=ComLogoImage.Picture.Icon;
_FAddXoc.ShowModal;

end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.GoGoClick(Sender: TObject);
begin


if (ccConkTor.Active) then
begin
ShowMessage(___ccc__0077__ConnexAreadyInUse);
exit;
end;



StatPaneL.Visible:=true;
StatPaneL.Caption:=___ccc__0045__Connecting;

if not(_ZunderIsDeleter) then _clear_faster(AA_0514_LVxoc); // clear lv

AA_0514_LVxoc.Update;
Screen.Cursor:=crHourGlass;
Application.ProcessMessages;


ccConkTor.Host_name         :=FrameOwnComNODA._EXO_NODE_USER_IP;
ccConkTor.Port              :=FrameOwnComNODA._EXO_NODE_eSERIAL; // auto set in login
ccConkTor.Socket._StokenStr :='';  // free data if any
ccConkTor.Tag               :=0; // data length
ccConkTor.Active            :=true;

end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.ccConkTorConnect(Sender: TObject; Socket: TCustomWinSocket);
var
ss:string;
begin

StatPaneL.Caption:=___ccc__0008__Connected;

(*

F_FILE_NAME,
F_FILE_SIZE,
F_FILE_URL,
F_FILE_DESCRIPTION,
F_FILE_ADDED_BY_USER_ID,
F_FILE_ADDED_BY_USER_NICKNAME,

*)






        ss:='GET '+FrameOwnComNODA._EXO_NODE_PATH_TX+'?'+sDynamicParams+' HTTP/1.0'+ret+
            'User-Agent: '+_C_EXOSEE_WEB_TEK_USER_MERDA+ret+
            'Host: '+FrameOwnComNODA._EXO_NODE_USER_IP+ret+
            'Connection: close'+ret+ret;


Socket.SendText(ss);

end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.ccConkTorError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode:=0;
Socket.Close; // to  trigger OnDisconnect
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.ccConkTorRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket._StokenStr:=Socket._StokenStr+Socket.ReceiveText;
StatPaneL.Caption:=___ccc__0078__ReceivingData;
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.ccConkTorDisconnect(Sender: TObject; Socket: TCustomWinSocket);
var
_StrDATA,ss:String;
i,p,p1,p2:integer;
XX:TStringList;
itm : TListItem;
begin

StatPaneL.Caption:='.';
Screen.Cursor:=crDefault;

_StrDATA:=Socket._StokenStr;

//_DoDebugLOG('xocDB_LOG:'+ret+_StrDATA);


if (_StrDATA='') then
begin
ShowMessage(___ccc__0079__ConnectionError+ret+ret+___ccc__0080__CheckYourInternet);
exit;
end;


if(USER_LOCAL_IS_ADMINISTRATOR or USER_LOCAL_IS_MODERATOR) then
begin
AA_0514_LVxoc.Columns[3].MaxWidth:=32;
AA_0514_LVxoc.Columns[3].MinWidth:=32;
AA_0514_LVxoc.Columns[3].Width:=32;
end
else
begin
AA_0514_LVxoc.Columns[3].MaxWidth:=0;
AA_0514_LVxoc.Columns[3].MinWidth:=0;
AA_0514_LVxoc.Columns[3].Width:=0;
end;






if (_ZunderIsDeleter) then
begin
_ZunderIsDeleter:=false;
StatPaneL.Visible:=false;

   if pos('_SC_614',_StrDATA)>0 then
   begin
   if (pos('°°1',_StrDATA)>0)
   then ShowMessage(___ccc__0081__XocDeleted)
   else ShowMessage('XOC-Link script error OnDelete !');

   sDynamicParams:=sTemp; // restore old param as it was
   TmGoRefresh.Interval:=400;
   TmGoRefresh.Enabled:=true; // trigger timer refresh list
   end;


exit;   // exit;
end;



   if pos('_SC_464',_StrDATA)>0 then
   begin

          p1:=pos('[(?',_StrDATA);
          p2:=pos('?)]',_StrDATA);
          if (Not (p1>0)and(p2>p1) )then
          begin
          ShowMessage('DataBuffer error!');
          exit;
          end;


      XX:=TStringList.Create;
      AA_0514_LVxoc.Items.BeginUpdate;
      Try
      XX.Text:=Copy(_StrDATA,p1+3,(p2-(p1+3)));
      XX.Text:=StringReplace(XX.Text,'£^',ret,[rfReplaceAll]);
      //ShowMessage(XX.Text);
      XX.Sort;
      Application.ProcessMessages;

       for i := 0  to XX.Count-1 do
       begin
       if (XX[i]<>'') then begin
                          
                         ss:=XX[i];
                         //ShowMessage(ss); continue;

                         itm:=AA_0514_LVxoc.Items.Add;
                         itm.ImageIndex:=0;

                         p:=pos('°0',ss)+2;
                         itm.Caption := Copy(ss,p,pos('°1',ss)-p);    // FileName

                         p:=pos('°1',ss)+2;
                         itm.itm_int1:=StrToInt64Def(Copy(ss,p,pos('°2',ss)-p),0);    // xoc db ID

                         p:=pos('°2',ss)+2;
                         itm.SubItems.Add(Copy(ss,p,pos('°3',ss)-p));    // FileSize

                         p:=pos('°9',ss)+2;
                         itm._Type:=Copy(ss,p,pos('°A',ss)-p)[1];
                         itm.SubItems.Add(GetCategNAME(StrToIntDef(itm._Type,-1)));    // Category



                         //----------info ini item------------------
                         p:=pos('°3',ss)+2;
                         itm.itm_str1:= Copy(ss,p,pos('°4',ss)-p);    // URL data Encoded

                         p:=pos('°4',ss)+2;
                         itm.itm_str2:= Copy(ss,p,pos('°5',ss)-p);    // Description

                         p:=pos('°5',ss)+2;
                         itm.uzr_id:= Copy(ss,p,pos('°6',ss)-p);    // user sender ID

                         p:=pos('°6',ss)+2;
                         itm.dl_path:= Copy(ss,p,pos('°7',ss)-p);    // user sender Nikname

                         p:=pos('°7',ss)+2;
                         itm.sava_f:= Copy(ss,p,pos('°8',ss)-p);    // File DateTime added
                        
                         p:=pos('°8',ss)+2;
                         itm.sava_f_thr:= Copy(ss,p,pos('°9',ss)-p);    // File #-DOWNLOADS
                         if(USER_LOCAL_IS_ADMINISTRATOR or USER_LOCAL_IS_MODERATOR) then
                         itm.SubItems.Add(itm.sava_f_thr);



                         p:=pos('°B',ss)+2;
                         itm.pat_n:=Copy(ss,p,pos('°C',ss)-p);  // is private-XOC
                         if (itm.pat_n='') then itm.pat_n[1]:='0';

                         if (itm.pat_n[1]='1') then begin
                                         if (USER_LOCAL_IS_REGISTRED) then itm.ImageIndex:=2 else itm.ImageIndex:=1;
                                         end;


                         StatPaneL.Caption:=itm.Caption;
                         StatPaneL.Update;
                         Application.ProcessMessages;
                         end;




       end;

      Finally
      AA_0514_LVxoc.Items.EndUpdate;
      XX.Free;
      btn_next.Enabled:=(AA_0514_LVxoc.Items.Count>=80);
      btn_Back.Enabled:=(iSortPOZ>0);
      end;

          //-------- db records count
          p1:=pos('(((',_StrDATA);
          p2:=pos(')))',_StrDATA);
          if (Not (p1>0)and(p2>p1) )then ShowMessage('DataBuffer_Error_2!')
          else eComRECORDS.Caption:=Copy(_StrDATA,p1+3,(p2-(p1+3)));


   StatPaneL.Caption:='.';
   StatPaneL.Visible:=false;
   end
   else
   begin
   ShowMessage('Server data error');

   end;




end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0514_LVxocInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String);
begin
(*
if (_FXOC_MAIN.izDebugerON.Checked) then
InfoTip:= Item.Caption+ret+
          Item.itm_str1+ret+
          Item.itm_str2+ret+
          Item.uzr_id+ret+
          Item.dl_path+ret+
          Item.sava_f+ret+
          Item.sava_f_thr+ret+
          Item._Type+ret+
          IntToStr(Item.itm_int1);
*)
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0423_mn1Click(Sender: TObject);
var
_FXocITEM_INFO: T_FXocITEM_INFO;
begin

if (AA_0514_LVxoc.Selected=nil) then exit;

_FXocITEM_INFO:=T_FXocITEM_INFO.Create(Application);
_FXocITEM_INFO._ComNODA:=FrameOwnComNODA;
_FXocITEM_INFO._XocItem:=AA_0514_LVxoc.Selected;
_FXocITEM_INFO.ThexocFRAME:=Self;
_FXocITEM_INFO.ShowModal;
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.ppXocListPopup(Sender: TObject);
begin

AA_0423_mn1.Enabled:=(AA_0514_LVxoc.Selected<>nil);
AA_0424_mn2.Enabled:=AA_0423_mn1.Enabled;

AA_0425_mnnADMIN.Enabled:=(AA_0514_LVxoc.Items.Count>0);
AA_0426_mnMODER.Enabled:=AA_0425_mnnADMIN.Enabled;


AA_0425_mnnADMIN.Visible:=USER_LOCAL_IS_ADMINISTRATOR;
if (not USER_LOCAL_IS_ADMINISTRATOR) then
AA_0426_mnMODER.Visible:=USER_LOCAL_IS_MODERATOR;

end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0562_BtnHomeBrowserClick(Sender: TObject);
begin

iSortPOZ:=0;

sDynamicParams:='e=_T4&_CTG='+IntToStr(AA_0510_CmCategs.ItemIndex)+'&_SRT='+IntToStr(iSortPOZ);
GoGoClick(nil);
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0561_btn_searchClick(Sender: TObject);
begin

iSortPOZ:=0;


if (Length(edXocInput.Text)<3) then
begin
ShowMessage(___ccc__0082__3CharsAtMinimum);
exit;
end;

sDynamicParams:='e=_T4&_SRC='+TIpCodecs.HTTPEncode(edXocInput.Text)+'&_CTG='+IntToStr(AA_0510_CmCategs.ItemIndex)+'&_SRT='+IntToStr(iSortPOZ);
GoGoClick(nil);
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0424_mn2Click(Sender: TObject);
var
_FXOC_DOWNLOADER: T_FXOC_DOWNLOADER;
//sDownloadURL:string;
s,z:string;
begin


if (not (USER_LOCAL_IS_ADMINISTRATOR or USER_LOCAL_IS_MODERATOR)) and
   (FrameOwnComNODA._EXO_NODE_20BOOLS[2]<>'1') then  // xoc-Download disabled
begin
ShowMessage(FrameOwnComNODA.Text+' '+___ccc__0083__ComDisabledDL+ret+
            ___ccc__0084__OnlyMemebersCanDL+ret+ret+
            ___ccc__0076__SeeComRules);
exit;
end;



if (AA_0514_LVxoc.Selected.ImageIndex=1) then  // image red = Private-XOC ( already verified )
begin
ShowMessage(___ccc__0085__SorryXocIsPrivate+ret+___ccc__0086__OnlyMembersHasAccess+ret+ret+
            ___ccc__0076__SeeComRules);
exit;
end;






        //------------------always_contact_server-to update_DLs-#------
        // xoc build
        s:=IntToHex(AA_0514_LVxoc.Selected.itm_int1+687,0);
        z:=LowerCase(FrameOwnComNODA._EXO_NODE_COM_IDX)+'FC7A82EC'+s+'/'+AA_0514_LVxoc.Selected.Caption;
        z:=StringReplace(z,'http://','xoc://',[]);


        _FXOC_DOWNLOADER:=T_FXOC_DOWNLOADER.Create(Application);
        _FXOC_DOWNLOADER.__LOCAL_DOWNLOAD_FOLDER:=_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER;
        _FXOC_DOWNLOADER._ZUNDER_IS_WEB_XOC_LINK:=true;

        _FXOC_DOWNLOADER.pnLwebxocLINK.Left     :=0;
        _FXOC_DOWNLOADER.pnLwebxocLINK.Top      :=65;
        _FXOC_DOWNLOADER.pnLwebxocLINK.Visible  :=true;
        _FXOC_DOWNLOADER.edXocini.Text           :=z;

        _FXOC_DOWNLOADER.Show;  // normal show as will be in tasbar

        //------------------------------------------------------------




(*
_FXOC_DOWNLOADER:=T_FXOC_DOWNLOADER.Create(Application);
_FXOC_DOWNLOADER.__FILE_NAME:=LVxoc.Selected.Caption;
_FXOC_DOWNLOADER.__FILE_SIZE:=LVxoc.Selected.SubItems[0];
_FXOC_DOWNLOADER.__LOCAL_DOWNLOAD_FOLDER:=_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER;

// the real url Decoded now !
sDownloadURL:=TIpCodecs._DeCodeTheHEXStringV2(LVxoc.Selected.itm_str1);
_FXOC_DOWNLOADER.__REAL_FULL_DOWNLOAD_URL:=sDownloadURL;

_FXOC_DOWNLOADER.Show;  // normal show as will be in tasbar
*)


end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0506_eComRULESClick(Sender: TObject);
begin
if (TLabel(Sender).Hint<>'') then ShellExecute(0,'open',pchar(TLabel(Sender).Hint),nil,nil,SW_SHOWNORMAL);
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.btn_nextClick(Sender: TObject);
var
s:string;
p:integer;
begin

inc(iSortPOZ,80);

// sDynamicParams:='e=_T4&_CTG='+IntToStr(CmXocCategs.ItemIndex)+'&_SRT='+IntToStr(iSortPOZ);
p:=pos('&_SRT=',sDynamicParams);
s:=copy(sDynamicParams,1,p-1);

// overrride sDynamicParams
sDynamicParams:=s+'&_SRT='+IntToStr(iSortPOZ);
GoGoClick(nil);


end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.btn_BackClick(Sender: TObject);
var
s:string;
p:integer;
begin

Dec(iSortPOZ,80);

// sDynamicParams:='e=_T4&_CTG='+IntToStr(CmXocCategs.ItemIndex)+'&_SRT='+IntToStr(iSortPOZ);
p:=pos('&_SRT=',sDynamicParams);
s:=copy(sDynamicParams,1,p-1);

// overrride sDynamicParams
sDynamicParams:=s+'&_SRT='+IntToStr(iSortPOZ);
GoGoClick(nil);

end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.edXocInputKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) then AA_0561_btn_searchClick(nil);
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.TM_COM_ICONNERTimer(Sender: TObject);
var
ICO_THREAD : TCOM_ICON_LOGO_THREAD;
begin


TM_COM_ICONNER.Enabled:=false; // only once !
if (TM_COM_ICONNER.Tag=0) then exit;  // no xoc frame, so exit;
TM_COM_ICONNER.Tag:=0;

// shit fixed in thread-freeMem !


    ICO_THREAD:=TCOM_ICON_LOGO_THREAD.Create;

    ICO_THREAD._sHost:=FrameOwnComNODA._EXO_NODE_USER_IP;  // domain sek
    ICO_THREAD._iPort:=FrameOwnComNODA._EXO_NODE_eSERIAL;  // Port
    ICO_THREAD._sComPathSekToICON:=FrameOwnComNODA._EXO_NODE_PATH_TX; // path sek + tek_file   /fr/_xoc_com.php

    ICO_THREAD._image:=ComLogoImage;

    ICO_THREAD.Resume;


end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.UpdateCommunityLOGO1Click(Sender: TObject);
begin
TM_COM_ICONNER.Tag:=1;
TM_COM_ICONNER.Interval:=1000;
TM_COM_ICONNER.Enabled:=true;
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0427_DelcomXOC1Click(Sender: TObject);
begin

if (AA_0514_LVxoc.Selected=nil) then exit;

if NOT(MessageDlg(___ccc__0087__SureToDelXoc,mtConfirmation,[mbYes,mbNo],0)=mrYes)
then exit;


// ('&_AMD='+_VV_LOCAL_USER_PC_ID) is for future use to check sender
sTemp:=sDynamicParams; // save old param
sDynamicParams:='e=_T6&_DX='+IntToStr(AA_0514_LVxoc.Selected.itm_int1)+'&_AMD='+_VV_LOCAL_USER_PC_ID;
_ZunderIsDeleter:=true;
GoGoClick(nil);
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.AA_0428_mnGenerator1Click(Sender: TObject);
var
_FXOC_HTML_GEN: T_FXOC_HTML_GEN;
begin

_FXOC_HTML_GEN:=T_FXOC_HTML_GEN.Create(Application);
_FXOC_HTML_GEN.ZunderVV:=AA_0514_LVxoc;
_FXOC_HTML_GEN.sComFullURL:=FrameOwnComNODA._EXO_NODE_COM_IDX;
_FXOC_HTML_GEN.ShowModal;
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.TmGoRefreshTimer(Sender: TObject);
begin
TmGoRefresh.Enabled:=false;
GoGoClick(nil);
end;

//------------------------------------------------------------------------------
procedure T_FrameXOC.TmGoTriggerDLTimer(Sender: TObject);
var
_FXOC_DOWNLOADER: T_FXOC_DOWNLOADER;
s:string;
begin

TmGoTriggerDL.Enabled:=false;
s:=TmGoTriggerDL.kwd_id;


        //------------------always_contact_server-to update_DLs-#------



        _FXOC_DOWNLOADER:=T_FXOC_DOWNLOADER.Create(Application);
        _FXOC_DOWNLOADER.__LOCAL_DOWNLOAD_FOLDER:=_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER;
        _FXOC_DOWNLOADER._ZUNDER_IS_WEB_XOC_LINK:=true;

        _FXOC_DOWNLOADER.pnLwebxocLINK.Left     :=0;
        _FXOC_DOWNLOADER.pnLwebxocLINK.Top      :=65;
        _FXOC_DOWNLOADER.pnLwebxocLINK.Visible  :=true;
        _FXOC_DOWNLOADER.edXocini.Text           :=s;

        _FXOC_DOWNLOADER.Show;  // normal show as will be in tasbar

        //------------------------------------------------------------


end;

end.





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