wie kriege ich das vom Programm ausgelesen?

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » Mi 8. Aug 2018, 10:53

moin,

ich versuche mich damit, verschiedene Sachen auszulesen. Wie bekomme ich die Eigenschaften vom Printer ausgelesen?

Bildschirmfoto_2018-08-08_11-43-14.png
Bildschirmfoto_2018-08-08_11-43-14.png (17.09 KiB) 1157 mal betrachtet
Ich bekomme nur die Linke Spalte (Symbol) ausgelesen, aber nicht die Werte aus der rechten Spalte dazu.
Gruss

vuott
Foriker
Beiträge: 84
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von vuott » Mi 8. Aug 2018, 22:28

Hello gambasso,
you have to use directly Printer Class, not its variable.

Ad exemplum: gambas code
Public Sub Form_Open()

  Dim pr As New Printer

  Print pr.Default   ' <------------------- THIS RETURNS AN ERROR !

  Print Printer.Default   ' <------------ this is OK !

End

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » Do 9. Aug 2018, 10:19

Hello vuott,

das bringt mit nichts, ich möchte die einzelnen Eigenschaften und dessen Werte auslesen und im Programm anzeigen.
Zum Beispiel die Papiergrößen und die Auflösung. (PaperHight, PaperWight, Resolution, .....)
Das dann in einer Schleife bzw. als Array.
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 13
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von cogier » Fr 10. Aug 2018, 15:22

Schauen Sie sich das beigefügte Programm an. Deutsch ist nicht meine Muttersprache, also verzeihen Sie bitte den Engländern.

Bild
Dateianhänge
Printer_Details.tar.gz
(12.96 KiB) 58-mal heruntergeladen

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » Fr 10. Aug 2018, 18:37

hello,

danke für Deine Mühe, aber Du gibst ja im Programm die EIGENSCHAFTEN schon vor und liest damit die Werte aus.
Das ist nict das Problem.
Ich möchte im Programm die Eigenschaften und die Werte auslesen.

with google:
Thank you for your effort, but you already give the PROGRAMS in the program and read out the values.
That's not the problem.
I would like to read the properties and the values in the program.
Gruss

vuott
Foriker
Beiträge: 84
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von vuott » Fr 10. Aug 2018, 20:10

gambasso hat geschrieben:
Fr 10. Aug 2018, 18:37
I would like to read the properties and the values in the program.
Ehmmmm..... Vergib uns, aber wir verstehen nicht, was du willst genau. :|

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » Sa 11. Aug 2018, 11:22

hello,

noch mal das Bild: / again the picture:
syst_prt_01_c.png
syst_prt_01_c.png (28.5 KiB) 1132 mal betrachtet
ich möchte im Programm sowohl die Symbole (im grünen Feld) sowohl auch die Werte (im roten Feld) auslesen.
Ich schaffe es nur die Symbole auszulesen. Wie bekomme ich die zugehörigen Werte auszulesen?
Das soll automatisch geschehen, ohne daß ich diese vorher eingeben muß, wie im Beispiel von 'cogier'.

with google:

I would like to read both the symbols (in the green field) and the values (in the red field) in the program.
I can only read the symbols. How can I read out the associated values?
This should happen automatically, without having to enter them before, as in the example of 'cogier'.
Gruss

vuott
Foriker
Beiträge: 84
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von vuott » Sa 11. Aug 2018, 15:03

gambasso hat geschrieben:
Sa 11. Aug 2018, 11:22
This should happen automatically, without having to enter them before
Maybe do you want to obtain the Constants of Printer Class ? :|
gambas code
Print Printer1.A4

Moreover, if you want to see symbols of Printer Class: gambas code
Public Sub Form_Open()

 Dim s As String

  For Each s In Class.Load("Printer").Symbols
    Print s
  Next
    
End

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » So 12. Aug 2018, 10:27

hello,

die 'Symbole' bekomme ich ohne probleme ausgelesen! Was mir fehlt, sind die Werte, (Value) aus den Symbolen. Die sollen, wie die Symbole auch, automatisch ausgelesen werden.

Beispiel, wenn es ein Array wäre:
gambas code
Dim Symb, Wert As Variant[]
Dim ii As Integer
' in Symb[] stehen die Symbole von Printer  / in Symb [] are the icons of Printer
For ii = 0 To Symb.Count -1
   S_Wert = Symb[ii].Value
   Wert.Add(S_Wert)
Next
Danach hätte ich die Werte von den Symbol-Einträgen.
Funktioniert aber leider nicht so.

über google:
The 'symbols' I get without problems! What I miss are the values, (Value) from the symbols. They should, like the symbols, be read out automatically.

Example, if it were an array:
.
.
.
After that I would have the values of the symbol entries.
Unfortunately it does not work that way.
Gruss

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von tux_ » So 12. Aug 2018, 14:34

Die Gambas-IDE benutzt die Debugger-API, um die Werte der Eigenschaften in deinem Bild anzuzeigen. Ein normales Gambas-Programm sollte das nicht tun, bzw. kenne ich, selbst wenn du es versuchen moechtest, niemanden außer Benoit selbst, der die Sprache der Debugger-API in Gambas ueberhaupt kennt. Aber da du nur bestimmte Eigenschaften auslesen und nicht die ganze Macht des Debuggers nutzen willst, kannst du dich der Introspektion bedienen:
gambas code
Dim sSym As String
Dim Printer As Class = Class.Load("Printer")

For Each sSym In Printer.Symbols
  If Printer[sSym].Hidden Then Continue

  Select Case Printer[sSym].Kind
    Case Class.Constant
      Print sSym;; "->";; Printer[sSym].Value;; "(constant)"

    Case Class.Property, Class.Variable
      If Printer[sSym].Static Then
        Print sSym;; "->";; Object.GetProperty(Printer, sSym);; "(static)"
      Else
        Print sSym;; "->";; Object.GetProperty(Printer1, sSym)
      Endif
  End Select
Next
Ich habe ein Printer-Objekt namens Printer1 und kriege das hier:

Code: Alles auswählen

A3 -> 1 (constant)
A4 -> 2 (constant)
A5 -> 3 (constant)
B5 -> 4 (constant)
List -> (String[] 0x55b324c2e2e8) (static)
Name -> HP_Officejet_2620_series
Page -> 0
Count -> 1
Legal -> 7 (constant)
Paper -> 2
Custom -> 0 (constant)
Duplex -> 0
Letter -> 5 (constant)
Default -> HP_Officejet_2620_series (static)
Simplex -> 0 (constant)
FullPage -> False
LastPage -> 0
Portrait -> 0 (constant)
Vertical -> 2 (constant)
Executive -> 6 (constant)
FirstPage -> 0
GrayScale -> False
Landscape -> 1 (constant)
NumCopies -> 1
Horizontal -> 1 (constant)
OutputFile -> 
PaperWidth -> 210
Resolution -> 1200
Orientation -> 0
PaperHeight -> 297
ReverseOrder -> False
CollateCopies -> False
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » So 12. Aug 2018, 17:14

hallo tux,

ich glaube das war es, ich muß es noch ausprobiren. Danke dafür.
Gerade versuche ich es in ein 'Struct-Array' einzulesen, sieht bisher ganz gut aus.

Vorher mußte ich die Werte von hand programmieren, kann ich jetzt auf diese Art machen.

Wie kann ich auf diese oder ähnlicherweise meinen Scanner auslesen?
Gruss

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » Fr 17. Aug 2018, 17:13

hallo Tux,

ausgelesen klappt, aber wie weise ich einen Wert zu, z.B. 'PaperWidth' ?

Ich habe es so von Dir übernommen und die angezeigten Symbole und Werte in ein 'Struct-Array' eingelesen. OK!
In Deinem Beispiel benutzt Du dieses : > Dim Printer As Class = Class.Load("Printer") <
In meinem Programm in der IDE hat der Drucker den Namen 'prtImage'.

Über diesen 'prtImage' laufen Zuweisungen problemlos durch.
Wenn diese aber dann auf Klick über dem Beispiel von Dir wieder einlese, hat der Drucker nur die 'Resolution' übernommen.
Alles andere hat sich nicht verändert. Wieso ist das so? Wie stelle ich die Papiergröße und alles Andere ein?

Vertragen sich 'prtImage' und 'Printer' nicht?
Gruss

gambasso
Foriker
Beiträge: 923
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie kriege ich das vom Programm ausgelesen?

Beitrag von gambasso » Fr 17. Aug 2018, 17:49

moin,

ich glaube, ich habe da was gefunden.
Ich muß zuerst 'prtImage.Paper' auf '0' setzen und dann die neue Papiergröße übermitteln, ohne dem übernimmt er das nicht.
Ich versuche weiter.
Gruss

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste