Если совсем просто то это приложения в которых вод-вывод осуществляются с помощью Веб-страниц ..
end.
...
WebWrite('<div id="message_94238" style="display: none;"> Привет мир! <br /></div> ' );
..
end.
То есть генерируется станица показываемая потом сервером .
Приложение может включать как часть себя сервер а может использовать внешний (Например всем известный Апачь ...)
Кроме того для того чтобы не лезть в код сервера при написании прикладной программы в сервер часто включают поддержку скриптовых языков ...
(Например Явы , PHP или Perl c Piton-ном ) У мнея это паскаль-скрипт входящий в комплект компонентов Лазаруса ...
Для меня хороша возможность иметь доступ как к коду сервера (Для добавления новых функций )
... так и к коду приложения ( Причем оба пишутся почти на одном и том-же паскале )
Приложения уже сейчас можно писать без доступа к исходникам сервера и необходимости таскать за собой лазарусс .
интерпретатор скриптов вполне может не только строить например таблицы но и выполнять сложные расчеты ...
(Уже сейчас техно-демо-скрипт умеет считать пусть примитивные но трехмерные картинки (причем динамические ) )
Код: Выделить всё
(*SEdit*********************************
Генерация 2
Скрипт ''Тест графики ''
VN:"Ap_FIL" REM:"Запрос" NZ:"index.htm"
VN:"Ap_ZAP" REM:"Расширенный запрос " NZ:""
VN:"ADV_URL" REM:"Расширение адреса" NZ:""
VN:"BPage" REM:"Фон" NZ:"F.htm"
VN:"POpt" REM:"Опции" NZ:"Var_A=' FFF';"
//****************************************)
// Скрипт ''Тест графики ''
Var
REZ,FP:String;
Ap_FIL:String;
Ap_ZAP:String;
ADV_URL:String;
BPage:String;
SavZP:String;
Procedure WL(S:String);
begin
REZ:= REZ+S+#13+#10;
end;
Procedure HR(Tx,url:String);
begin
WL('<a href="'+URL+'">'+TX+'</a>');
end;
Procedure BT(Tx,url:String);
begin
WL('<input type="submit" value="'
+TX+'"onclick=' +#39+ 'document.location = "'
+ADV_URL+URL+'"'+#39+' >');
end;
Procedure BT2(Tx:String);
begin
WL('<input type="submit" value="'+TX+'" >');
end;
Procedure INP(ID,VL:String);
begin
WL( ID+' <input type="text" name="memo" value="'+VL+'" >');
end;
Procedure INP_PSW(ID,VL:String);
begin
WL(ID+' <input type="password" name="psw" value="'+VL+'" >');
end;
Procedure BR;
begin
WL( '<br>');
end;
Type
Real= Double;
//Const pI:Double=3.14;
Var
v11,v12,v13,v21,v22,v23,v32,v33,v43,
screen_dist:real;
C1:real;c2:Real;
///var p, i,j,k,iu,ju,ku, x,y,s,shag:Real;
procedure Persp(x,y,z:Real;var XX,YY:Real);
var
xe,ye,ze:real;
begin
xe:=v11*x+v21*y;
ye:=v12*x+v22*y+v32*z;
ze:=v13*x+v23*y+v33*z+v43;
XX:=Screen_dist*xe/Ze+c1;
YY:=Screen_dist*ye/Ze+c2;
end;
Var vx,vy,Color:Integer;
Procedure dw(x,y,z:real);
var xx,yy: Real;
x1,y1:Integer;
begin
persp(x,y,z,xx,yy);
{x1:=Round(XX*50);Y1:=Round(yy)*50;}
x1:=10+trunc(XX*50);Y1:=10+trunc(yy*50);
DrawOnIMG('W12','LINE',IntToStr(x1 div 2)+','+IntToStr(y1 div 2)+','+IntToStr(vx div 2)+','+IntToStr(vy div 2));
//msg(IntToStr(x1)+','+IntToStr(y1)+IntToStr(vx)+','+IntToStr(vy));
//line(X1,y1,vx,vy,Color);
vx:=x1;vy:=y1;
end;
Procedure Mw(x,y,z:real);
var xx,yy: Real;
x1,y1:Integer;
begin
persp(x,y,z,xx,yy);
vx:=10+trunc(XX*50);vY:=10+trunc(yy*50);
end;
procedure cof(Rho,theta,phi:real);
var
ph, th,costh,sinth,cosph,sinph,Factor:real;
begin
Factor:=pi/180;
th:=theta*factor; ph:=phi*factor;
Costh:=cos(th); sinth:=Sin(th);
Cosph:=cos(ph); sinph:=Sin(ph);
v11:= -sinth;v12:=-cosph*costh;v13:=-sinph*Costh;
v21:=costh; v22:=-cosph*Sinth; v23:=-sinph*sinth;
v32:=sinph; v33:=-Cosph;
v43:=rho;
end;
procedure drawKub( Rho,theta,phi:real);
//const h=20;
var
H:Integer;
begin
h:=50;
mw(h,-h,-h);dw(h,h,-h);
dw(-h,h,-h);
dw(-h,h,h);
dw(-h,-h,h);
dw(h,-h,h);
dw(h,-h,-h);
mw(h,h,-h);dw(h,h,h);
dw(-h,h,h);
mw(h,h,h);dw(h,-h,h);
mw(h,-h,-h);dw(-h,-h,-h);
dw(-h,h,-h);
mw(-h,-h,-h);dw(-h,-h,h);
end;
procedure draw3(XZ:integer);
var p, i,j,k,iu,ju,ku, x,y,s,shag:Real;
begin
screen_dist:=4;
J:=30;k:=70;
Ju:=30;ku:=70;
i:=100; iu:=200;
Shag:=4;
cof(i+xZ,j-xz,k+xz);
//cof(i+8,j,k);
mw(0,0,50);dw(0,0,0);
mw(50,50,50);dw(-50,-50,50);
mw(-50,50,50);dw(50,-50,50);
p:=0; S:=pi/(2+Rnd(6));
while P<2*pi do begin
mw(0,0,0);dw(20*Cos(p),20*Sin(p),-25+rnd(15));
p:=P+s;
end;
p:=0;x:=0; S:=pi/(2+Rnd(6));
mw((x+20)*Cos(p),(x+20)*Sin(p),-25+x/2);
while P<4*pi do
begin
Color:=Rnd(15);
X:=x+3;
dw((X+20)*Cos(p),(x+20)*Sin(p),-25+x/2);
p:=P+s;
end;
drawKub(i,j,k);
//drawKub(100,1,1);
end;
var
S:String;
X,y:Integer;
begin
C1:=4.5;c2:=3.5;
rez:='';
Ap_FIL:= GetParam('Ap_FIL');
Ap_ZAP:= GetParam('Ap_ZAP');
ADV_URL:= GetParam('ADV_URL');
SavZP:= GetParam('SavZP');
SetParam('SavZP',REZ);
//rez:=R_LoadText('f1.htm')+ REZ+ R_LoadText('f2.htm');
br;br;br;
//----------------------------
//Тут размещается основной код
WL('<html>');
WL('<script language="javascript">');
WL(' function timer11(_data_){');
WL(' document.location = "pageGraph001" ');
WL(' }</script>');
WL('<body onload='+#39+'setInterval("timer11()",1500);'+#39+'>');
//'+#39+'document.location = "'+ADV_URL+'pageLLL"'+#39+'
WL( ' Уже работает ... ');
If ExecUtil('Load_WC.ex') then
WL('<img src='+#39+'K.jpg'+#39+' alt='+#39+'Logo'+#39+' id='+#39+'logo'+#39+' style="width: 30%; height: 30%;"<br><br>')
else
WL('<img src='+#39+'http://91.237.244.6/files/image.jpg?dummy=1445094378184'+#39+' alt='+#39+'Logo'+#39+' id='+#39+'logo'+#39+' style="width: 30%; height: 30%;"<br><br>');
br;br;
WL('<center>');
WL('<B>Окно в мир гафики ..</B>');br;
br;
WL('<img src='+#39+'K1.jpg'+#39+' alt='+#39+'Logo'+#39+' id='+#39+'logo'+#39+' style="width: 60%; height: 40%;"<br><br>')
WL('</center>');
WL(' </body>');
WL('</html>');
NewIMG('W12',320,200)
LoadIMG('W12','K0.JPG');
//DrawOnIMG('W12','CLEAR','');
//DrawOnIMG('W12','RectANGLE','1,1,50,50');
DrawOnIMG('W12','SetCOLoR','$F1010');
DrawOnIMG('W12','FRAME','1,1,50,50');
DrawOnIMG('W12','ELLIPSE','1,1,50,50');
DrawOnIMG('W12','SetBrCOLoR','$FF');
DrawOnIMG('W12','FillRect','1,1,20,20');
DrawOnIMG('W12','SetBrCOLoR','$ffffFF');
X:=25-RnD(50); Y:=25-RnD(50);
DrawOnIMG('W12','LINE','25,25,'+IntToStr(25+x)+','+IntToStr(25+x));
X:=StrToInt(GetParam('X')); If X>25 then X:=0;
DrawOnIMG('W12','LINE','25,25,'+IntToStr(25+x)+',0');
SetParam('X',IntToStr(X+3));
DrawOnIMG('W12','outText','25,25,'+IntToStr(25+x));
draw3(X);
SaveIMG('W12','K1.jpg',true,true);
DeleteIMG('W12');//!!!!
//-------------------------------
BPage:= R_LoadText(GetParam('BPage'));
BPage:=StrReplace(BPage,'PAGE_NAME','Тест 999');
rez:=StrReplace(BPage,'<ZZZ>',REZ);
SetParam('OUT',REZ);
//WForm(Rez);
end.