Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi con oggetto line e proprietà ForeColor (PictureBox e Printer)

Ho una applicazione che calcola dei dati (ore di volo) divisi per persona,
quindi visualizza un grafico a colonne.
Una volta calcolato il tutto, computo la media e quindi imposto delle linee
verticali (perpendicolari rispetto alle colonne che visualizzano le ore di
volo quindi) che indicano rispettivamente la media, media +/- 10% e media
+/- 20% di scostamento.
Ora la funzione che scrive o meglio disegna il tutto è la stessa sia per la
pictureBox che per la stampante.
Quando scrivo nella PictureBox le linee sono colorate correttamente, ovvero:
Media = Black
Media + o - 10% = Green
Media + o - 20% = Red
QUando mando alla stampa invece le linee sono tutte nere, eppure uso i
colori in diverse parti della funzione per colorare anche le barre e li il
colore cambia correttamente sia nella Pic che nella Printer. Sapete come
mai? Ho letto che esiste un bug al riguardo, ma non riesco a trovare un modo
per ovviare e far scrivere le linee colorate come voglio.
Eccovi il codice
        objPrinter.DrawWidth = 2 * Ratio
        objPrinter.ForeColor = vbRed
        objPrinter.Line (Sx + MediaOre * 0.8 / Rapp, 20)-(Sx + MediaOre *
0.8 / Rapp, 20 + (MaxY - ((Pag - 1) * RighePagina) + 1) * AltRiga)
        objPrinter.Line (Sx + MediaOre * 1.2 / Rapp, 20)-(Sx + MediaOre *
1.2 / Rapp, 20 + (MaxY - ((Pag - 1) * RighePagina) + 1) * AltRiga)
        objPrinter.ForeColor = vbGreen
        objPrinter.Line (Sx + MediaOre * 0.9 / Rapp, 20)-(Sx + MediaOre *
0.9 / Rapp, 20 + (MaxY - ((Pag - 1) * RighePagina) + 1) * AltRiga)
        objPrinter.Line (Sx + MediaOre * 1.1 / Rapp, 20)-(Sx + MediaOre *
1.1 / Rapp, 20 + (MaxY - ((Pag - 1) * RighePagina) + 1) * AltRiga)
        objPrinter.ForeColor = vbBlack
        objPrinter.Line (Sx + MediaOre / Rapp, 20)-(Sx + MediaOre / Rapp, 20
+ (MaxY - ((Pag - 1) * RighePagina) + 1) * AltRiga)
        objPrinter.DrawWidth = 1 * Ratio
MaxX e MaxY rappresentano la larghezza dell'area di stampa disponibile,
AltRiga è l'altezza di ogni riga (testo + colonna del grafico), Pag la
Pagina che sto stapando, insomma servono per delimitare inizio e fine della
linea e niente altro, magari poco elegante da vedere, ma funzionale ed
indip'endente dal numero di elementi e di pagine da stampare.
Dimenticavo Rapp è per dare un rapporto tra ore di volo (in realtà calcolo i
minuti direttamnte anche se la variabile si chiama MediaOre) e l'area di
stampa disponbile per le linee.

 per ovviare e far scrivere le linee colorate come voglio.
  Ma la stampante è a colori si? LoL
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

   Ma la stampante è a colori si? LoL
No, diamine non ci avevo pensato........... è a fosfori verdi, ecco
perché......
:-)
Ciao


  Visto? Sono particolari che a volte sfuggono...
Cmq. prova cosi ( ne posto una sola come esempio )
objPrinter.Line (Sx + MediaOre * 0.8 / Rapp, 20)-(Sx + MediaOre *
0.8 / Rapp, 20 + (MaxY - ((Pag - 1) * RighePagina) + 1) *
AltRiga),RGB(255,0,0 )
 
Oppure al posto di RGB(), prova QBColor()


 AltRiga),RGB(255,0,0 )
Ok, provvederò domani a modificare con RGB o QBColor, vediamo un pochino se
funge, speriamo bene
