AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FreePascal [gelöst] Lazarus: StringGrid drucken
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Lazarus: StringGrid drucken

Ein Thema von Kralle · begonnen am 18. Feb 2015 · letzter Beitrag vom 19. Feb 2015
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#1

[gelöst] Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 14:58
Moin,

jetzt suche ich schon seit 2 Tage nach einer funktionierenden Funktion um aus Lazarus heraus ein Stringgrid auszudrucken.

Ich schätze 99% der Treffer haben den Quellcode untereinander kopiert oder verlinkt.

Gefunden habe ich:
  1. http://www.swissdelphicenter.ch/de/showcode.php?id=1577
  2. http://www.delphitricks.com/source-c...tringgrid.html
  3. https://sites.google.com/site/soundd...idmultilateral

Aber, entweder brechen die mit einem "ARG..."-Fehler ab oder sie benutzen Typen die von Irgendwo her kommen und deren Uses man vergessen hat anzugeben.
Außerdem scheinen die alle eher für altes Delphi als für aktulles Lazarus zu sein.

Ich will keine riesige Procedure mit x-Schaltern, sondern nur auf den Standard-Drucker ausdrucken.

Wer kann helfen?

Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),

Geändert von Kralle (18. Feb 2015 um 23:52 Uhr) Grund: gelöst
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Lazarus: StrinfGrid drucken

  Alt 18. Feb 2015, 15:05
Was genau willst Du drucken? Wenn wirklich das StringGrid, mach einen Screenshot, schneide das StringGrid-Rechteck daraus aus und schicke es an den Drucker. Oder soll eher der Inhalt des Grids gedruckt werden? Da scheint mir der erste verlinkte Code doch ganz gut geeignet, was für Fehler kommen denn da? Alternativ kannst Du auch auf eine Reporting-Engine ausweichen, ich weiß gerade nicht, ob Lazarus da schon etwas an Bord hat.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Lazarus: StrinfGrid drucken

  Alt 18. Feb 2015, 15:22
Hallo DeddyH,

Was genau willst Du drucken?
Den Inhalt des Grids mit waagerechten und senkrechten Linien.

Wenn wirklich das StringGrid, mach einen Screenshot, schneide das StringGrid-Rechteck daraus aus und schicke es an den Drucker.
Das Grid kann aber Höher und Breiter als der Bildschirm werden.

Da scheint mir der erste verlinkte Code doch ganz gut geeignet, was für Fehler kommen denn da?
Zitat:
Projekt ... hat eine Exception-Klasse >>External: SIGSEGV<< ausgelöst. Bei Adresse 403C60
Da wir ja nun gestern schon die Probleme mit dem StringList.Free bearbeitet haben und das Programm alles das macht was es soll, weiß ich nicht wieso jetzt schon weider so ein "SEGxxx"-Fehler kommt.
Beim Debug komme ich genau bis zur Zeile  Printer.Title := sTitle; .
Muss also eine Fehler in "Printers" sein - oder?

Alternativ kannst Du auch auf eine Reporting-Engine ausweichen, ich weiß gerade nicht, ob Lazarus da schon etwas an Bord hat.
Ich auch nicht.

Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:34
Woher kommt denn sTitle? Im ersten Beispielcode heißt das Title und ist ein Parameter, der an die Druckroutine übergeben wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:37
Moin,

Woher kommt denn sTitle? Im ersten Beispielcode heißt das Title und ist ein Parameter, der an die Druckroutine übergeben wird.
Delphi-Quellcode:
procedure PrintGrid(sGrid: TStringGrid; sTitle: string);
var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
begin
  Printer.Title := sTitle;
Delphi-Quellcode:
procedure TForm1.MI_DruckenClick(Sender: TObject);
begin
  PrintGrid(StringGrid1, 'Print Stringgrid');
end;
sTitle ist einer der beiden Übergabeparameter.

Upps, habe den Code aus dem falschen Browserfenster übernommen. Moment ich binde den anderen nochmal ein ...

Gruß HEiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:40
Und wenn Du die Zeile auskommentierst, knallt es beim nächsten Zugriff auf die Printer-Variable? In dem Fall scheint es unter Lazarus tatsächlich etwas anders zu sein als unter Delphi.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#7

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:41
Was kommen denn für Code-Zeilen nach
Code:
Printer.Title := sTitle;
?
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#8

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:41
So, jetzt habe ich den anderen Code eingebunden und bei dem kennt Lazarus
GetDeviceCaps nicht.

Delphi-Quellcode:
 //Druck auf mm einstellen
  mmx := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH) /
    GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
  mmy := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT) /
    GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) * 25.4;
Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:42
Die Unit Windows (oder wie die auch sonst heißen mag) ist eingebunden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#10

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 15:44
Moin,

Und wenn Du die Zeile auskommentierst, knallt es beim nächsten Zugriff auf die Printer-Variable? In dem Fall scheint es unter Lazarus tatsächlich etwas anders zu sein als unter Delphi.
Ja.
und springt in Printers an diese Stelle:
Delphi-Quellcode:
//Raise error if Printer.Printing is not Value
procedure TPrinter.CheckPrinting(Value: Boolean);
begin
  if Printing<>Value then
  begin
    if Value then
      raise EPrinter.Create('Printer is not printing')
    else
      raise Eprinter.Create('Printer is printing');
  end;
end;
Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    

 

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:05 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