Einzelnen Beitrag anzeigen

lnaemi

Registriert seit: 9. Okt 2008
Ort: Vösendorf
27 Beiträge
 
#1

DBGrid direkt an Drucker schicken-Fehler:Zugriffsverletzung

  Alt 11. Dez 2008, 11:09
Datenbank: Oracle • Version: ??? • Zugriff über: Sql-String
Liebe Experten,
ich benutze einen netzwerkdrucker, schon gemappt.

gleich bei drucker.BeginDoc; schreibt oben erwähnte Fehlermeldung : "Zugriffsverletzung bei Adresse 004..."

woran kann das liegen?

bitte um eure antworten!



Delphi-Quellcode:
procedure TfrmMain.btnPrintUsersClick(Sender: TObject);

var
   sName, SQL, sRole, sUSR_Nr, sDSC, sACTIVE_DT :String;
   iCount:Integer;
   drucker : TPrinter;
    zeile_im_grid, gedruckte_zeile : Integer;
    zeilenhoehe, position_in_zeile : Int64;
    spalte_im_grid : Integer;
    my_rect : TRect;
    rueckgabe : Integer;
    abstand,i, gesamtbreite : Integer;
    spaltenbreite : Array Of Integer;
begin
    TRY
    drucker.BeginDoc;
    drucker.Title := 'Liste der aktiven Benutzer in BAForms';
    drucker:=TPrinter.Create;
    drucker.Canvas.Font.Name:='Arial';
    drucker.Canvas.Font.Size:=8;
    drucker.Canvas.Font.Color:=clBlack;
    drucker.Orientation:= poPortrait;
    abstand:=Round(45/1171*drucker.canvas.TextWidth('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'));
    drucker.canvas.textout(100,-100,drucker.Title);

   {   for spalte_im_grid:=0 TO DM.qry1.RecordCount-1 DO
    begin
       sRole := DM.qry1.Fields[0].AsString;
       sUSR_Nr := DM.qry1.Fields[1].AsString;
        sACTIVE_DT := DM.qry1.Fields[2].AsString;
        sDSC := DM.qry1.Fields[3].AsString;
        sName := DM.qry1.Fields[4].AsString;
    end;   }



     // statusbar1.Panels[2].Text:='Drucken ... (Zeile '+IntToStr(zeile_im_grid)+' von '+IntToStr(DM.qry1.RecordCount)+')';

      Application.ProcessMEssages;
      drucker.Canvas.Font.Style:=drucker.Canvas.Font.Style+[fsBold];
      //inc(zeile_im_grid);
      drucker.EndDoc;
    drucker.Free;

      EXCEPT
          on E: EDatabaseError do ShowMessage(E.Message);
      ELSE
          Application.MessageBox('Drucken fehlgeschlagen!', 'Fehler!');
      END;
end;
I'm the ONE!
  Mit Zitat antworten Zitat