Thanks.

 

Joseph Biran
____________________________________________

 

From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Tomasz
Janeczko
Sent: Thursday, May 01, 2008 1:28 AM
To: [email protected]
Subject: Re: [amibroker] AmiBroker 5.09.0 BETA released [.
New fields in Status() function: pxchart* Chart coordinates!
]

 

Hello,

 

1. No,  all GFX commands go to the "drawing list" (actually
metafile) that is then executed (played back) on final
rendering device (i.e. usually window, but can be also
printer)

either BEFORE or AFTER normal "plot" commands depending on
overlay mode. If more than one GfxSetOverlayMode is used,
then the value set by last call counts.

 

2. See the code sample published on the KB that does exactly
that:

http://www.amibroker.com/kb/2008/04/21/big-symbol-text-in-th
e-background/


Best regards,
Tomasz Janeczko
amibroker.com

----- Original Message ----- 

From: J. Biran <mailto:[EMAIL PROTECTED]>  

To: [email protected] 

Sent: Thursday, May 01, 2008 12:58 AM

Subject: RE: [amibroker] AmiBroker 5.09.0 BETA released [.
New fields in Status() function: pxchart* Chart coordinates!
]

 

Hi, 

 

This is REAL NEAT addition!.

 

Two questions: 

 

1)

in the samples below there is multiple usage of the command
GfxSetOverlayMode(); 

 

Can several of these be interleaved within the code and as a
result the Gfx() following these will be plotted some on op
others underneath (transparent) for individual sections? (I
don't seem to get it to work)

 

2)

If you select text pointsize X, how do you compensate its
vertical position to line up its center height with a value
Y, independent of chart size?

 

Joseph Biran
____________________________________________

 

From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Tomasz
Janeczko
Sent: Wednesday, April 30, 2008 8:32 AM
To: [email protected]
Subject: [amibroker] AmiBroker 5.09.0 BETA released [. New
fields in Status() function: pxchart* Chart coordinates! ]

 

Hello,

 

AmiBroker 5.09.0 BETA released

 
<http://www.amibroker.com/devlog/2008/04/30/amibroker-5090-b
eta-released/>
http://www.amibroker.com/devlog/2008/04/30/amibroker-5090-be
ta-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 there is a detailed call stack and CPU register state in
the bottom of the crash report. 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, whether 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

 

Reply via email to