1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
//----------------------------------------------------------
// Variabili da inserire in: "Instance Variables"
//----------------------------------------------------------
string is_nome_printer [30], is_preferita
integer ii_num_stampante
//----------------------------------------------------------
// Evento 'Open' della window
//----------------------------------------------------------
//========= GESTIONE STAMPANTI ==========
//
// Evento : Open della window che contiene la list_box
// ed i due bottoni operativi
//
// Ovviamente questo codice può essere liberamente gestito,
// anche in una funzione
//--------------------------------------------------------------
// Ipotesi di gestione : max 30 stampanti (ovviamente possono essere aumentate)
integer li_max_stampanti = 30
long ll_ind1, ll_ind2
string ls_nomistampanti, ls_set_printer, ls_nome
integer li_for, li_return
// ottengo una lunga stringa nella quale sono inserite le informazioni:
// nome stampante, ......
ls_nomistampanti = PrintGetPrinters ( )
//
// la stringa con tutte le stampanti deve essere gestita suddivindendola
// in informazioni elementari. Per ogni stampante individuata e
// --------------------------------------------------------------
for li_for = 1 to li_max_stampanti
ll_ind1 =pos ( ls_nomistampanti , "~t")
ls_nome = left ( ls_nomistampanti , ll_ind1 -1)
// scrivo il nome stampante trovato nell'array
is_nome_printer [ li_for ] = ls_nome
//
ll_ind1 =pos ( ls_nomistampanti , "~n")
if ll_ind1 = 0 then
exit
end if
ls_nomistampanti = mid ( ls_nomistampanti , ll_ind1 +1)
next
//-------------------------------------------------------------
ls_nome = ""
// scorrimento dell'array stampanti fino ad una posizione vuota
for li_for = 1 to li_max_stampanti
if is_nome_printer [ li_for ] = "" then
exit
else
// aggiunge stampante alla listBox
li_return = lb_stampanti.AddItem( is_nome_printer [ li_for ] )
//
end if
next
// Ora la listBox contiene tutte le stampanti del sistema
//----------------------------------------------------------
//----------------------------------------------------------
// Evento 'Selectionchanged' della ListBox
//----------------------------------------------------------
// 'index' è una proprietà dalla listBox
// memorizzo il nome della stampante selezionata in base
// all' "index" della riga della listBox cliccata
ii_num_stampante = lb_stampanti.SelectItem (index )
// imposto la variabile 'ls_preferita' in base all'indice 'index'
is_preferita = lb_stampanti.Text ( index )
//----------------------------------------------------------
// Evento 'Clicked' del pulsante per impostare la stampante Predefinita
//----------------------------------------------------------
// Imposta la stampante predefinita
PrintSetPrinter ( is_preferita )
//----------------------------------------------------------
// Evento 'Clicked' del pulsante per verificare quale è la stampante Predefinita
//----------------------------------------------------------
// Sarebbe semplice eseguire la ... ma essa fornisce una stringa contenente
// anche il nome del driver ed il nome della porta
// così, ad esempio: Microsoft XPS Document Writer winspool Ne06:
// pertanto è necessario estrarre il nome soltanto ed
// ottenerlo in una stringa 'ls_nome' utilizzabile in qualunque modo.
long ll_ind
string ls_predefinita, ls_nome
ls_predefinita = PrintGetPrinter()
ll_ind =pos ( ls_predefinita , "~t")
ls_nome = left ( ls_predefinita , ll_ind -1)
sle_stampante_predefinita.text = ls_nome
//----------------------------------------------------------
|