![]() |
Probleme mit Druckeransteuerung
Hi Leute....
ich stehe mal wieder vor einem kleinen Problemchen :/ Folgendes : Ich drucke aus meiner Anwendung heraus und nutze dazu folgenden KURZEN ansatz :
Delphi-Quellcode:
if PrintAuftrag.Execute then
begin . . . . end; Soweit so gut....ich bekomm die Druckerauswahl von Windows angezeigt und kann da auch schön Drucker nach belieben aussuchen, allerdings wird IMMER auf dem in Windows hinterlegten Standartdrucker gedruckt - WIESO ??? Kann ich das irgendwie ändern, OHNE immer vorher den Standartdrucker händig zu ändern ??? Vielen Dank. MFG Carsten |
Re: Probleme mit Druckeransteuerung
Hi,
nun ja, wie sieht denn dein eigentliches Drucken aus? Ohne ist es recht schwer zu sagen was schief läuft, oder? Gruß Der Unwissende |
Re: Probleme mit Druckeransteuerung
Aber noch ganz kurz zum Prinzip zum Drucken.
Am einfachsten machst du es dir, wenn du eine Methode erzeugst, die für die eigentliche Ausgabe zuständig ist (also was genau angezeigt werden soll). Die bekommt als Argument halt einen TCanvas und zeichnet dort etwas rauf.
Delphi-Quellcode:
Dann hast du an einer anderen Stelle den Aufruf des Druckerdialogs und der sieht dann so aus
procedure printSomething(const Canvas : TCanvas);
begin if assigned(Canvas) then begin // Zeichne irgendwas end; end;
Delphi-Quellcode:
Vielleicht siehst du hier schon den Vorteil dieser rangehensweise (kenne deine ja nicht), aber du kannst so auch leicht eine Vorschau erstellen. Statt einem PrinterCanvas übergibst du dort dann halt einen Bitmap-Canvas und zeigst das entsprechende Bitmap an.
procedure printOnPrinter;
begin if self.PrinterDialog1.Execute then begin Printer.BeginDoc; print(Printer.Canvas); Printer.EndDoc; end; end; Bei mir klappt das so jedenfalls mit jedem beliebigen Drucker. Gruß Der Unwissende |
Re: Probleme mit Druckeransteuerung
HI...
also ich rufe nach dem printauftrag.execute ein formular im hintergrund auf auf dem ich mit quickreport gearbeitet habe und gebe dann den print befehl. nun habe ich noch folgendes gefunden und bei mir eingebaut :
Delphi-Quellcode:
das geht aber immer noch nicht, obwohl mir der richtige drucker dann bei showmessage angezeigt wird.
if PrintAuftrag.Execute then
begin DruckerName := Printer.Printers [Printer.PrinterIndex]; showmessage ('*'+DruckerName+'*'); AssignFile (f, 'DruckerName'); rewrite(f); showmessage ('aktiver Drucker ab jetzt : '+Printer.Printers [Printer.PrinterIndex]); . . . es kommt immer noch auf dem standarddrucker raus :( ich hab da noch was gelesen von wegen windows bräuchte länger um die änderung zu registrieren - kann das sein ? und wenn ja, bin ich auf dem richtigen wege oder muss ich noch was hinzufügen ? *verzweifel* vielen dank mfg Carsten |
Re: Probleme mit Druckeransteuerung
Hi,
Du musst dem Quickreport sagen auf wechlen Drucker der Ausdruck erfolgen soll.
Delphi-Quellcode:
QuickRep1.PrinterSettings.PrinterIndex := MeinDrucker;
QuickRep1.PrinterSettings.Copies := 1; |
Re: Probleme mit Druckeransteuerung
@ all : erstmal tausend dank für eure hilfe !!
@ Mattin : wenn du hier wärst würd ich dir ne kiste bier spendieren ! :mrgreen: Man man man...ich hab das prob die ganze zeit auf dem hauptformular gesucht und nicht gedacht , dass ich quickrep extra noch den drucker dann zuweisen muss. Dachte dass wenn ich den vorher schon zuweise, der Drucker dann automatisch herangezogen wird. :wall: :wall: :wall: ABer nun gehts endlich. VIELEN VIELEN DANK NOCHMAL MFG Carsten :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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-2025 by Thomas Breitkreuz