//--------------------------------------------------------------------- // 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: