Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Kleines Problem mit Canvas (https://www.delphipraxis.net/37314-kleines-problem-mit-canvas.html)

Schodn 4. Jan 2005 13:15


Kleines Problem mit Canvas
 
Möchte ein Stringgrid drucken und ober dem Grid noch etwas hinschreiben
Das Stringgrid druckt er mir mit folgendem Code, aber wo schreib ich was rein um eine Überschrift ober dem Grid hinzuzufügen?

Kann mir das bitte wer sagen


Delphi-Quellcode:
procedure GridDruck(grd:TStringGrid;links,oben:word;scal:double);
var x,y,li,ob,re,un,waag,senk,h,a: integer;
s: string;
function rech(i,j:integer):integer;
begin
    result:=round(((i*j) / 72) * scal);
end;
begin
    if scal > 0 then
    begin
        waag:=getdevicecaps(printer.handle,logpixelsx);
        senk:=getdevicecaps(printer.handle,logpixelsy);    // hier + 200
        links:=rech(links,waag);
        oben:=rech(oben, senk);
        a:=rech(3,waag);
        li:=getdevicecaps(printer.handle,physicaloffsetx)+1+links;
        with printer do
        begin
            s:='Grid-Druck';
            title:=s;

            BeginDoc;
            Canvas.Font.Size := 30;

            canvas.font:=grd.font;
            canvas.font.size:=round((grd.font.size / 0.72) * scal);
            h:=canvas.textheight(s);
            canvas.pen.color:=$333333;
            for x:=0 to grd.colcount-1 do
            begin
                if grd.gridlinewidth > 0 then
                begin
                    canvas.pen.style:=pssolid;
                    canvas.pen.width:=1;
                end
                else
                    canvas.pen.style:=psclear;
                ob:=getdevicecaps(printer.handle,physicaloffsety)+1+oben;
                re:=li+rech(grd.ColWidths[x]+1,waag);
                for y:=0 to grd.rowcount-1 do
                begin
                     un:=ob+rech(grd.RowHeights[y]+1,senk);
                     if (x < grd.fixedcols) or (y < grd.fixedrows) then
                         canvas.brush.color:=grd.fixedcolor
                     else
                        canvas.brush.color:=grd.color;
                     canvas.rectangle(li,ob,re,un);
                     canvas.brush.style:=bsclear;
                     canvas.textrect(rect(li+a,ob+1,re-a,un-1),
                     li+a,ob+(un-ob-h)div 2,grd.Cells[x,y]);
                     ob:=un;
                end;
                canvas.brush.color:=clwhite;
                canvas.pen.style:=psclear;
                canvas.rectangle(li,ob+1,re,ob+h);
                li:=re;

            end;
            enddoc;
        end;
    end;
end;

Hier noch der aufruf der Funktion
Delphi-Quellcode:
griddruck(sg_messekalender,sg_messekalender.left,sg_messekalender.top,0.45);
mfg

Franz

Schodn 4. Jan 2005 14:27

Re: Kleines Problem mit Canvas
 
Ok problem Nr1 gelöst, aber wie kann ich noch eine grafik auf diese Seite drucken?

BKHero2004 27. Feb 2005 15:30

Re: Kleines Problem mit Canvas
 
Hallo,

vielleicht sagst Du dem Forum noch Deine Lösung, wie Du eine Überschrift über das Grid druckst?

Würde mich auf jeden Fall und das Forum denke ich auch, sehr freuen!!

Schönen Tag noch :-)

Gruß BKHero2004


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz