7. Norddeutsches Lazarustreffen am 20. Juni 2026

Alle Informationen zu Treffen der regionalen Lazarus-Gruppen
Antworten
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1353
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

7. Norddeutsches Lazarustreffen am 20. Juni 2026

Beitrag von kralle »

Moin,

Unser nächstes Treffen findet am

Samstag, dem 20.06.2026 um 11:00 Uhr statt.

Adresse:
Remise der Klosterpforte in Kloster-Oesede.
Königstraße 1,
49124 Georgsmarienhütte

Anmeldungen hier im Thread.

Anfahrt per Bahn bis Haltestelle: Kloster Oesede

Bahnhof Kloster Oesede; 100 m von der Remise entfernt.

Anfahrt per Auto: ausreichend Parkplätze in der näheren Umgebung.

Unkosten: Der Raum kostet uns aktuell 30€/Tag.
Der Betrag wird auf die Teilnehmenden umgelegt (Bargeld mitbringen wäre Klasse)

Nach dem offiziellen Treffen, gehen wir meistens noch Essen.

Wir freuen uns auf interessante Leute und Themen.

Gruß Kralle
OS: MX Linux, Linux Mint und Windows 11
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1353
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: 7. Norddeutsches Lazarustreffen am 20. Juni 2026

Beitrag von kralle »

Moin,

ich werde kommen und hätte da auch schon ein Thema, das mich interessiert:

Wie bekomme ich den Inhalt eines Memo, StringGrids und/oder eines Canvas auf Papier bzw. in eine PDF.
Bisher haben meine Programme Daten verarbeitet und wieder als Datei gespeichert, aber ich habe noch nie etwas ausgedruckt bzw. in eine PDF geschrieben.

Vielleicht kann das jemand quasi als kleinen Kurs, erklären.

Gruß Kralle
OS: MX Linux, Linux Mint und Windows 11
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

nummer8
Beiträge: 66
Registriert: Sa 30. Apr 2016, 10:20
OS, Lazarus, FPC: Windows 8 -11 ; linux Debian 13
CPU-Target: 32bit 64bit

Re: 7. Norddeutsches Lazarustreffen am 20. Juni 2026

Beitrag von nummer8 »

Kralle,

Hier ein kleines Beispiel.
Eine Funktion zum Erstellen der PDF-Datei und ein paar Hilfsfunktionen.

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
   fpPDF, FPImage, FPReadPNG, FPReadJPEG;

const
  ML   = 15.0;   // left margin mm
  MR   = 15.0;   // right margin mm
  MT   = 12.0;   // top margin mm
  PW   = 210.0;  // A4 width mm
  PH   = 297.0;  // A4 height mm
  ROW_H     = 6.0;

 var
  Doc:  TPDFDocument;
  Sec:  TPDFSection;
  Page: TPDFPage;

  FN, FB:    integer;  // font indices normal/bold
  Y, LX, VX: double;
  I:         integer;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure HLine(AY: double; AWide: double=0.3);
    procedure TB(AX, AY: double; const S: string; ASize: integer=9);
    procedure TN(AX, AY: double; const S: string; ASize: integer=9);

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.HLine(AY: double; AWide: double = 0.3);
 begin
   Page.DrawLine(ML, PH - AY, PW - MR, PH - AY, AWide);
 end;

 procedure TForm1.TN(AX, AY: double; const S: string; ASize: integer = 9);
 begin
   Page.SetFont(FN, ASize);
   Page.WriteText(AX, PH - AY, S);
 end;

 procedure TForm1.TB(AX, AY: double; const S: string; ASize: integer = 9);
 begin
   Page.SetFont(FB, ASize);
   Page.WriteText(AX, PH - AY, S);
 end;



procedure TForm1.Button1Click(Sender: TObject);

begin
   Doc := TPDFDocument.Create(nil);
  try
    Doc.Infos.Title  := 'TestDocument ';
    Doc.Infos.Author := 'My name';
    Doc.Options      := [poCompressText, poCompressFonts];
    Doc.StartDocument;

    FN := Doc.AddFont('Helvetica');
    FB := Doc.AddFont('Helvetica-Bold');

    Sec  := Doc.Sections.AddSection;
    Page := Doc.Pages.AddPage;
    Page.PaperType     := ptA4;
    Page.UnitOfMeasure := uomMillimeters;
    Sec.AddPage(Page);

    Y := Y + ROW_H;
    HLine(Y, 0.3);
    Y := Y + 5.5;

    // Regels
    for I := 0 to 10 do //length memo lines
    begin
      TN(ML,Y,'This is the line of text ('+ inttostr(I)+ ')' ,10);
      Y := Y + ROW_H;
    end;

    HLine(Y, 0.5);
    Y := Y + 5;


    Doc.SaveToFile('test.pdf');
  finally
    Doc.Free;
  end;

end;

end.


eine

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1353
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: 7. Norddeutsches Lazarustreffen am 20. Juni 2026

Beitrag von kralle »

Moin,

danke für das Beispiel.

Unter Linux muss man auch hier die Groß-/Kleinschreibung beachten:

Code: Alles auswählen

FN := Doc.AddFont('Helvetica');
FB := Doc.AddFont('Helvetica-Bold');
Das funktioniert hier nicht, weil die Schriften nicht gefunden werden.

Code: Alles auswählen

fn := doc.addfont('helvetica');
fb := doc.addfont('helvetica-bold');
Gruß Kralle
OS: MX Linux, Linux Mint und Windows 11
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Antworten