Bonjour,

je souhaite imprimer le contenu d'un fichier sur mon imprimante par défaut.
Je n'ai pas souvenir qu'il fallait paramétrer Lazarus pour utiliser l'imprimante ! Est-ce le cas ?
J'ai déclaré dans ma fiche principale PrintersDlgs dans le Uses et dans la partie implémentation l'unité Printers...

J'avais déjà testé cette configuration, mais au moment du test, j'ai une erreur comme si l'objet imprimante n'avait pu être créé, c'est ce que je comprends de l'erreur.

Nom : Msg_3.jpg
Affichages : 174
Taille : 18,2 Ko

Je vous joins le code de mon test, dans lequel j'ai remplacé la lecture du fichier par la lecture de lignes Mémo :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
 
{-------------------------------------------------------------------------------
 Imprimer le Fichier des Alertes enregistrées
--------------------------------------------------------------------------------}
procedure TForm1.MenuItem2Click(Sender: TObject);
const
  CMargeG = 50;
  CMargeD = 50;
  CMargeH = 50;
var i: Integer;
    HCar : integer;
    LigSTR, LigHaut : Integer;
begin
  if PD.Execute then
  begin
    Hcar := Round(1.2 * Abs(Printer.Canvas.TextHeight('I')));   // hauteur de la Font
    try
      Printer.BeginDoc;
      Printer.Copies := PD.Copies;
      Printer.Canvas.Font.Name := 'Arial';
      Printer.Canvas.Font.Size := 10;
      Printer.Canvas.Font.Color := clRed;
      for i := 0 to (memo1.Lines.Count - 1) do
      begin
        Printer.Canvas.TextOut(CMargeG, LigHaut, memo1.Lines[i]);
        LigHaut := LigHaut + HCar;
        if LigHaut >= Printer.PageHeight then // saut de page
        begin
          Printer.NewPage;
          LigHaut := CMargeH;
        end;
      end;
    finally
      Printer.EndDoc;
    end;
  end;
end;
Pouvez-vous me dire ce que vous en pensez ?
Merci