Newsgroup: it.comp.lang.visual-basic
Titolo: Anteprima di stampa (VB6)

Ho terminato la mia procedura e sono abbastanza soddisfatto.
Tra le poche cose che ancora non mi soddisfano c'è
l'anteprima di stampa che ho realizzato scrivendo su
un form alto il doppio di una videata e che mostra
una mezza pagina di un foglio A4 (l'utente può vedere
alternativamente la parte superiore o inferiore del
foglio).
In realtà il risultato non è poi tanto male (il fatto che
risulta una cosa grossolana e "fatta in casa" non mi
dispiace troppo).
IL problema grosso è che quando viene utilizzata
WinXP propone un messaggio che pressapoco
dice così:
Ho dovuto aumentare la memoria utilizzata da questo
programma e quindi altri programmi potrebbero non
funzionare correttamente.
Win98 non dice niente, ma suppongo che anche lui
faccia "fatica".
Se qualcuno di Voi ha una soluzione semplice al problema
sono anche disposto a spendere la fantastica cifra di
20/30 euro.
Accetto anche consigli gratis.
Da un po' di tempo non entravo nel NG; saluti a tutti!
Grazie, Sauro

Di menticavo un dettaglio importante.
Devo trattare solo caratteri e righe (fatture, bolle, ecc.).
Niente colori o immagini.


E` ininfluente, non esistono limiti alla rappresentazione
a video: caso mai potrebbe esservi su carta.
Invece di scrivere su un form, usa una picturebox che l'utente
possa scorrere in orizzontale ed in verticale tramite scrollbars.
Per zoomare moltiplica le dimensioni degli oggetti (caratteri,
linee, immagini) per il fattore di zoom, tenendo sempre memorizzato
il valore giusto corrispondente a 100%, in modo da evitare
errori conseguenti ad arrotondamenti successivi.
Io avevo interposto una classe che riceveva i comandi di stampa,
cosi` mi gestivo lo zoom, l'export, ecc. in modo trasparente.
Avevo anche iniziato ad implementare lo schema vista/documento
(idea non mia, ma mutuata da MFC, dove l'anteprima di stampa
e` quasi automatica), ma poi ho lasciato perdere per mancanza di
tempo ed il resto funzionava lo stesso.
-- 
ciao, hal

"hal1961"  ha scritto:

Anch'io ho fatto qualcosa di simile (senza zoom che non mi serve).
Sono stato impreciso; anch'io uso una picture box.
Ma per il problemi di memoria?
A te tutto bene?
Ciao Hal e grazie.
Sauro

> > Niente colori o immagini.
Forse non conosco bene la situazione...
e il fatto che non te lo abbiano suggerito mi fa pensare proprio che sto 
sbagliando...ci provo lo stesso:
Ma il buon vecchio controllo Crystal Report, no? ;)
-- 
WWW.AKUMA.SPLINDER.COM
งง-Blog, funny, fashion-งง


Potrebbe forse essere la soluzione.
Però non lo conosco e vorrei farne a meno.
Ciao, Sauro

 A te tutto bene?
Li avevo avuti quando disegnavo tutta la stampa su picture box
con documenti corposi.
Ho risolto salvando le informazioni di stampa su file temporanei
e disegnando solo una pagina alla volta, quella da visualizzare.
In questo modo disponevo di un'anteprima molto veloce ed in grado
di supportare anche migliaia di pagine.
Di fatto avevo stabilito dei codici corrispondenti ad ogni istruzione
visual basic inerente la stampa. 
La classe intermedia, che le implementava, scriveva in realta` su
file e le ritraduceva in comandi visual basic all'atto di visualizzare
la pagina. Una specie di postscript proprietario, infatti potevo anche
salvare il file della stampa e riprodurlo successivamente.
-- 
ciao, hal

 ciao, hal
Non scherzo; ho fatto anch'io la stessa cosa.
Però i problemi di memoria li incontro anche visualizzando
una sola pagina.
Ciao, Sauro

 una sola pagina.
salvando i file temporanei su disco? che se hai poche o nulle immagini
sono sempre file abbastanza piccoli, almeno salvando in binario.
-- 
ciao, hal


C'è anche il MyNeoReport del buon Zanna che è un buon tool di report design.
Certo è ancora agli inizi ma promette bene.
bye