![]() |
AW: Lazarus: StringGrid drucken
Irgendwie scheinen die Druck und die Suchfunktionen nicht sauber zu sein, so das man sie nicht einfach einbinden kann.
@ DeddyH: Jetzt bekomme ich keine Syntax-fehler aber wieder den "SIGSEGV" |
AW: Lazarus: StringGrid drucken
Was steht in unit1.pas in der Zeile 252 ?
Die Druckfunktion von swiss funktioniert einwandfrei. Habe ich hier gerade mit Lazarus getestet. |
AW: Lazarus: StringGrid drucken
Zitat:
Delphi-Quellcode:
Y2 := 450;
Zitat:
Gruß heiko |
AW: Lazarus: StringGrid drucken
Zitat:
Schmeiss bitte einmal Deine gesamte Unit hoch. |
AW: Lazarus: StringGrid drucken
Zitat:
Delphi-Quellcode:
Und es gibt wieder ein "SIGSEGV" :twisted:
unit Unit1;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids, Types, Windows, Printers; type { TForm1 } TForm1 = class(TForm) Button1: TButton; StringGrid1: TStringGrid; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} procedure PrintGrid(sGrid: TStringGrid; sTitle: string); var X1, X2: Integer; Y1, Y2: Integer; TmpI: Integer; F: Integer; TR: TRect; begin Printer.Title := sTitle; Printer.BeginDoc; Printer.Canvas.Pen.Color := 0; Printer.Canvas.Font.Name := 'Times New Roman'; Printer.Canvas.Font.Size := 12; Printer.Canvas.Font.Style := [fsBold, fsUnderline]; Printer.Canvas.TextOut(0, 100, Printer.Title); for F := 1 to sGrid.ColCount - 1 do begin X1 := 0; for TmpI := 1 to (F - 1) do X1 := X1 + 5 * (sGrid.ColWidths[TmpI]); Y1 := 300; X2 := 0; for TmpI := 1 to F do X2 := X2 + 5 * (sGrid.ColWidths[TmpI]); Y2 := 450; TR := Types.Rect(X1, Y1, X2 - 30, Y2); Printer.Canvas.Font.Style := [fsBold]; Printer.Canvas.Font.Size := 7; Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]); Printer.Canvas.Font.Style := []; for TmpI := 1 to sGrid.RowCount - 1 do begin Y1 := 150 * TmpI + 300; Y2 := 150 * (TmpI + 1) + 300; TR := Types.Rect(X1, Y1, X2 - 30, Y2); Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]); end; end; Printer.EndDoc; end; procedure TForm1.Button1Click(Sender: TObject); begin PrintGrid(StringGrid1, 'Print Stringgrid'); end; end. |
AW: Lazarus: StringGrid drucken
Ich glaube mein Lazarus hat einen Schuß
|
AW: Lazarus: StringGrid drucken
So, habe jetzt nur Deinen Source in meine Unit kopiert und es funktioniert.
Allerdings musst Du vorher noch die Unit Types in die Uses-Klausel aufnehmen. |
AW: Lazarus: StringGrid drucken
Zitat:
Zitat:
Wäre es eigentlich zulässig und machbar die Uses direkt in die Units zu packen in den sie gebraucht werden? Wenn ja, würden die Uses in der Procedure die anderen Uses ersetzen oder ergänzen? Gruß Heiko |
AW: Lazarus: StringGrid drucken
kcontrols wäre auch eine Möglichkeit
![]() und wenn ich mich richtig entsinne hatte Lazreport auch ein Printgrid oder so ähnlich |
AW: Lazarus: StringGrid drucken
Zitat:
Zitat:
Ich hatte Deine Uses nicht übernommen. Habe zu Sicherheit aber nochmals getestet mit den von Dir eingebundenen Units, auch in der gleichen Reihenfolge. Und es funktioniert immer noch. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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