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)
- MDI Tab order is now saved in the layout
- 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
- 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();
- 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
|