lib_display





//---------------------------------------------------------------------
//	lib_display.mq4
//---------------------------------------------------------------------
//	Âûâîä òåêñòîâûõ ñòðîê â âèäå òàáëèöû.
//---------------------------------------------------------------------
//	Ïðè âûâîäå òåêñòà, ìîæåò çàäàâàòüñÿ äëÿ êàæäîé ÿ÷åéêè òàáëèöû:
//	- öâåò;
//	- øðèôò;
//	- êîîðäèíàòû â çíàêîìåñòàõ;
//---------------------------------------------------------------------

#property copyright "Copyright © 2008, Dima S., ddd003@mail.ru"
#property link      "http://www.lapusja.ru"
//---------------------------------------------------------------------
#define LIB_DISPLAY_VERSION			"LIB_DISPLAY V1.00"
//---------------------------------------------------------------------

//=====================================================================
//	Ãëîáàëüíûå êîíñòàíòû:
//=====================================================================
#define ROWS				30												// ìàêñèìàëüíîå ÷èñëî ñòðîê â òàáëèöå
#define COLUMNS			80												// ìàêñèìàëüíîå ÷èñëî êîëîíîê â òàáëèöå

//=====================================================================
//	Ãëîáàëüíûå ïåðåìåííûå:
//=====================================================================
int			cell_x_position[ ROWS ][ COLUMNS ];		// êîîðäèíàòû X íà÷àëà ÿ÷ååê ( â ïèêñåëÿõ )
int			cell_y_position[ ROWS ][ COLUMNS ];		// êîîðäèíàòû Y íà÷àëà ÿ÷ååê ( â ïèêñåëÿõ )
//---------------------------------------------------------------------
color		cell_color[ ROWS ][ COLUMNS ];				// öâåòà ÿ÷ååê
//---------------------------------------------------------------------
string	cell_font_name[ ROWS ][ COLUMNS ];		// èìÿ ôîíòà ÿ÷ååê
int			cell_font_size[ ROWS ][ COLUMNS ];		// ðàçìåð ôîíòà ÿ÷ååê
//---------------------------------------------------------------------
int			columns_number = COLUMNS;							// ÷èñëî êîëîíîê â òàáëèöå
int			rows_number = ROWS;										// ÷èñëî ñòðîê â òàáëèöå
//---------------------------------------------------------------------
string	base_name = "";
//---------------------------------------------------------------------

//---------------------------------------------------------------------
//	Ïîëó÷åíèå èìåíè ÿ÷åéêè:
//---------------------------------------------------------------------
string
get_cell_name( int _cell_row, int _cell_column )
{
	string	cell_name = base_name + "_cell_" + DoubleToStr( _cell_row, 0 ) + "_" + DoubleToStr( _cell_column, 0 );
	return( cell_name );
}

//=====================================================================
//	Ôóíêöèè ðàáîòû ñî ñòðîêîé / ÿ÷åéêîé:
//=====================================================================

//---------------------------------------------------------------------
//	Çàäàíèå àòðèáóòîâ ÿ÷åéêè â òàáëèöå:
//---------------------------------------------------------------------
int
set_cell_attributes( int _cell_row, int _cell_column, int _cell_x_pos, int _cell_y_pos, color _cell_color = Silver, int _cell_font_size = 8, string	_cell_font_name = "Arial" )
{
	string	cell_name;

//	1. Ïðîâåðèì êîððåêòíîñòü íîìåðîâ ñòðîêè è êîëîíêè, ÷òîáû íå êðýøèòü òåðìèíàë:
	if( _cell_row < 0 || _cell_row >= rows_number )
		return( -1 );

	if( _cell_column < 0 || _cell_column >= columns_number )
		return( -1 );

//	2. Ñîõðàíèì â ìàññèâàõ çàäàííûå ïàðàìåòðû ÿ÷åéêè:
	cell_color[ _cell_row ][ _cell_column ] = _cell_color;
	cell_font_size[ _cell_row ][ _cell_column ] = _cell_font_size;
	cell_font_name[ _cell_row ][ _cell_column ] = _cell_font_name;
	cell_x_position[ _cell_row ][ _cell_column ] = _cell_x_pos;
	cell_y_position[ _cell_row ][ _cell_column ] = _cell_y_pos;

//	3. Óñòàíîâèì ñâîéñòâà îáúåêòà:
	cell_name = get_cell_name( _cell_row, _cell_column );
	ObjectSet( cell_name, OBJPROP_COLOR, _cell_color );
	ObjectSet( cell_name, OBJPROP_XDISTANCE, _cell_x_pos );
	ObjectSet( cell_name, OBJPROP_YDISTANCE, _cell_y_pos );

	return( 0 );
}

//---------------------------------------------------------------------
//	Âûâîä òåêñòà â ÿ÷åéêó:
//---------------------------------------------------------------------
void
set_cell_text( int _cell_row, int _cell_column, string _cell_text, color _cell_color = CLR_NONE, int _cell_font_size = 0, string	_cell_font_name = "" )
{
	string	cell_name;
	color 	c_color = _cell_color;
	int 		font_size = _cell_font_size;
	string	font_name = _cell_font_name;

	if( c_color == CLR_NONE )
		c_color = cell_color[ _cell_row ][ _cell_column ];

	if( font_size == 0 )
		font_size = cell_font_size[ _cell_row ][ _cell_column ];

	if( font_name == "" )
		font_name = cell_font_name[ _cell_row ][ _cell_column ];

	cell_name = get_cell_name( _cell_row, _cell_column );
	ObjectSetText( cell_name, _cell_text, font_size, font_name, c_color );
}

//---------------------------------------------------------------------
//	Î÷èñòêà ñòðîêè â òàáëèöå:
//---------------------------------------------------------------------
void
clear_row( int _row, int _start_column = 0, int _end_column = COLUMNS )
{
	string	cell_name;
	int			end_column;

	if( _end_column == COLUMNS )
		end_column = columns_number;
	else
		end_column = _end_column;

	for( int column = _start_column; column < end_column; column++ )
	{
		cell_name = get_cell_name( _row, column );
		ObjectSetText( cell_name, "" );
	}
}

//---------------------------------------------------------------------
//	Î÷èñòêà êîëîíêè â òàáëèöå:
//---------------------------------------------------------------------
void
clear_column( int _column, int _start_row = 0, int _end_row = ROWS )
{
	string	cell_name;
	int			end_row;

	if( _end_row == ROWS )
		end_row = rows_number;
	else
		end_row = _end_row;

	for( int row = _start_row; row < end_row; row++ )
	{
		cell_name = get_cell_name( row, _column );
		ObjectSetText( cell_name, "" );
	}
}


//=====================================================================
//	Ôóíêöèè ðàáîòû ñ òàáëèöåé:
//=====================================================================

//---------------------------------------------------------------------
//	Èíèöèàëèçàöèÿ òàáëèöû:
//---------------------------------------------------------------------
//	- ñîçäàåò òàáëèöó ðàçìåðîì "_rows" ñòðîê íà "_columns" ñòîëáöîâ;
//	- èíèöèàëèçèðóåò àòðèáóòû ÿ÷ååê çàäàííûìè çíà÷åíèÿìè ( öâåò, ôîíò );
//	- 
//---------------------------------------------------------------------
void
create_table( int _window_number, string _base_name, int _rows = ROWS, int _columns = COLUMNS )
{
	int			window_index;
	string	name;

	base_name = _base_name;

//	×èñëî êîëîíîê â òàáëèöå:
	if( _columns <= 0 || _columns > COLUMNS )
		columns_number = COLUMNS;
	else
		columns_number = _columns;

// ×èñëî ñòðîê â òàáëèöå:
	if( _rows <= 0 || _rows > ROWS )
		rows_number = ROWS;
	else
		rows_number = _rows;

//	Ñîçäàäèì îáúåêòû äëÿ âûâîäà òåêñòà:
	for( int row = 0; row < rows_number; row++ )
	{
		for( int column = 0; column < columns_number; column++ )
		{
			name = get_cell_name( row, column );
			window_index = ObjectFind( name );

//	Åñëè äàííûé îáúåêò åùå íå ñóùåñòâóåò, òî ñîçäàäèì åãî:
			if( window_index != _window_number )
			{
				ObjectCreate( name, OBJ_LABEL, _window_number, 0, 0 );
				ObjectSet( name, OBJPROP_CORNER, 0 );
			}
			else
			{
				ObjectSet( name, OBJPROP_CORNER, 0 );
			}
		}
	}	
}

//---------------------------------------------------------------------
//	Î÷èñòêà òàáëèöû:
//---------------------------------------------------------------------
void
clear_table( int _start_row = 0, int _start_column = 0, int _end_row = ROWS, int _end_column = COLUMNS )
{
	int			window_index;
	int			end_row;
	int			end_column;
	string	name;

	if( _end_row == ROWS )
		end_row = rows_number;
	else
		end_row = _end_row;

	if( _end_column == COLUMNS )
		end_column = columns_number;
	else
		end_column = _end_column;

	for( int row = _start_row; row < end_row; row++ )
	{
		for( int column = _start_column; column < end_column; column++ )
		{
			name = get_cell_name( row, column );
			window_index = ObjectFind( name );
			if( window_index != -1 )
			{
				ObjectSetText( name, "" );
			}
		}
	}
}

//---------------------------------------------------------------------
//	Óäàëåíèå âñåõ îáúåêòîâ ñ ñîäåðæèìûì:
//---------------------------------------------------------------------
void
delete_table( )
{
	int			window_index;
	string	name;

	for( int row = 0; row < rows_number; row++ )
	{
		for( int column = 0; column < columns_number; column++ )
		{
			name = get_cell_name( row, column );
			window_index = ObjectFind( name );
			if( window_index != -1 )
			{
				ObjectDelete( name );
			}
		}
	}
}





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: