AGB  ·  Datenschutz  ·  Impressum  







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

[gelöst] Lazarus: StringGrid drucken

Ein Thema von Kralle · begonnen am 18. Feb 2015 · letzter Beitrag vom 19. Feb 2015
Antwort Antwort
Seite 3 von 5     123 45   
Kralle

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

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:02
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"
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
BadenPower

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

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:04
Was steht in unit1.pas in der Zeile 252 ?


Die Druckfunktion von swiss funktioniert einwandfrei. Habe ich hier gerade mit Lazarus getestet.
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
355 Beiträge
 
Delphi XE7 Professional
 
#23

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:16
Was steht in unit1.pas in der Zeile 252 ?
 Y2 := 450;
Die Druckfunktion von swiss funktioniert einwandfrei. Habe ich hier gerade mit Lazarus getestet.
In welchem Kontext? Mal eben Ein Grid platziert und das ausgedruckt?

Gruß heiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
BadenPower

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

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:19
In welchem Kontext? Mal eben Ein Grid platziert und das ausgedruckt?
Yupp.


Schmeiss bitte einmal Deine gesamte Unit hoch.
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
355 Beiträge
 
Delphi XE7 Professional
 
#25

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:25
Schmeiss bitte einmal Deine gesamte Unit hoch.
Also, ich bin jetzt mal Deinen Weg hiermit gegangen:

Delphi-Quellcode:
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.
Und es gibt wieder ein "SIGSEGV"
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Kralle

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

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:27
Ich glaube mein Lazarus hat einen Schuß
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
BadenPower

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

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:39
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.
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
355 Beiträge
 
Delphi XE7 Professional
 
#28

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:44
So, habe jetzt nur Deinen Source in meine Unit kopiert und es funktioniert.
Die aus #25??
Allerdings musst Du vorher noch die Unit Types in die Uses-Klausel aufnehmen.
Steht da doch drin. Zwischen Grid und Windows.

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
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#29

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:44
kcontrols wäre auch eine Möglichkeit
http://www.tkweb.eu/en/delphicomp/

und wenn ich mich richtig entsinne hatte Lazreport auch ein Printgrid oder so ähnlich
  Mit Zitat antworten Zitat
BadenPower

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

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 17:49
So, habe jetzt nur Deinen Source in meine Unit kopiert und es funktioniert.
Die aus #25??
Ja, die aus #25.


Allerdings musst Du vorher noch die Unit Types in die Uses-Klausel aufnehmen.
Steht da doch drin. Zwischen Grid und Windows.
Habs gerade auch gesehen.
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.


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?
Du willst doch nicht ernsthaft die ganzen Deklarationen und Funktionen in Deinen Quelltext kopieren?
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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:54 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