📄 mainp.pas
字号:
Randomize;
i:=random(maxpoolnum);
cx.Session:=OraSession[i];
zcx.Session:=OraSession[i];
sqlc.Session:=OraSession[i];
oras.Session:=OraSession[i];
GetModuleFileName( 0,fname,256);
path:=ExtractFilePath(fname);
fconfig:=Tinifile.create(path+'51delphi.ini'); //in folder
pathname:=fconfig.readstring('PATH','HTMLROOT',defpathname);
softpath:=fconfig.readstring('PATH','SOFTPATH',defsoftpath);
bookpath:=fconfig.readstring('PATH','BOOKPATH',defbookpath);
// defpathname);
fconfig.Free;
title.HTMLFile:=pathname+'/title.html';
foot.HTMLFile:=pathname+'/foot.html';
center.HTMLFile:=pathname+'/center.html';
newsfont.HTMLFile:=pathname+'/jy.html';
softpage.HTMLFile:=pathname+'/soft.html';
bookpage.HTMLFile:=pathname+'/book.html';
jswzpage.HTMLFile:=pathname+'/jswz.html';
jstlpage.HTMLFile:=pathname+'/jstl.html';
fwtjpage.HTMLFile:=pathname+'/fwtj.html';
showtlpage.HTMLFile:=pathname+'/showtl.html';
newtlpage.HTMLFile:=pathname+'/newtl.html';
showlypage.HTMLFile:=pathname+'/showly.html';
userregpage.HTMLFile:=pathname+'/userreg.html';
softpl.HTMLFile:=pathname+'/softpl.html';
usereditpage.HTMLFile:=pathname+'/useredit.html';
end;
procedure Twm.datahtmlHTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings; var ReplaceText: String);
var
fname:string;
begin
fname:=tagstring;
if pos('-M',fname)=(length(fname)-2) then
begin
fname:=copy(fname,1,length(fname)-2);
replacetext:= txt2html(cx.fieldbyname(tagstring).asstring);
end
else
replacetext:=cx.fieldbyname(tagstring).asstring
end;
procedure Twm.wmshowmsgAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
var
msg:string;
begin
msg:=request.QueryFields.Values['msg'];
msg:='<p align="center"><img src="/image/error_1.gif"><font size="+1" color="red">'
+msg+'</font></p>';
msg:=msg+'<p align="center"><a href="javascript:history.go(-1);"><img src="/image/back.gif" width="55" height="15" border=0></a></p>';
Response.Content:=title.Content+msg+foot.Content;
end;
function Twm.newtlshow: string;
const
showcount=5;
var
wz:integer;
s:string;
img:string;
refs:string;
begin
with cx do
begin
SQl.Clear;
SQL.Add('select ID,TITLE,NAME,INDATE,type from JSTL where sj=0 and BZ=''T'' order by indate desc ');
Open;
wz:=0;
s:='<table bgColor="#609000" width="100%" border="0" cellspacing="1" cellpadding="1">';
s:=s+' <tr bgcolor="#FFFFCC">';
s:=s+' <td nowrap><font class="pt9" align="center">NO.</FONT></td>';
s:=s+' <td ><font class="pt9" align="center">主题</FONT></td>';
s:=s+' <td nowrap><font class="pt9" align="center">作者</FONT></td>';
s:=s+' <td nowrap><font class="pt9" align="center">发贴时间</FONT></td>';
s:=s+' </tr>';
while ((wz<showcount) and (not eof)) do
begin
img:=getimg(fieldbyname('type').AsInteger);
refs:='<a href="/delphi/showtl?ID='+fieldbyname('ID').asstring+'">';
s:=s+' <tr bgcolor="#FEFDED">';
s:=s+' <td nowrap><font class="pt9" align="center">'+fieldbyname('ID').asstring+'</font></td>';
s:=s+' <td ><font class="pt9" align="center" color="#0000ff">'+img+refs+fieldbyname('TITLE').asstring+'</a></font></td>';
s:=s+' <td nowrap><font class="pt9" align="center">'+fieldbyname('NAME').asstring+'</font></td>';
s:=s+' <td nowrap><font class="pt9" align="center">'+fieldbyname('indate').asstring+'</font></td>';
s:=s+' </tr>';
wz:=wz+1;
next
end;
s:=s+' </table>';
end;
result:=s;
end;
function Twm.homelink: string;
var
s:string;
begin
s:=' <table align="left" border="0" cellspacing=0 cellpadding=0 >';
with cx do
begin
SQL.Clear;
SQL.Add('select * from link where gif is not null');
Open;
s:=s+' <tr valign="top">';
s:=s+' <td width=5></td>';
s:=S+' <TD align="center" bgcolor="#FFCF60" height=40 valign=center><font class="title"><font color=black><b>友情链接</b></font></font></TD>';
s:=s+' </tr>';
while not eof do
begin
s:=s+' <tr valign="top" >';
s:=s+' <td width=5></td>';
s:=s+' <td bgcolor="#FFCF60" align="left">';
s:=s+' <a href="'+fieldbyname('http').asstring+'" target="_blank"><img src="/ad/'+fieldbyname('gif').asstring+'"></a>';
s:=s+' </td>';
s:=s+' </tr>';
next
end;
sql.clear;
sql.add('select * from link where gif is null');
Open;
while not eof do
begin
s:=s+' <tr valign="top" >';
s:=s+' <td width=5></td>';
s:=s+' <td bgcolor="#FFCF60" align="left"><font class="pt9" color="#FFFFFF">';
s:=s+'<a href="'+fieldbyname('http').asstring+'" target="_blank">'+fieldbyname('name').asstring+'</a></font></td>';
s:=s+' </tr>';
next;
end;
s:=s+' <tr valign="bottom">';
s:=s+' <TD width=5></TD>';
s:=s+' <TD align="center" bgcolor="#FFCF60" height=40 valign=center><font color=blue>我的链接</font></TD>';
s:=s+' </tr>';
s:=s+' <tr valign="bottom">';
s:=s+' <TD width=5></TD>';
s:=s+' <TD align="center" bgcolor="#FFCF60" height=40 valign=center><img src="/ad/51delphi.gif"></TD>';
s:=s+' </tr>';
s:=s+' </TABLE>';
end;
result:=s;
end;
function Twm.newsoft: string;
begin
result:=showsoft(5,0,'');
end;
function Twm.newbook: string;
begin
result:=showbook(5,0,'');
end;
function Twm.showsoft(showcount,no:integer;where:string):string;
var
s:string;
wz:integer;
news:string;
jys:string;
snum:string;
plcs:string;
begin
s:=gridhead+gridheadline;
s:=s+gridtdhead+'日期'+gridtdend;
s:=s+gridtdhead+'名称'+gridtdend;
s:=s+gridtdhead+'类别'+gridtdend;
s:=s+gridtdhead+'类型'+gridtdend;
s:=s+gridtdhead+'推荐度'+gridtdend;
s:=s+gridtdhead+'大小'+gridtdend;
s:=s+gridtdhead+'下载'+gridtdend;
s:=s+gridtdhead+'简介'+gridtdend;
s:=s+gridtdhead+'评论'+gridtdend;
s:=s+' </tr>';
with cx do
begin
sql.Clear;
sql.Add('select num,name,indate,type,pass,dnum,jy ,fsize from soft');
SQL.Add(where);
SQL.add(' order by indate desc');
Open;
moveby(showcount*no);
wz:=0;
while ((wz<showcount) and (not eof)) do
begin
news:='';
if (now-fieldbyname('indate').AsDateTime)<3 then
news:='<img src="/image/new9.gif">';
jys:='<img src="/image/hx.gif"><img src="/image/hx.gif">';
if fieldbyname('jy').AsInteger>=80 then
jys:=jys+'<img src="/image/hx.gif">';
if fieldbyname('jy').AsInteger>=85 then
jys:=jys+'<img src="/image/hx.gif">';
if fieldbyname('jy').AsInteger>=90 then
jys:=jys+'<img src="/image/hx.gif">';
snum:=fieldbyname('num').asstring;
if (wz mod 2)=0 then
s:=s+gridline
else
s:=s+gridline2;
s:=s+gridtdhead+fieldbyname('indate').asstring+gridtdend;
s:=s+gridtdhead+' <font color="#0000ff">'+news+fieldbyname('name').asstring+'</font>'+gridtdend;
s:=s+gridtdhead+fieldbyname('type').asstring+gridtdend;
s:=s+gridtdhead+fieldbyname('pass').asstring+gridtdend;
s:=s+gridtdhead+jys+gridtdend;
s:=s+gridtdhead+fieldbyname('fsize').asstring+gridtdend;
if getsession('delphiuser')<>'' then
s:=s+gridtdhead+'<font color="blue">'+fieldbyname('dnum').asstring+'</font>'
+'<a href="/delphi/download?num='+fieldbyname('num').asstring+ '" Target="_blank" ><img src="/image/download.gif" border=0> </a> '+gridtdend
else
s:=s+gridtdhead+'<font color="blue">'+fieldbyname('dnum').asstring+'</font>'+gridtdend;
s:=s+gridtdhead+'<font color="#0000ff">'+'<a href="javascript:viewjj('+snum+')">查看</a></font>'+gridtdend;
zcx.sql.clear;
zcx.sql.add('select count(*) as num from softtl where id='+snum);
zcx.Open;
if zcx.FieldByName('num').asinteger=0 then
plcs:=''
else
plcs:='(+'+zcx.fieldbyname('num').asstring+')';
s:=s+gridtdhead;
s:=s+' <a href="/delphi/showsoftpl?id='+snum+'">评论'+plcs+'</a>'+gridtdend;
s:=s+' </tr>';
next;
wz:=wz+1;
end;
s:=s+' </table>';
end;
result:=s;
end;
function Twm.showbook(showcount, no: integer;where:string): string;
var
s:string;
wz:integer;
news,jys:string;
begin
with cx do
begin
SQL.Clear;
SQL.Add('select num,name,indate,type,dnum,jy,fsize from book');
SQL.Add(where);
SQL.Add('order by indate desc');
Open;
s:=gridhead+gridheadline;
s:=s+gridtdhead+'日期'+gridtdend;
s:=s+gridtdhead+'名称'+gridtdend;
s:=s+gridtdhead+'类别'+gridtdend;
s:=s+gridtdhead+'推荐度'+gridtdend;
s:=s+gridtdhead+'大小'+gridtdend;
s:=s+gridtdhead+'下载'+gridtdend;
s:=s+' </tr>';
wz:=0;
moveby(showcount*no);
while ((wz<showcount) and (not eof)) do
begin
news:='';
if (now-fieldbyname('indate').AsDateTime)<3 then
news:='<img src="/image/new9.gif">';
jys:='<img src="/image/hx.gif"><img src="/image/hx.gif">';
if fieldbyname('jy').AsInteger>=80 then
jys:=jys+'<img src="/image/hx.gif">';
if fieldbyname('jy').AsInteger>=85 then
jys:=jys+'<img src="/image/hx.gif">';
if fieldbyname('jy').AsInteger>=90 then
jys:=jys+'<img src="/image/hx.gif">';
if (wz mod 2)=0 then
s:=s+gridline
else
s:=s+gridline2;
s:=s+gridtdhead+fieldbyname('indate').asstring+gridtdend;
s:=s+gridtdhead+'<font color="#0000ff">'+news+fieldbyname('name').asstring+'</font>'+gridtdend;
s:=s+gridtdhead+fieldbyname('type').asstring+gridtdend;
s:=s+gridtdhead+jys+gridtdend;
s:=s+gridtdhead+fieldbyname('FSIZE').asstring+gridtdend;
if getsession('delphiuser')<>'' then
s:=s+gridtdhead+'<font color="blue">'+fieldbyname('dnum').asstring+'</font>'
+'<a href="/delphi/downbook?num='+fieldbyname('num').asstring+ '" " Target="_blank"><img src="/image/download.gif" border=0> </a> '+gridtdend
else
s:=s+gridtdhead+'<font color="blue">'+fieldbyname('dnum').asstring+'</font>'+gridtdend;
s:=s+' </tr>';
next;
wz:=wz+1;
end;
s:=s+' </table>';
end;
result:=s;
end;
procedure Twm.wmsoftAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
begin
Response.content:=title.Content+ softpage.Content+foot.Content;
end;
procedure Twm.softpageHTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings; var ReplaceText: String);
const
showcount=25;
var
no:integer;
s:string;
where:string;
stype:string;
scx,sscx:string;
begin
stype:=request.QueryFields.Values['type'];
sscx:=request.QueryFields.Values['cx'];
scx:=UpperCase(sscx);
if stype='' then
begin
if scx='' then
where:=''
else
where:='where (upper(name) like ''%'+scx+'%'') or (upper(type) like ''%'+scx+'%'') or (upper(note) like ''%'+scx+'%'')';
end
else
where:='where type='''+stype+'''';
if request.QueryFields.Values['no']='' then
no:=1
else
begin
s:=request.QueryFields.Values['no'];
try
no:=strtoint(s);
except
no:=1;
end;
if no<1 then no:=1;
end;
if TagString='softtype' then
begin
ReplaceText:=showsofttype(100,0,'');
end;
if TagString='softpage' then
begin
with cx do
begin
SQL.Clear;
SQL.Add('select count(*) from SOFT');
SQL.Add(where);
Open;
ReplaceText:=showpage(fields[0].asinteger,showcount,no,'&type='+stype+'&cx='+sscx);
end;
end;
if TagString='showsoft' then
begin
ReplaceText:=showsoft(showcount,no-1,where)
end;
end;
function Twm.showtable(T: Tdataset; showcount, no: integer): string;
var
i:integer;
s:string;
wz:integer;
begin
s:=gridhead+gridheadline;
for i:=0 to (T.FieldCount-1) do
s:=s+gridtdhead+T.fields[i].fieldname+gridtdend;
s:=s+' </tr>';
wz:=0;
t.First;
t.MoveBy(showcount*no);
while ((wz<showcount) and (not t.eof)) do
begin
s:=s+gridline;
for i:=0 to (T.FieldCount-1) do
s:=s+gridtdhead+T.fields[i].asstring+gridtdend;
s:=s+'</tr>';
t.next;
end;
s:=s+' </table>';
result:=s;
end;
function Twm.showsofttype(showcount, no: integer;where:string): string;
var
s:string;
wz:integer;
begin
with cx do
begin
SQL.Clear;
SQl.Add(' select distinct type from soft');
SQL.add(where);
Open;
s:=gridhead+gridheadline;
s:=s+gridtdhead+'软件类别'+gridtdend;
s:=s+' </tr>';
wz:=0;
while ((wz<showcount) and (not eof)) do
begin
if (wz mod 2)=0 then
s:=s+gridline
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -