Code:
//+------------------------------------------------------------------+
//| script program |
//+------------------------------------------------------------------+
int start()
{
string Header[]={"Spalte 1","Spalte 2"};
int ColWidth[]={9,9};
string Content[20][2];
for(int i=0;i<20;i++)
{
for(int j=0;j<2;j++)
{
Content[i][j]="Spalte "+(j+1)+", Zeile "+(i+1);
}
}
fObjLableTable("Table_a",Header,ColWidth,Content,5,10,10,12,Silver,Navy,true,Gainsboro,Black);
fObjLableTable("Table_b",Header,ColWidth,Content,45,110,10,10,Red,Yellow,true,Lime,Blue);
fObjLableTable("Table_c",Header,ColWidth,Content,125,180,10,8,Black,White,true,White,Black);
fObjLableTable("Table_d",Header,ColWidth,Content,250,230,10,6,Aqua,Navy,true,DodgerBlue,Yellow);
fObjLableTable("Table_e",Header,ColWidth,Content,80,270,10,4,Yellow,Red,true,Khaki,Black);
fObjLableTable("Table_f",Header,ColWidth,Content,30,295,10,2,Blue,Aqua,true,Red,Yellow);
}
void fObjLableTable(
string aName,
string aHeader[],
int aColWidth[],
string aContent[][],
int aX = 5,
int aY = 10,
int aRows = 30,
int tTableSize = 4,
color aHeaderBackColor = Silver,
color aHeaderTextColor = Navy,
bool aHeaderBold = true,
color aContentBackColor = Gainsboro,
color aContentTextColor = Black
)
{
int tFontSize;
int tBoxFontSize;
int tBoxWidth;
int tTextXMargin;
int tTextYMargin;
int tHeaderCorrector;
switch(tTableSize){
case 1: tFontSize=5; tBoxFontSize=10; tBoxWidth=8; tTextXMargin=5; tTextYMargin=4; tHeaderCorrector=-1; break;
case 2: tFontSize=6; tBoxFontSize=14; tBoxWidth=10; tTextXMargin=6; tTextYMargin=5; tHeaderCorrector=-1; break;
case 3: tFontSize=7; tBoxFontSize=16; tBoxWidth=12; tTextXMargin=6; tTextYMargin=6; tHeaderCorrector=-1; break;
case 4: tFontSize=8; tBoxFontSize=18; tBoxWidth=14; tTextXMargin=6; tTextYMargin=6; tHeaderCorrector=-1; break;
case 5: tFontSize=10; tBoxFontSize=22; tBoxWidth=17; tTextXMargin=8; tTextYMargin=8; tHeaderCorrector=-1; break;
case 6: tFontSize=12; tBoxFontSize=26; tBoxWidth=20; tTextXMargin=9; tTextYMargin=9; tHeaderCorrector=-2; break;
case 7: tFontSize=14; tBoxFontSize=32; tBoxWidth=24; tTextXMargin=12; tTextYMargin=12; tHeaderCorrector=-2; break;
case 8: tFontSize=16; tBoxFontSize=36; tBoxWidth=28; tTextXMargin=15; tTextYMargin=15; tHeaderCorrector=-3; break;
case 9: tFontSize=18; tBoxFontSize=42; tBoxWidth=32; tTextXMargin=18; tTextYMargin=18; tHeaderCorrector=-4; break;
case 10: tFontSize=20; tBoxFontSize=46; tBoxWidth=35; tTextXMargin=18; tTextYMargin=18; tHeaderCorrector=-4; break;
case 11: tFontSize=22; tBoxFontSize=48; tBoxWidth=37; tTextXMargin=18; tTextYMargin=18; tHeaderCorrector=-4; break;
case 12: tFontSize=24; tBoxFontSize=52; tBoxWidth=40; tTextXMargin=21; tTextYMargin=21; tHeaderCorrector=-6; break;
}
int tCollXPOsAdd_1=0;
int tCollXPOsAdd_2=0;
int tCollXPOsAdd_3=0;
string tHeaderFont="Arial";
int tHeaderYAdd=0;
if(aHeaderBold){
tHeaderFont=tHeaderFont+" Black";
tHeaderYAdd=tHeaderCorrector;
}
int tBoxHeight=tBoxWidth+1;
int tHeaderCounter=0;
int tRowCounter=0;
int tWindowNumber=0;
for(int tk=0;tk<ArraySize(aContent)/ArraySize(aHeader);tk++)
{
if(tRowCounter==0)
{
tCollXPOsAdd_1=0;
for(int ti=0;ti<ArraySize(aHeader);ti++)
{
for(int tj=0;tj<aColWidth[ti];tj++)
{
string tName=aName+"_hb_"+tHeaderCounter+"_"+ti+"_"+tj;
fObjLabel(tName,aX+tCollXPOsAdd_2+tCollXPOsAdd_1+tj*tBoxWidth,aY,"n",0,aHeaderBackColor,tBoxFontSize,0,"WingDings",false);
}
fObjLabel(aName+"_ht_"+tHeaderCounter+"_"+ti,aX+tCollXPOsAdd_2+tCollXPOsAdd_1+tTextXMargin,aY+tTextYMargin+tHeaderYAdd,aHeader[ti],0,aHeaderTextColor,tFontSize,0,tHeaderFont,false);
tCollXPOsAdd_1+=aColWidth[ti]*tBoxWidth+1;
}
tCollXPOsAdd_3=tCollXPOsAdd_2;
tCollXPOsAdd_2+=tCollXPOsAdd_1+3;
tHeaderCounter++;
}
tCollXPOsAdd_1=0;
for(ti=0;ti<ArraySize(aHeader);ti++)
{
for(tj=0;tj<aColWidth[ti];tj++)
{
fObjLabel(aName+"_cb_"+tHeaderCounter+"_"+tRowCounter+"_"+ti+"_"+tj,aX+tCollXPOsAdd_3+tCollXPOsAdd_1+tj*tBoxWidth,aY+tRowCounter*tBoxHeight+tBoxHeight,"n",0,aContentBackColor,tBoxFontSize,0,"WingDings",false);
}
fObjLabel(aName+"_ct_"+tHeaderCounter+"_"+tRowCounter+"_"+ti,aX+tCollXPOsAdd_3+tCollXPOsAdd_1+tTextXMargin,aY+tTextYMargin+tRowCounter*tBoxHeight+tBoxHeight,aContent[tk][ti],0,aContentTextColor,tFontSize,0,"Arial",false);
tCollXPOsAdd_1+=aColWidth[ti]*tBoxWidth+1;
}
tRowCounter++;
if(tRowCounter>=aRows)
{
tRowCounter=0;
}
}
WindowRedraw();
}
void fObjLabel(
string aObjectName,
int aX,
int aY,
string aText,
int aCorner = 0,
color aColor = Red,
int aFontSize = 8,
int aWindowNumber = 0,
string aFont = "Arial",
bool aBack = false
)
{
if(ObjectFind(aObjectName)!=aWindowNumber)
{
ObjectCreate(aObjectName,OBJ_LABEL,aWindowNumber,0,0);
}
ObjectSet(aObjectName,OBJPROP_XDISTANCE,aX);
ObjectSet(aObjectName,OBJPROP_YDISTANCE,aY);
ObjectSetText(aObjectName,aText,aFontSize,aFont,aColor);
ObjectSet(aObjectName,OBJPROP_BACK,aBack);
ObjectSet(aObjectName,OBJPROP_CORNER,aCorner);
}