PrintDialog setzt PrinterIndex falsch
7. Jun 2013, 09:36
Hallo, ich habe ein merkwürdiges Problem mit PrintDialog.
Betriebssystem ist Windows XP SP3.
Bei Programmstart lasse ich die Liste der Printer ausgeben:
for i := 0 to Printer.Printers.Count-1 do
begin
FPPMessageBox(IntToStr(i) + ' ' + QuotedStr(Printer.Printers[i]), MB_OK + MB_ICONSTOP);
end;
Die Liste zeigt Drucker mit Index von 0 bis 4 an, z.B.
1 \\FS-01\MinoltaC-360_OG
Wenn ich dann PrintDialog.Execute aufrufe und einen Drucker auswähle, steht Printer.PrinterIndex auf 5!
Auch der Zugriff auf Printer.Printers[5] liefert keinen Fehler, sondern den Druckernamen
\\fs-01\MinoltaC-360_OG an IP_192.168.0.16
(also fast den gleichen wie vorher unter Index 1, außer der Kleinschreibung).
Ich habe dann vor und nach dem Aufruf von PrintDialog.Execute noch mal die Liste der Drucker ausgeben lassen,
siehe da, vor dem Aufruf sind es 5, nach dem Aufruf sind es 6 (von 0 bis 5).
PrintDialog zeigt aber nur 5 Drucker an.
Nach Verlassen der Funktion, in der PrintDialog.Execute aufgerufen wird, sind es wieder nur noch 5 Drucker,
und der gewählte mit der Nummer 5 wird nicht mehr gefunden.
Das Programm läuft auf ca. 10 PCs in der Firma, aber dieses Problem tritt nur auf einem PC auf.
Hat jemand eine Idee, wie das zu fixen ist?
|