Hello,

AmiBroker 5.09.0 BETA released
http://www.amibroker.com/devlog/2008/04/30/amibroker-5090-beta-released/

CHANGES FOR VERSION 5.09.0 (as compared to 5.08.0)

  a.. MDI Tab order is now saved in the layout

  b.. Added interface to BugslayerUtil.dll for optional call stack / symbol 
dump report in crash recovery window
  Now in the bottom of the crash report there is a detailed call stack and CPU 
register state. This should allow quicker/easier fixes of any crashes

  c.. New fields in Status() function: pxchart* 

  Status("pxchartleft") - returns x-coordinate of top-left corner of chart area
  Status("pxcharttop") - returns y-coordinate of top-left corner of chart area
  Status("pxchartright") - returns x-coordinate of bottom-right corner of chart 
area
  Status("pxchartbottom") - returns y-coordinate of bottom-right corner of 
chart area
  Status("pxchartwidth") - returns width chart area (right-left)
  Status("pxchartheight") - returns width chart area (bottom-top)
  Chart co-ordinates are useful because they automatically take into account 
selected axis font size, whenever date axis is on or off
  and other settings (New Look chart style)
  All co-ordinates are in screen pixels. Note that top, left coordinates may 
not be zero as chart rectangle is smaller than underlying window because there 
is an extra space (padding) around chart. 

  // Test code:
  Title = StrFormat("left=%g, top=%g, right=%g, bottom=%g, width=%g, 
height=%g", 
  left=Status("pxchartleft"), 
  top=Status("pxcharttop"), 
  right=Status("pxchartright"), 
  bottom=Status("pxchartbottom"), 
  Status("pxchartwidth"), 
  Status("pxchartheight") ); 
  GfxSetOverlayMode(1); 
  GfxRectangle(Left,top, right, bottom);

  ============ Overlay sample ================
  _SECTION_BEGIN("GfxOverlaySampleNew"); 

  function GetVisibleBarCount() 
  { 
   lvb = Status("lastvisiblebar"); 
   fvb = Status("firstvisiblebar"); 

   return Min( Lvb - fvb, BarCount - fvb ); 
  } 

  function GfxConvertBarToPixelX( bar ) 
  { 
   lvb = Status("lastvisiblebar"); 
   fvb = Status("firstvisiblebar"); 
   pxchartleft = Status("pxchartleft"); 
   pxchartwidth = Status("pxchartwidth"); 

   return pxchartleft + bar  * pxchartwidth / ( Lvb - fvb + 1 ); 
  } 

  function GfxConvertValueToPixelY( Value ) 
  { 
   local Miny, Maxy, pxchartbottom, pxchartheight; 

   Miny = Status("axisminy"); 
   Maxy = Status("axismaxy"); 

   pxchartbottom = Status("pxchartbottom"); 
   pxchartheight = Status("pxchartheight"); 

   return pxchartbottom - floor( 0.5 + ( Value - Miny ) * pxchartheight/ ( Maxy 
- Miny ) ); 
  } 



  Plot(C, "Price", colorBlack, styleHistogram ); 

  GfxSetOverlayMode(0); 
  GfxSelectSolidBrush( colorRed ); 
  GfxSelectPen( colorRed ); 

  AllVisibleBars = GetVisibleBarCount(); 
  fvb = Status("firstvisiblebar"); 

  for( i = 0; i < AllVisibleBars ; i++ ) 
  { 
     x = GfxConvertBarToPixelX( i ); 
     y = GfxConvertValueToPixelY( C[ i + fvb ] ); 

    GfxRectangle( x-1, y-1, x + 2, y+1 ); 
  } 

  //SetChartBkGradientFill( ColorRGB(200,200,200), ColorRGB( 255,255,255) ); 
  _SECTION_END();




  d.. OLE: Name property is now writable, allowing switchin currently selected 
symbol for the document

  Example (JScript):
  AB = new ActiveXObject("Broker.Application");
  AB.ActiveDocument.Name = "MSFT"; // change the symbol for current document to 
"MSFT" 


Best regards,
Tomasz Janeczko
amibroker.com

Reply via email to