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.
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.