![]() |
[gelöst] Lazarus: StringGrid drucken
Moin,
jetzt suche ich schon seit 2 Tage nach einer funktionierenden Funktion um aus Lazarus heraus ein
Delphi-Quellcode:
auszudrucken.
Stringgrid
Ich schätze 99% der Treffer haben den Quellcode untereinander kopiert oder verlinkt. Gefunden habe ich:
Aber, entweder brechen die mit einem "ARG..."-Fehler ab oder sie benutzen Typen die von Irgendwo her kommen und deren
Delphi-Quellcode:
man vergessen hat anzugeben.
Uses
Außerdem scheinen die alle eher für altes Delphi als für aktulles Lazarus zu sein. Ich will keine riesige
Delphi-Quellcode:
mit x-Schaltern, sondern nur auf den Standard-Drucker ausdrucken.
Procedure
Wer kann helfen? Gruß Heiko |
AW: Lazarus: StrinfGrid drucken
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.
|
AW: Lazarus: StrinfGrid drucken
Hallo DeddyH,
Zitat:
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
bearbeitet haben und das Programm alles das macht was es soll, weiß ich nicht wieso jetzt schon weider so ein "SEGxxx"-Fehler kommt.
StringList.Free
Beim Debug komme ich genau bis zur Zeile
Delphi-Quellcode:
.
Printer.Title := sTitle;
Muss also eine Fehler in "Printers" sein - oder? Zitat:
Gruß Heiko |
AW: Lazarus: StringGrid drucken
Woher kommt denn sTitle? Im ersten Beispielcode heißt das Title und ist ein Parameter, der an die Druckroutine übergeben wird.
|
AW: Lazarus: StringGrid drucken
Moin,
Zitat:
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:
sTitle ist einer der beiden Übergabeparameter.
procedure TForm1.MI_DruckenClick(Sender: TObject);
begin PrintGrid(StringGrid1, 'Print Stringgrid'); end; Upps, habe den Code aus dem falschen Browserfenster übernommen. Moment ich binde den anderen nochmal ein ... Gruß HEiko |
AW: Lazarus: StringGrid drucken
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.
|
AW: Lazarus: StringGrid drucken
Was kommen denn für Code-Zeilen nach
Code:
?
Printer.Title := sTitle;
|
AW: Lazarus: StringGrid drucken
So, jetzt habe ich den anderen Code eingebunden und bei dem kennt Lazarus
Delphi-Quellcode:
nicht.
GetDeviceCaps
Delphi-Quellcode:
Gruß Heiko
//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; |
AW: Lazarus: StringGrid drucken
Die Unit Windows (oder wie die auch sonst heißen mag) ist eingebunden?
|
AW: Lazarus: StringGrid drucken
Moin,
Zitat:
und springt in Printers an diese Stelle:
Delphi-Quellcode:
Heiko
//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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 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 by Thomas Breitkreuz