Вверх ↑
Разработчик
Ответов: 26200
Рейтинг: 2137
#1: 2008-02-05 10:08:41 ЛС | профиль | цитата
Galkov писал(а):
Судя по Caption, это не моя схема, это твой HiAsm
А вот это, совсем не правда. У меня не мой HiAsm, а последний с апдэйта
от 21:56 22.12.2007, плюс все эти фичи с наследуемыми свойствами контролов от SVN.

------------ Дoбавленo:


Galkov, короче, у меня не грузиться вот этот мульт



Add(MultiElementEx,13068662,476,119)
{
 @Hint=#30:Мультик рисования 1-го спрайта|
 Mode=1
 link(onNext,2099003:doWork1,[(517,125)(517,107)(466,107)])
 link(onDraw,9101829:doWork2,[(517,132)(517,167)])
 link(Bitmap,5428734:Var3,[(482,65)])
}
BEGIN_SDK
  Add(EditMultiEx,16384433,21,21)
  {
   WorkCount=#5:##add|9:doRestore|8:##select|
   EventCount=#6:onNext|6:onDraw|
   DataCount=#6:Bitmap|
   Width=328
   Height=235
   Point(##add)
   Point(##select)
   link(##add,14965233:doValue,[(33,27)(33,34)])
   link(##select,7094899:doRestore,[(21,209)])
  }
  Add(ViewSHA,9870844,364,21)
  {
   Width=317
   Height=235
  }
  BEGIN_SDK
    Add(MultiElementEx,7483940,63,77)
    {
    }
    BEGIN_SDK
      Add(EditMultiEx,9351136,21,21)
      {
       WorkCount=#9:doRestore|
       EventCount=#10:onNewPoint|11:onNewSprite|
       DataCount=#6:Bitmap|1:X|1:Y|
       Width=279
       Height=207
       link(doRestore,2386803:doDraw,[(21,153)])
      }
      Add(Img_Copy,13193461,147,154)
      {
       Width=64
       Height=64
       MakeExt(Width,,Width)
       MakeExt(Height,,Height)
       link(onCopy,6443705:doEvent1,[])
       link(Source,6021073:Var3,[(153,135)])
       link(X,14121245:Var3,[(160,128)])
       link(Y,16035717:Var3,[(167,121)])
      }
      Add(Img_Bmp,2386803,49,147)
      {
       link(onDraw,12097056:doEvent1,[])
       link(Bitmap,6021073:Var2,[])
       link(SourceBitmap,13239051:Bitmap,[])
       link(X,14121245:Var2,[])
       link(Y,16035717:Var2,[])
      }
      Add(Bitmap,13239051,56,77)
      {
      }
      Add(Hub,6443705,203,154)
      {
       link(onEvent1,13239051:doLoad,[(253,160)(253,99)(44,99)(44,83)])
       link(onEvent2,9351136:onNewSprite,[(300,167)])
      }
      Add(GetDataEx,14121245,56,119)
      {
       link(Data,9351136:X,[(69,57)(34,57)])
      }
      Add(GetDataEx,16035717,63,112)
      {
       link(Data,9351136:Y,[(76,49)(41,49)])
      }
      Add(GetDataEx,6021073,42,126)
      {
       Angle=3
       link(Data,9351136:Bitmap,[(27,135)])
      }
      Add(Hub,12097056,98,147)
      {
       link(onEvent1,9351136:onNewPoint,[(287,153)(287,27)])
       link(onEvent2,13193461:doCopy,[])
      }
    END_SDK
    Add(InlineCode,8773907,63,182)
    {
     WorkPoints=#9:doRestore|
     EventPoints=#10:onNewPoint|11:onNewSprite|
     DataPoints=#6:Bitmap|1:X|1:Y|
     Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10:   private|16:    bmp:PBitmap;|18:    Xt,Yt:integer;|9:   public|26:    onNewPoint: THI_Event;|26:    onNewSprite:THI_Event;|26:    Bitmap,X,Y: THI_Event;|23:    destructor Destroy;|48:    procedure doRestore(var _D:TData; idx:word);|5: end;|0:|14:implementation|0:|31:destructor THiAsmClass.Destroy;|5:begin|11:  bmp.free;|4:end;|0:|56:procedure THiAsmClass.doRestore(var _D:TData; idx:word);|15:var bm:PBitmap;|5:begin|30:  bm := ReadBitmap(_D,Bitmap);|33:  if not assigned(bmp) then begin|28:    bmp := NewBitmap(64,64);|28:    Xt := ReadInteger(_D,X);|28:    Yt := ReadInteger(_D,Y);|44:  end else bmp.Draw(bm.canvas.Handle,Xt,Yt);|26:  _hi_OnEvent(onNewPoint);|26:  Xt := ReadInteger(_D,X);|34:  Yt := ReadInteger(_D,Y);        |37:  bm.Draw(bmp.canvas.Handle,-Xt,-Yt);|36:  _hi_CreateEvent_(_D,@onNewSprite);|4:end;|0:|4:end.|
    }
    Add(MultiElementEx,7150568,217,77)
    {
     @IsLib=True
    }
    BEGIN_SDK
      Add(EditMultiEx,9351136,21,21)
      {
       WorkCount=#6:doInit|9:doRestore|
       EventCount=#10:onNewPoint|11:onNewSprite|
       DataCount=#6:Bitmap|1:X|1:Y|
       Width=307
       Height=193
       link(doInit,6172453:doEvent1,[(25,27)(25,48)])
       link(doRestore,2386803:doDraw,[(21,174)])
      }
      Add(Img_Copy,13193461,126,112)
      {
       Width=64
       Height=64
       MakeExt(Width,,Width)
       MakeExt(Height,,Height)
       link(onCopy,13239051:doLoad,[])
       link(Source,13579959:Var2,[])
       link(X,3369687:Var2,[])
       link(Y,12291715:Var2,[])
      }
      Add(Img_Bmp,2386803,35,168)
      {
       link(onDraw,12097056:doEvent1,[])
       link(Bitmap,12810772:Var2,[])
       link(SourceBitmap,14147884:Var1,[(48,156)])
       link(X,3369687:Var1,[(55,86)])
       link(Y,12291715:Var1,[(62,93)])
      }
      Add(Bitmap,13239051,168,112)
      {
      }
      Add(GetDataEx,13579959,119,91)
      {
       Angle=3
       link(Data,12810772:Var3,[])
      }
      Add(Memory,13623118,231,42)
      {
       Point(Data)
       link(onData,107886:doOperation,[])
       link(Data,9351136:Y,[(237,21)])
      }
      Add(Memory,8245764,133,42)
      {
       Point(Data)
       link(onData,1180285:doOperation,[])
       link(Data,9351136:X,[(139,27)(34,27)])
      }
      Add(GetDataEx,14147884,161,147)
      {
       link(Data,13239051:Bitmap,[])
      }
      Add(Hub,12097056,77,168)
      {
       OutCount=3
       link(onEvent1,9351136:onNewPoint,[(316,174)(316,27)])
       link(onEvent2,2637978:doWork3,[(116,181)])
       link(onEvent3,8361269:doDraw,[])
      }
      Add(Img_Bmp,8361269,168,182)
      {
       link(onDraw,9351136:onNewSprite,[(328,188)])
       link(Bitmap,14147884:Var2,[])
       link(SourceBitmap,13579959:Var3,[(181,100)])
       link(X,1180285:Result,[])
       link(Y,107886:Result,[(195,155)(279,155)])
      }
      Add(Hub,6172453,70,42)
      {
       link(onEvent1,2637978:doWork2,[])
       link(onEvent2,13193461:doCopy,[(110,55)(110,118)])
      }
      Add(GetDataEx,12810772,28,91)
      {
       link(Data,9351136:Bitmap,[(41,32)(27,32)])
      }
      Add(GetDataEx,3369687,126,77)
      {
       link(Data,8245764:Value,[])
      }
      Add(GetDataEx,12291715,133,84)
      {
       Angle=1
       link(Data,13623118:Value,[(237,93)])
      }
      Add(Math,1180285,182,42)
      {
       OpType=2
       Op1=-1
       ResultType=0
       link(onResult,13623118:doValue,[])
      }
      Add(Math,107886,273,42)
      {
       OpType=2
       Op1=-1
       ResultType=0
      }
      Add(HubEx,2637978,112,35)
      {
       link(onEvent,8245764:doValue,[])
      }
    END_SDK
    Add(InfoTip,5118155,7,7)
    {
     Info=#14:Первая версия:|49:(-) динамически создается и уничтожается картинка|16:(+) зато простой|
     Font=[MS Sans Serif,8,0,16711680,1]
     HAlign=0
     Width=148
     Height=116
     Margin=5
    }
    Add(InfoTip,4231174,161,7)
    {
     Info=#14:Вторая версия:|19:(-) посложнее будет|23:(+) значитально быстрее|
     Font=[MS Sans Serif,8,0,16711680,1]
     HAlign=0
     Width=148
     Height=116
     Margin=5
    }
    Add(InfoTip,11762910,7,126)
    {
     Info=#14:Третья версия:|42:Пытаюсь сделать быстро, насколько возможно|
     Font=[MS Sans Serif,8,0,16711680,1]
     HAlign=0
     Width=148
     Height=102
     Margin=5
    }
    Add(InlineCode,14674078,217,182)
    {
     WorkPoints=#9:doRestore|
     EventPoints=#10:onNewPoint|11:onNewSprite|
     DataPoints=#6:Bitmap|1:X|1:Y|
     Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10:   private|16:    bmp:PBitmap;|18:    Xt,Yt:integer;|9:   public|26:    onNewPoint: THI_Event;|26:    onNewSprite:THI_Event;|26:    Bitmap,X,Y: THI_Event;|23:    destructor Destroy;|48:    procedure doRestore(var _D:TData; idx:word);|5: end;|0:|14:implementation|0:|31:destructor THiAsmClass.Destroy;|5:begin|11:  bmp.free;|4:end;|0:|56:procedure THiAsmClass.doRestore(var _D:TData; idx:word);|15:var bm:PBitmap;|5:begin|30:  bm := ReadBitmap(_D,Bitmap);|33:  if not assigned(bmp) then begin|28:    bmp := NewBitmap(64,64);|28:    Xt := ReadInteger(_D,X);|28:    Yt := ReadInteger(_D,Y);|11:  end else |71:    BitBlt(bm.Canvas.Handle,Xt,Yt,64,64,bmp.Canvas.Handle,0,0,SRCCOPY);|26:  _hi_OnEvent(onNewPoint);|26:  Xt := ReadInteger(_D,X);|34:  Yt := ReadInteger(_D,Y);        |69:  BitBlt(bmp.Canvas.Handle,0,0,64,64,bm.Canvas.Handle,Xt,Yt,SRCCOPY);|36:  _hi_CreateEvent_(_D,@onNewSprite);|4:end;|0:|4:end.|
    }
    Add(InfoTip,7539953,161,126)
    {
     Info=#17:Четвертая версия:|43:"yбыстрение" 3-й, замена Bmp.Draw на BitBlt|
     Font=[MS Sans Serif,8,0,16711680,1]
     HAlign=0
     Width=148
     Height=102
     Margin=5
    }
  END_SDK
  Add(MathParse,16456710,147,91)
  {
   @Hint=#11:Вычисляем Y|
   DataCount=1
   MathStr="(1+0.8*cos(%1*2.6))*208"
   ResultType=0
   AngleMode=1
   link(onResult,11922516:doNext,[])
   link(X1,13428754:Result,[(153,78)(88,78)(88,135)(48,135)])
  }
  Add(MathParse,11986210,98,91)
  {
   @Hint=#11:Вычисляем X|
   DataCount=1
   MathStr="(1+ 0.8*sin(%1))*288"
   ResultType=0
   AngleMode=1
   link(onResult,16456710:doCalc,[])
  }
  Add(Counter,11922516,196,91)
  {
   @Hint=#13:Номер спрайта|
   Max=59
   Default=-1
   link(onNext,16586188:doCalc,[])
  }
  Add(MathParse,16586188,245,91)
  {
   @Hint=#16:Вычисляем Point3|
   DataCount=1
   MathStr="31457280 + 64*%1 + 4193664*(%1 div 10)"
   ResultType=0
   AngleMode=1
   link(onResult,9092253:doData,[])
  }
  Add(DoData,15716003,140,203)
  {
   @Hint=#30:Помещам Point1 в голову потока|
   link(onEventData,7380280:doAdd,[])
   link(Data,13107590:Point,[])
  }
  Add(MathParse,13428754,42,91)
  {
   DataCount=1
   MathStr="%0 + (1.33+%1*0.01)"
   link(onResult,11986210:doCalc,[])
   link(X1,2983218:Var2,[])
  }
  Add(MultiElementEx,7094899,91,196)
  {
   elink(7150568)
   link(onNewPoint,13428754:doCalc,[(130,202)(130,149)(34,149)(34,97)])
   link(onNewSprite,15716003:doData,[])
   link(Bitmap,16384433:Bitmap,[(97,155)(27,155)])
   link(X,12034149:Var2,[])
   link(Y,16136829:Var1,[(111,135)])
  }
  Add(GetDataEx,16136829,140,126)
  {
   link(Data,16456710:Result,[])
  }
  Add(PointXY,13107590,140,154)
  {
   link(X,12034149:Var3,[(146,142)])
   link(Y,16136829:Var2,[])
  }
  Add(MT_Add,7380280,245,203)
  {
   @Hint=#29:Помещам Point3 в хвост потока|
   link(onAdd,16384433:onDraw,[(349,209)])
   link(Data,16586188:Result,[])
  }
  Add(GetDataEx,12034149,91,133)
  {
   link(Data,11986210:Result,[])
  }
  Add(DoData,9092253,294,91)
  {
   link(onEventData,16384433:onNext,[(340,97)(340,27)])
   link(Data,2983218:Var3,[(300,72)])
  }
  Add(Memory,14965233,42,28)
  {
   link(onData,7094899:doInit,[(82,34)(82,202)])
  }
  Add(GetDataEx,2983218,35,63)
  {
   link(Data,14965233:Value,[])
  }
END_SDK
карма: 22

0