![]() |
Allgemein Drucken ?
Hallo zusammen,
ich will gerne ein Stringgrid drucken, dazu habe ich hier im Forum auch eine Procedure gefunden.
Delphi-Quellcode:
Ist mir aber alles zu wirsch, habe das das Problem, das ich die Seite nicht ins Querformat bekomme und der ausdruck einfach scheiße aussieht!
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); 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:=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; Meine Frage ich nun, kann man es hinbekommen, eine Standdartseite zu machen wo dann das Stringgrid ausgeben wird ? z.b einen Schriftzug und ein Bild und um den Inhalt des Stringgrid einen Rahmen. Gibt es da komponenten oder Anleitungen ? MFG Cyberbob |
Re: Allgemein Drucken ?
Hi,
die JVCL bietet glaube ich ein paar Komponenten, mit denen du Strings, Bilder usw. rendern kannst. ![]() |
Re: Allgemein Drucken ?
[OT]
Sorry, das kann ich mir jetzt grad nicht verkneifen! :mrgreen: Zitat:
[/OT] |
Re: Allgemein Drucken ?
Zitat:
Zum Thema... Ich nutze für solche Zwecke ![]() |
Re: Allgemein Drucken ?
ja man die Rechtschreibfehler, schleichen sich eben immer ein, wenn man schnell tippt!
egal also zum Thema, die von Jelly vorgeschlagene Komponente hört sich genau nach dem an was ich suche. Muss ich mir daher mal ansehen, danke für die Vorschläge, nicht immer wegen Rechtschreibfehler meckern, Jungs! |
Re: Allgemein Drucken ?
Jetzt muß ich glatt nochmal OT, aber geht net anders.
Hab ja net gemeckert wegen dem Rechtschreibfehler. Ich fand den nur lustig. Ich mein Standard mit "t" sieht man öfters, aber dann noch 2 "d"s? Das wars wert! :mrgreen: Also net angemacht fühlen, bei sowas kann ich nur einfach nicht widerstehen! ;) |
Re: Allgemein Drucken ?
Kein Problem!
|
Re: Allgemein Drucken ?
Ich hab mittels der Suchen-Funktion die obige Procedure zum drucken gefunden.
Klappt auch alles wunderbar. Ich hab die Procedure mit
Delphi-Quellcode:
aufgerufen um das ganze stringgrid zu druckn was auch geklappt hat.
GridDruck(sg1;0,0,1);
Aber was muss ich jetzt übergeben, wenn ich eine bestimmte Zeile oder Spalte weglassen will? |
Re: Allgemein Drucken ?
Zitat:
Oder aber du schreibst die Funktion so um, daß du als Parameter angeben kannst, welche Zeilen/Spalten weggelassen werden sollen. Danach mußt du dir nur noch die beiden For-Schleifen dementsprechend anpassen. |
Re: Allgemein Drucken ?
super idee! so einfach ! werd ich machen! danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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