MeZon Team
ГлавнаяО насДокументацияКаталог статейСсылкиОбратная связь

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.
Главная | Новости | О нас | Проекты | Документация | Каталог статей | Ссылки | Обратная связь
Каталог TUT.BY © 2002-2017 MeZon Team, Minsk, Republic of Belarus.
Meta Zone Web Engine v4.9
2017.12.14 09:19:12