int verthoriz=0; int shownums=1; char str[MAX_PATH]; word attr[MAX_PATH]; printstrat(int x,y,size,_text,_attr) { int i; for (i=0; i0)&&(s2>0)&&(!strcmp(s1,s2)) {//строки совпадают for(i=0;ititlelen)wsprintf(#temp," ...%s ",strlen(fname)+fname-titlelen+3); else wsprintf(#temp," %s ",fname); for(i=0;temp[i];i++){ str[i+1]=temp[i]; attr[i+1]=0x1E; } if(!shownums) { wsprintf(#temp,"[%6d]",line); CopyMemory(xs1-9+#str,#temp,8); FillMemory(xs1-8*2+#attr,12,0x19); } printstrat(x1,y1,xs1,#str,#attr); } printpanel(dword line,linex ,x1,y1,xs1,ys1 ,x2,y2,xs2,ys2) { int i,j; int s,d,sl,dl; int line1,line2; for(j=line;jsrcfilenums.Count)linenum=srcfilenums.Count-ys; if(linenum<0) linenum=0; @redraw: if(!verthoriz) { printpanel(linenum,linex ,0,0 ,sbi_x/2 ,sbi_y ,sbi_x/2 ,0 ,sbi_x/2 ,sbi_y ); ys=sbi_y-2; } else { printpanel(linenum,linex ,0,0 ,sbi_x ,sbi_y/2 ,0 ,sbi_y/2 ,sbi_x ,sbi_y/2 ); if(sbi_y&1) { FillMemory(#str,sbi_x,'░'); FillMemory(#attr,sbi_x*2,0); printstrat(0,sbi_y-1,sbi_x,#str,#attr); } ys=sbi_y/2-2; } if (!ys) goto redraw; else { con_set_cursor_pos stdcall (2,0); ExitProcess(); } }