Newsgroup: it.comp.lang.visual-basic
Titolo: Disegno (Line) su picturebox che scompare

'Non riesco a capire:
'Ho una picturebox con dimensioni ampie (piu' del form)
'e ci disegno dentro delle righette per l'intera larghezza.
'Oltre un certo punto, le righette non si vedono piu'.
'L'autoredraw e' attivato.
'Per provare:
'Mettere sul form una picturebox con nome pic, non importa
posizione/dimensione
'Mettere sul form un bottone con nome command1
'Eseguire il codice che segue e poi cliccare sul bottone,
'che si limita a spostare il Left di pic per mostrarne la "coda".
'Perche', maledizione, le righette rosse da un certo punto scompaiono?
'Poi, giocando con quel "* 3" (<<<), si possono ottenere comportamenti
'diversi, per esempio * 2 non crea il problema, * 4 lo esalta
'Grazie a tutti.
Private Sub Form_Load()
    Me.Width = 7200                 'Forza dimensioni form
    Me.ScaleMode = vbMillimeters    'Form a mm
    pic.Left = 0
    pic.Width = Me.ScaleWidth * 3   'Dimensiona pic piu' ampio del form '<<<
    pic.ScaleMode = vbMillimeters   'pic a mm
    pic.BackColor = vbBlack
    pic.AutoRedraw = 1
'       Disegna per mm
    vmax = pic.ScaleX(pic.ScaleWidth, pic.ScaleMode, vbMillimeters)
    For comodo = 0 To vmax
        x = pic.ScaleX(comodo, vbMillimeters, pic.ScaleMode)
        pic.Line (x, 0)-(x, pic.ScaleHeight), vbRed
    Next comodo
''       Disegna per scala (ma di fatto e' la stessa cosa)
''       Se usato, occorre commentare le righe precedenti
'    vmax = pic.ScaleWidth
'    For comodo = 0 To vmax
'        x = pic.ScaleX(comodo, pic.ScaleMode, vbMillimeters)
'        pic.Line (x, 0)-(x, pic.ScaleHeight), vbRed
'    Next comodo
    pic.Refresh
End Sub
Private Sub Command1_Click()
    pic.Left = -(pic.ScaleWidth - Me.ScaleWidth + 5)
    pic.Refresh
End Sub


Ciao Lupo,
da me il tuo programma funziona, le righine si vedono tutte.
Avevo avuto un problema analogo l'anno scorso, proprio su una picture più
grande della finestra, su cui disegnavo dei puntini. Su un computer c'erano
tutti e su un altro no. Mi dispiace ma a suo tempo il problema l'ho
abbandonato perché non avevo tempo di indagare, quindi non ho la soluzione,
che però mi sembra non dipenda dal codice vero e proprio.
Ciao
Francesca

[Fran = 
circa_fg...@fastwebnet.it
 in
GgJBc.48655$
G%.33262@tornado.fastwebnet.it
] ha scritto:

Grazie, in effetti, fra i miei arrampicamenti sui vetri, ho anche pensato
che possa dipendere dalla definizione del video. Ora sto a 1024x768, proverò
a cambiare definizione, anche su macchine diverse. Resto perplesso.

[Lupo = 
circa_LupoOrm...@libero.it
 in
2jq297F...@uni-berlin.de
] ha scritto:
...
Incredibile, stamane lo stesso programma (stessa macchina e definizione) va!
Anche con *4 o * 40
;-(

ciao Lupo
l'ho provato e ho anche cambiato risoluzione
ma funziona bene
ciao
Ilario

 ma funziona bene
Già, ma sai l'ultima? (mi pareva quella del post di prima): Anche
l'applicativo (un'anteprima di stampa dove mostro un righello) da cui avevo
notato il problema (e poi simulato con quel programmillo) stamattina
funziona. Sulla stessa macchina e senza alcuna modifica rispetto a ieri
sera. Mah!

Lupo ha scritto:



Succede anche a me (raramente) dopo che lavoro un bel po' con la macchina:
debug, compilo ecc...
Ad un certo punto linee e font scompaiono: la cosa si ripercuote anche su
altri programmi installati.
Riavviando la cosa scompare... temo che la cosa sia dovuta a vb...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 rispetto a ieri sera. Mah!
non so se c'entra, ma visto che coinvolge il comando line, forse si.
alcune volte, quando compilo del codice che contiene quel comando, il
compilatore mi segnala errore. fai conto che quel codice č gią stato
compilato, identico, quindicine di volte.
chiudo vb, riapro, ricompilo, tutto funziona.
la sensazione č che ci sia del marcio nel line...
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 la sensazione è che ci sia del marcio nel line...
Può essere (delle print di testo comparivano anche ier sera nella stessa
zona in cui le righette latitavano), anche se ... l'informatica non è
un'opinione, o forse sì? Diciamo mah. ;-)
Seriamente, penso più a un imbogonamento del SO e/o video/grafica (pur senza
alcun apparente anomalia).
Riavviando si è rimesso in carreggiata, ma, giusto per curiosità, ogni tanto
andrò a verificare.

 alcun apparente anomalia).
.. sono anch'io propenso per "l'imbogonamento" (... ma sei di verona?)


 ogni tanto andrò a verificare.
ho provato il code e funziona sia con *2 che *6 ^_^ ,  in ufficio lavoriamo
con programmi di grafica vettoriale, acad, ocx buoni e cessi...
ecco, veniamo al dunque, un ocx che disegna su picturebox ha quel problema
con le linee , a volte un quadrato scompare ad uno zoom e ricompare ad un
altro e roba simile, i disegni sono vettoriali quindi a qualsiasi zoom le
grandezze delle linee sono le stesse.
E' un problema che ho visto con la line e le picture box
PS: altro problema, a volte quando il pc e' sotto sforzo tende a risparmiare
sulla grafica, non ditemi che a nessuno di voi non sono mai comparse delle
righette nere sopra le icone della barra degli strumenti ? o che i _paint
siano ignorati ?
-- 
<Gigio2K>
--- 
http://www.g2kweb.it/gigio2k
 ---
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/