AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemein Drucken ?

Ein Thema von Cyberbob_at_tot · begonnen am 13. Mär 2005 · letzter Beitrag vom 27. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#1

Allgemein Drucken ?

  Alt 13. Mär 2005, 15:55
Hallo zusammen,

ich will gerne ein Stringgrid drucken, dazu habe ich hier im Forum auch eine Procedure gefunden.
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);
    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;
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!

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
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Allgemein Drucken ?

  Alt 16. Mär 2005, 09:19
Hi,

die JVCL bietet glaube ich ein paar Komponenten, mit denen du Strings, Bilder usw. rendern kannst. http://jvcl.sourceforge.net
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Allgemein Drucken ?

  Alt 16. Mär 2005, 09:27
[OT]
Sorry, das kann ich mir jetzt grad nicht verkneifen!
Zitat:
Standdartseite
StandDart kriegste in fast jeder Kneipe!
[/OT]
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Allgemein Drucken ?

  Alt 16. Mär 2005, 09:45
Zitat von leddl:
[OT]
StandDart kriegste in fast jeder Kneipe!
[/OT]
Hehe, der war gut

Zum Thema...
Ich nutze für solche Zwecke die Komponente TEkRTF. Damit erstellst du z.B. in Word ein RTF Template, was dein Layout darstellt.
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Allgemein Drucken ?

  Alt 16. Mär 2005, 12:41
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!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Allgemein Drucken ?

  Alt 16. Mär 2005, 12:45
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!
Also net angemacht fühlen, bei sowas kann ich nur einfach nicht widerstehen!
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Allgemein Drucken ?

  Alt 16. Mär 2005, 12:47
Kein Problem!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
p3ps1

Registriert seit: 16. Dez 2003
Ort: Recklinghausen
87 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Allgemein Drucken ?

  Alt 27. Apr 2005, 12:29
Ich hab mittels der Suchen-Funktion die obige Procedure zum drucken gefunden.
Klappt auch alles wunderbar.
Ich hab die Procedure mit

GridDruck(sg1;0,0,1); aufgerufen um das ganze stringgrid zu druckn was auch geklappt hat.
Aber was muss ich jetzt übergeben, wenn ich eine bestimmte Zeile oder Spalte weglassen will?
Es geht schief was nur schiefgehen kann
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Allgemein Drucken ?

  Alt 27. Apr 2005, 12:36
Zitat von p3ps1:
Aber was muss ich jetzt übergeben, wenn ich eine bestimmte Zeile oder Spalte weglassen will?
Ganz einfach: Ein StringGrid, daß diese Zeile oder Spalte nicht enthält.
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.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Allgemein Drucken ?

  Alt 27. Apr 2005, 14:05
super idee! so einfach ! werd ich machen! danke!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:08 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