Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi rpdev-Eigenschaften auslesen (https://www.delphipraxis.net/114999-rpdev-eigenschaften-auslesen.html)

WIng2005 4. Jun 2008 08:27


rpdev-Eigenschaften auslesen
 
Hallo,

ich hatte schoneinmal in nem anderen Thread mein Problem beschrieben. Da sich ein weiteres kleineres Problem ergeben hat, versuche ich mein Glück mal in nem neuen Thread.
Also:

Ich möchte via Rave einen Labeldrucker ansteuern. Funktioniert soweit auch. Nun wollte ich den Druckdialog nutzen,
um die Einstellungen des Druckers einmalig einzustellen und in einer ini abzulegen. So
könnte ich das Ausrufen des Dialogs vor dem Druck sparen. Den Drucker selbst lese ich mit
Delphi-Quellcode:
drucker:=rpdev.Device;
aus und setze den selbigen vor dem Druck mit
Delphi-Quellcode:
RpDev.SelectPrinter(drucker,true);
Das setzten der Papiergröße funktioniert soweit auch
Delphi-Quellcode:
rpdev.SelectPaper('A3',true);
.... das nütz mir jedoch nichts, wenn ich es nicht hinbekomme, die selbigen auch nach dem Dialog auszulesen.
Was mir noch große Probleme bereitet ist das Lesen der Papierausrichtung.
Setzen kann ich sie mit:

rpdev.Orientation:=poportrait;

Nur wie bekomme ich rpdev.Orientation als String zurück?


Vielleicht hat hier jemand nen Denkanstoß?

MFG
Steffen

ralfschwalbe 4. Jun 2008 08:51

Re: rpdev-eigenschaften auslesen
 
Hi,

warum soll es unbedingt ein string sein?

In deiner INI kannst du doch auch Integer speichern:

Delphi-Quellcode:
i := Byte(poportrait);
oder wenns unbedingt string sein soll:

Delphi-Quellcode:
s := IntToStr(Byte(poportrait));
Einlesen und zuweisen das ganze mit:

TPrinterOrientation(Byte(i)) wenn i ein Int ist.

OregonGhost 4. Jun 2008 08:51

Re: rpdev-Eigenschaften auslesen
 
Zitat:

Zitat von WIng2005
rpdev.Orientation:=poportrait;

Nur wie bekomme ich rpdev.Orientation als String zurück?

Warum willst du sie überhaupt als String haben? Das ist doch schon ein erstklassiger Wert.

WIng2005 4. Jun 2008 09:04

Re: rpdev-Eigenschaften auslesen
 
Naja, weil ich die Werte in eine ini schreiben wollte....wobei ich dann natürlich auch den integer-Wert nehmen kannn.
Die direkte Zuweisung des integer-Wertes auf die TOrientation is mit nur irgendwie noch nicht klar.

MFG
Steffen

ralfschwalbe 4. Jun 2008 09:06

Re: rpdev-Eigenschaften auslesen
 
Guckst Du:
Delphi-Quellcode:
rpdev.Orientation := TPrinterOrientation(Byte(i))

WIng2005 4. Jun 2008 09:10

Re: rpdev-Eigenschaften auslesen
 
Mmmh, gut... dumm von mir...vielen Dank!
Das sollte mein Problem lösen... bleibt nur noch die Frage nach der Papiergröße...

MFG
Steffen

WIng2005 4. Jun 2008 10:57

Re: rpdev-Eigenschaften auslesen
 
Die Eigenschaft rpdev.papers beinhaltet alle unterstützten Formate.
Via rpdev.Papers.ValueFromIndex sollte ich doch eigentlich das aktuell gewählte Format auslesen können, oder?
Die Frage ist, wie ich an den aktuellen Index komme....

Suche mir hier echt schon seit gestern nen Wolf

MFG
Steffen

WIng2005 4. Jun 2008 16:47

Re: rpdev-Eigenschaften auslesen
 
hat denn wirklich niemand eine Idee zum Thema...bin echt am Verzweifeln...
MFG
Steffen

WIng2005 6. Jun 2008 05:28

Re: rpdev-Eigenschaften auslesen
 
-das-Thema-ein-letztes-mal-nach-oben-schieb-

Sorry, aber komme echt keinen Meter voran...

MFG
Steffen

sx2008 6. Jun 2008 07:07

Re: rpdev-Eigenschaften auslesen
 
Dein Aufgabe ist ja, alle wesentlichen Properties vom Objekt rpdev (und aller Unterobjekte) zu speichern und später zu laden.
Dabei müssen alle Properties, die nicht vom Typ String sind in einen String umgewandelt werden.
Beim Laden aus der Ini-Datei müssen die Stringwerte wieder in die orginalen Typen gewandelt werden.

Nicht jeder hat Rave an Bord; also zeig doch mal die Klassendeklaration von rpdev.Papers!
Beim Papier wird es wohl so sein, dass Rave eine Liste aller verfügbaren Papiere bei Windows anfordert und in einer Stringliste verwaltet.
Das aktuelle Papier wird wohl über einen Index in diese Liste ausgewählt.
Würdest du diesen Index in der INI-Datei speichern, könnte es eine Verschiebung geben, wenn zwischenzeitlich Papiere hinzu oder entfernt werden.
Also speichert man besser den Papiernamen als String und beim Laden sucht man mit .IndexOf() nach dem Papier in der Liste.
Aber ohne die Klassendeklaration bleibt das noch Spekulation.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr.
Seite 1 von 2  1 2      

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