Tomasz,
Thank you for adding the new status fields. They are very helpful for
mixed chart and gfx plotting!
Best regards,
Dennis
On Apr 30, 2008, at 11:31 AM, Tomasz Janeczko wrote:
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