![]() |
Re: D2009 und PrinterSetupDialog
Zitat:
Zitat:
|
Re: D2009 und PrinterSetupDialog
Woah, nicht zu fassen, es funktioniert! :)
Superduper, vielen Dank für den Tipp. Ohne dieses Interna-Wissen Deinerseits hätte ich da ja noch ewig rumraten können ;) |
Re: D2009 und PrinterSetupDialog
Zitat:
also soll der Abschnitt in GetPrinter
Delphi-Quellcode:
nun so aussehen ?
try
Offset := PChar(PByte(DevNames) + SizeOf(TDevnames)); with DevNames^ do begin wDriverOffset := Offset - PChar(DevNames); Offset := StrECopy(Offset, Driver) + 1; wDeviceOffset := Offset - PChar(DevNames); Offset := StrECopy(Offset, Device) + 1; wOutputOffset := Offset - PChar(DevNames);; StrCopy(Offset, Port); end; finally GlobalUnlock(DeviceNames); end;
Delphi-Quellcode:
Wenn nicht könntes mir deine fertige Unit mal ranhängen ???
try
Offset := PChar(PByte(DevNames) + SizeOf(TDevnames)); with DevNames^ do begin wDriverOffset := Longint(Offset) - Longint(DevNames); ???? Offset := StrECopy(Offset, Driver) + 1; wDeviceOffset := Longint(Offset) - Longint(DevNames); ???? Offset := StrECopy(Offset, Device) + 1; wOutputOffset := Longint(Offset) - Longint(DevNames); ???? StrCopy(Offset, Port); end; finally GlobalUnlock(DeviceNames); end; Wär nett -- hab am WE keine Zeit und könnte am Momtag noch die Änderungen wegschicken. Danke Kurti [edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit] |
Re: D2009 und PrinterSetupDialog
Komisch, bei mir mit Delphi 2009 und XP klappt das QC-Beispiel aus Beitrag #9 ohne Probleme. Der Drucker wird gewechselt.
Delphi-Quellcode:
Printer.PrinterIndex := 0;
PageSetupDialog1.Execute; Printer.PrinterIndex := 1; PageSetupDialog1.Execute; |
Re: D2009 und PrinterSetupDialog
KEK: Genau andersrum ;)
Der untere Ausschnitt den Du gepostet hast, müsste der sein der jetzt momentan in Deinem GetPrinter steht. Der darüber (der ohne Longint) ist der, wie er aussehen muss um zu funktionieren. Desweiteren noch den Hinweis von Bernhard beachten, dass die modifizierte Dialogs.pas bspw. in Deinem Programmverzeichnis liegen sollte. BlueStarHH: Hm. Wirklich komisch ^^ Wie sieht denn GetPrinter in Dialogs.pas bei Dir aus? Hab grob die gleiche Konfiguration (D2009 und XP).. |
Re: D2009 und PrinterSetupDialog
[quote="S - tefano"]KEK: Genau andersrum ;)
Der untere Ausschnitt den Du gepostet hast, müsste der sein der jetzt momentan in Deinem GetPrinter steht. Der darüber (der ohne Longint) ist der, wie er aussehen muss um zu funktionieren. Desweiteren noch den Hinweis von Bernhard beachten, dass die modifizierte Dialogs.pas bspw. in Deinem Programmverzeichnis liegen sollte. Na das hat mich doch verwirrt .. meine dialogs.pas hatte ich ja schon mit ragehängt ... und die ist eben mit
Delphi-Quellcode:
:-((
wDriverOffset := Offset - PChar(DevNames);
Habs schnell mal mit beiden Syntax compiliert ... getestet auf Win2003 x86 (also auch XP) Win2008 und 2008R2, WIn 7 x86 u. x64 RTM = nöö geht nich = also kein 'Fehler' vom BS sondern im D12 Programm. Kannst mir nicht deine Unit mal reinkopieren, wenn du sagt 'es geht jetzt' ??? Danke + Gruß Kurti |
Re: D2009 und PrinterSetupDialog
Zitat:
Delphi-Quellcode:
var
Device, Driver, Port: array[0..1023] of char; DevNames: PDevNames; Offset: PChar; begin Printer.GetPrinter(Device, Driver, Port, DeviceMode); if DeviceMode <> 0 then begin DeviceNames := GlobalAlloc(GHND, SizeOf(TDevNames) + (StrLen(Device) + StrLen(Driver) + StrLen(Port) + 3) * SizeOf(Char)); DevNames := PDevNames(GlobalLock(DeviceNames)); try Offset := PChar(PByte(DevNames) + SizeOf(TDevnames)); with DevNames^ do begin wDriverOffset := Offset - PChar(DevNames); Offset := StrECopy(Offset, Driver) + 1; wDeviceOffset := Offset - PChar(DevNames); Offset := StrECopy(Offset, Device) + 1; wOutputOffset := Offset - PChar(DevNames);; StrCopy(Offset, Port); end; finally GlobalUnlock(DeviceNames); end; end; end; |
Re: D2009 und PrinterSetupDialog
Liste der Anhänge anzeigen (Anzahl: 1)
Jo, dann hast Du aus irgendeinem Grund die richtige Version ;)
@KEK: Hab sie Dir mal angehängt, wenn die so im Programmverzeichnis liegt funktionierts bei mir. |
Re: D2009 und PrinterSetupDialog
Zitat:
|
Re: D2009 und PrinterSetupDialog
Hab letztens schonmal danach geguckt, aber nicht gefunden wos die gibt ;)
Laut Delphi-Info hab ich Updates 1 und 2... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:02 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