EVCL (Extract Visual Component Library) для Delphi.
EVCL - "выжимки" библиотеки визуальных компонентов. Специальная библиотека, основанная на Windows API и Delphi для создания приложений с минимальным размером. В результате программа не содержала избыточности кода в результате имела маленький размер, быстро выполнялась и содержала минимум мест, где могли возникать ошибки. Текущая версия 7.0, но разработка немного приостановилась.
Пример программки пятнашки:
program pjatn;
uses
EAppl,
EForm,
EButton,
ETProcs,
EClass,
EControl,
MySysUtils;
var
mf:TEForm;
bts:array[0..3,0..3] of TEButton;
i,j,x0,y0:integer;
procedure tusovka;
var
s:string;
i,j,k:integer;
begin
for i:=0 to 3 do
for j:=0 to 3 do
bts[i,j].FSetVisible(false);
for i:=0 to 3 do
for j:=0 to 3 do
if bts[i,j].Tag<>16 then bts[i,j].FSetText(IntToStr(bts[i,j].Tag))
else bts[i,j].FSetText('');
x0:=3;y0:=3;
for k:=0 to 8000 do
begin
i:=0;j:=0;
if random(3)=0 then
if random(2)=0 then j:=1 else j:=-1
else if random(2)=0 then i:=1 else i:=-1;
i:=i+x0;j:=j+y0;
if (i<4)and(j<4)and(i>-1)and(j>-1) then
begin
s:=bts[i,j].Text;
bts[i,j].Text:=bts[x0,y0].Text;
bts[x0,y0].Text:=s;
x0:=i;y0:=j;
end;
end;
for i:=0 to 3 do
for j:=0 to 3 do
bts[i,j].FSetVisible(true);
bts[x0,y0].FSetVisible(false);
end;
procedure m1(Sender:TEClass);
var
s:TEControl;
i,j:integer;
st:string;
begin
s:=Sender as TEControl;
i:=(s.Tag-1) div 4;
j:=(s.Tag-1) mod 4;
if abs(x0-i)+abs(y0-j)=1 then
begin
bts[x0,y0].FSetVisible(true);
st:=bts[i,j].Text;
bts[i,j].Text:=bts[x0,y0].Text;
bts[x0,y0].Text:=st;
x0:=i;y0:=j;
bts[x0,y0].FSetVisible(false);
end;
end;
begin
Randomize;
mf:=TEForm.Create(nil);
mf.FSetStyle(MFM_FIX).FSetText('Пятнашки').FSetSize(200,200).FAdjustFormSize(false).Init;
for i:=0 to 3 do
for j:=0 to 3 do
begin
bts[i,j]:=TEButton.Create(mf);
bts[i,j].FSetOnClick(m1).FSetSize(50,50).FSetPos(i*50,j*50).Init;
bts[i,j].Tag:=i*4+j+1;
end;
tusovka;
RunAppl(mf);
mf.Free;
end.
