title image


Smiley Re: String Grid mit Labels oben drüber ausdrucken


Procedure DruckeGrid(grd:TStringGrid; links,oben, vSpalte,bSpalte,vZeile,bZeile:integer; scal:double; farbig:boolean; txt: String);

function rech(i,j:integer):integer;

begin

result:=round(((i*j) / 72) * scal);

end;

var x,y,li,ob,re,un,waag,senk,a:integer;

r:Trect;

begin

if vZeile < 0 then vZeile:=0;

if vSpalte < 0 then vSpalte:=0;

if (bZeile >= grd.rowcount) or (bZeile < 0)

then bZeile:=grd.rowcount - 1;

if (bSpalte >= grd.colcount)or(bSpalte < 0)

then bSpalte:=grd.colcount - 1;

if vZeile > bZeile then begin

a:=vZeile;vZeile:=bZeile;bZeile:=a;

end;

if vSpalte > bSpalte then begin

a:=vSpalte;vSpalte:=bSpalte;bSpalte:=a;

end;

if (scal > 0) and (vZeile < grd.rowcount) and( vSpalte < grd.colcount) then begin

waag:=getdevicecaps(printer.handle,logpixelsx);

senk :=getdevicecaps(printer.handle,logpixelsy);

links := rech(links,waag);

oben := rech(oben, senk);

li := getdevicecaps(printer.handle,physicaloffsetx)+1+links;

a := rech(3,waag);

with printer do begin

Orientation := poPortrait;

Title := 'Kundenumsatz Tabelle' + txt2;

BeginDoc;

try

// Überschrift

Canvas.Font.Name := 'MS Sans Serif';

Canvas.Font.Style := [fsBold];

Canvas.Font.Size := 10;

Canvas.Textout( rech(22, waag) ,rech( 5, senk ), Txt );



for x:=vSpalte to bSpalte do begin

ob:=getdevicecaps(printer.handle,physicaloffsety)+1+oben;

re:=li+rech(grd.ColWidths[x]+1,waag);

for y:=vZeile to bZeile do begin

canvas.font := Grd.Font;

canvas.font.size:= round((canvas.font.size / 0.72) * scal);

canvas.font.color := ClBlack;

canvas.brush.color := clwhite;

un:=ob+rech(grd.RowHeights[y]+1,senk);

if (x < grd.fixedcols)or(y < grd.fixedrows)

then canvas.brush.color:= clSilver;



if grd.gridlinewidth > 0 then begin

canvas.pen.color:=$333333;

canvas.pen.width:=1;

canvas.pen.style:=pssolid

end else canvas.pen.style:=psclear;



canvas.rectangle(li,ob,re+2,un+2);

r := rect(li,ob,re+2,un+2);



r := rect(li+a,ob+1,re-a,un-2);

drawtext(canvas.handle,pchar(grd.Cells[x,y]),length(grd.Cells[x,y]), r,DT_SINGLELINE or DT_RIGHT);



ob:=un;

end;

li:=re;

end;

finally

enddoc;

end;

end;

end;

end;







aufruf mit

DruckeGrid( StringGrid,0,15,-1,-1,-1,-1, 1,true, ''BeliebigerText' );


Gruss anubis

Rechtschreibfehler sind geistiges Eigentum des Authors und dürfen ohne ausdrückliche Erlaubnis weder verändert oder kopiert werden.



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: