Вверх ↑
Разработчик
Ответов: 26158
Рейтинг: 2127
#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