Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Drucker Name (https://www.delphipraxis.net/175807-drucker-name.html)

MarkSE 20. Jul 2013 21:27

Drucker Name
 
Hallo World,
es tut mir aufrichtig leid, dass ich wohl vieles erst lernen muss:
ich hab vorhin ne Frage gestellt und auch Antworten bekommen. Aber ich kann nicht weiter diskutieren, obwohl ich angemeldet bin. Keine Ahnung warum, wahrscheinlich weil ich nur Fragen stellen darf und keine weitere Nachfragen:-(

Zu dem vorherigen thema hätte ich noch die Frage:
wie kann ich bitte von DruckerNamen aus auf DruckerIndex schliessen?
(ohne die ganze Liste durchgehen zu müssen)
LG Mark

mkinzler 20. Jul 2013 21:45

AW: Drucker Name
 
Tlist besitzt die Methode .IndexOf()

MarkSE 20. Jul 2013 22:12

AW: Drucker Name
 
Danke vielmals Kinzler, so funkuniert wunderbar:
index:= printer.Printers.IndexOf(form1.EdtDrIndex.Text) ;
Ich kann sogar jetzt weiter antworten, super Tag heute!

Perlsau 21. Jul 2013 06:30

AW: Drucker Name
 
Zitat:

Zitat von MarkSE (Beitrag 1222161)
Delphi-Quellcode:
index:= printer.Printers.IndexOf(form1.EdtDrIndex.Text);

1. Was machst du, wenn der Anwender in das bezeichnete Editfeld einen Druckernamen eingibt, der in der Liste nicht gefunden und desalb der Resultwert -1 zurückgeliefert wird?

2. Da du das bezeichnete Editfeld mit form1 referenzierst, solltest du wissen, daß du dir damit Fehlerquellen einhandelst, wenn du das innerhalb von form1 machst. Von einer anderen Unit aus, die im Implementationsteil Unit1 (die form1 enthält) referenziert, wäre das jedoch in Ordnung.

MarkSE 22. Jul 2013 19:19

AW: Drucker Name
 
Danke perlsau, das mit Form1. habe ich nicht gewusst.
Aber mein EditFeld ist readOnly, wird nur gespeichert. Ein anderes Programm liest dann später regelmäßig den Eintrag und druckt seine Sachen. So drucke ich aus einem DOS- Programm auf USB mit allen erdenklichen Formaten ;-)
Ich hatte anfänglich nur den PrinterIndex gespeichert und das hat gut funkuniert, solagne der Index unverändert blieb (keine zusätzliche Drucker installiert, kein wurde entfernt usw.)

MeierZwoo 23. Jul 2013 02:53

AW: Drucker Name
 
Den PrinterIndex statt des Namens zu speichern, ist auch bei ohne Veränderungen ziemlich sinnlos, weil Win bei jedem Start den Index neu vergibt - normal ist das ohne Änderungen identisch, aber darauf gibt es keine Gewähr.

Und bei einem Rückgabewert = -1 wird, wenn dieser durch dich nicht als ungültig verworfen wird, der aktuelle Printer benutzt. Das setzen des Printers mit Index -1 setzt den Printer auf den aktuellen und wechselt -1 gegen den Index des aktuellen aus.

mkinzler 23. Jul 2013 06:44

AW: Drucker Name
 
Deshalb speichert er auch den Druckernamen und ermittelt später den Index dazu.

Dies ist eine Folgefrage zu http://www.delphipraxis.net/175806-drucker-namen.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 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