Вверх ↑
Разработчик
Ответов: 26181
Рейтинг: 2129
#1: 2012-03-23 14:47:40 ЛС | профиль | цитата
Хотя login, мог бы и оптимизировать схему. В этом FTCG, иногда лишние элементы дают более оптимальный код. Вот пример его мультика с учетом оптимизации, добавлено один лишний компонента, но результат очень интересен



Add(FTCG_Tools,1744119,686,476)
{
}
BEGIN_SDK
  Add(EditMultiEx,1754439,21,21)
  {
   WorkCount=#9:doCompare|
   EventCount=#11:onEventData|
   VarCount=#5:Value|
   Width=475
   Height=347
   link(doCompare,8076218:doValue,[(59,27)(59,132)])
   link(Value,6936366:Value,[(27,263)(426,263)])
  }
  Add(FT_If_else,7947835,217,133)
  {
   Type=4
   Op2=Integer(11)
   link(onTrue,336565:doCompare,[])
  }
  Add(FT_If_else,336565,273,133)
  {
   Type=3
   Op2=Integer(16)
   link(onTrue,16236819:doData,[])
  }
  Add(FT_If_else,10995659,147,126)
  {
   Op2=Integer(17)
   link(onTrue,16006813:doData,[(205,132)(205,90)])
   link(onFalse,7947835:doCompare,[])
  }
  Add(FT_DoData,16236819,336,133)
  {
   Data=Integer(0)
   link(onEventData,13868993:doWork2,[])
  }
  Add(FT_DoData,16006813,336,84)
  {
   Data=Integer(1)
   link(onEventData,13868993:doWork1,[(390,90)])
  }
  Add(HubEx,13868993,386,133)
  {
   link(onEvent,6936366:doValue,[])
  }
  Add(FT_Memory,6936366,420,133)
  {
   Default=Integer(0)
  }
  Add(FT_Memory,8076218,98,126)
  {
   Default=Integer(0)
   link(onData,10995659:doCompare,[])
  }
END_SDK


И дает он вот такой код



procedure TClassFTCG_Tools_1A893F0.event_doCompare(var Data:TData; index:word);
begin
  
  val1 := ToInteger(Data);
  if val1 = 17 then
  begin
    val4 := 1;
  end
  else if((val1 >= 11) and (val1 <= 16) )then
  begin
    val4 := 0;
  end;
end;

И работает в 2,5 раза быстрее
карма: 22

0