AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

D2009 und PrinterSetupDialog

Ein Thema von KEK · begonnen am 14. Aug 2009 · letzter Beitrag vom 24. Aug 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 12:59
Zitat von S - tefano:
Nur leider: Der Dialog verhält sich nach der Änderung genauso wie vorher.
Du mußt die Datei in dein eigenes Souceverzeichnis kopieren (oder in ein Verzeichnis der Art "D2009-Fix") damit die gefixte Version statt der schon vorhandenen DCU gezogen wird.

Zitat von S - tefano:
Ich kann übrigens in der Dialogs.pas keinen richtigen Breakpoint setzen...weiß jemand wieso?
Das gleiche wie oben. Ansonsten wird die DCU ohne Debug-Infos gezogen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#12

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 13:19
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
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
KEK

Registriert seit: 16. Mai 2009
19 Beiträge
 
#13

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 18:44
Zitat von S - tefano:
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
Hallo hatte nich viel Zeit hab's nur mal überflogen ---
also soll der Abschnitt in GetPrinter

Delphi-Quellcode:
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;
nun so aussehen ?

Delphi-Quellcode:
 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;
Wenn nicht könntes mir deine fertige Unit mal ranhängen ???
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]
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 18:56
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;
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#15

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 19:53
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)..
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
KEK

Registriert seit: 16. Mai 2009
19 Beiträge
 
#16

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 20:12
[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
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
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 20:18
Zitat von S - tefano:
BlueStarHH: Hm. Wirklich komisch ^^
Wie sieht denn GetPrinter in Dialogs.pas bei Dir aus? Hab grob die gleiche Konfiguration (D2009 und XP)..
So sieht GetPrinter bei mir aus (OK mit D2009 unter XP):
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;
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#18

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 20:50
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.
Angehängte Dateien
Dateityp: pas dialogs_185.pas (200,8 KB, 12x aufgerufen)
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 20:59
Zitat von S - tefano:
Jo, dann hast Du aus irgendeinem Grund die richtige Version
Habt ihr alle auch die gesamten Updates für Delphi 2009 installiert?
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#20

Re: D2009 und PrinterSetupDialog

  Alt 21. Aug 2009, 21:05
Hab letztens schonmal danach geguckt, aber nicht gefunden wos die gibt
Laut Delphi-Info hab ich Updates 1 und 2...
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz