AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Kleines Problem mit Canvas

Kleines Problem mit Canvas

Ein Thema von Schodn · begonnen am 4. Jan 2005 · letzter Beitrag vom 27. Feb 2005
 
Schodn

Registriert seit: 15. Nov 2004
Ort: Admont
140 Beiträge
 
#1

Kleines Problem mit Canvas

  Alt 4. Jan 2005, 13:15
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
griddruck(sg_messekalender,sg_messekalender.left,sg_messekalender.top,0.45); mfg

Franz
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz