0
Views
0
Downloads
0
Favorites
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 );
}
}
}
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---