Newsgroup: it.comp.lang.delphi
Titolo: Stampare un TCustomControl

Ciao a tutti,
     ho un componente, TCustomcontrol, che rappresenta un calendario.
Una volta selezionate le date con i vari colori vorrei fare un'anteprima di 
stampa del calendario.
Come anteprima uso un TPanel, ma non so come assegnare il canvas del 
calendario al canvas del pannello in modo tale da scrivere direttamente sul 
pannello.
 
Qualche idea?? o link ??
 
Poi c'e' il problema della stampa.... ma questo viene dopo .... molto dopo 
....
 
Grazie a tutti
 
Ciao
 
Daniele
 
 

      ho un componente, TCustomcontrol, che rappresenta un calendario.
 
Il componente l'hai scritto tu o l'hai trovato da qualche parte?
Magari è un componente noto e può essere utile sapere qual è per dare una soluzione.
 
Ciao!
  Marco.
 
-- 
MARCO BREVEGLIERI
#Home: 
http://www.marco.breveglieri.name
 
#Blog: 
http://www.compilaquindiva.net
 

 soluzione.
 
Il componente non e' stato scritto da me, si chiama TYearPlanner di Jonathan 
Hosking; e' molto datato visto che l'ultima versione e' del 2002.
Com'e' quasi ovvio e' stato abbandonato, ma al momento funziona bene ed e', 
credo, l'unico nel suo genere (se esite qualcosa di piu' recente e valido di 
questo non lo so).
Ha un sua funzione di stampa, ma non va bene per il mio scopo, sto cercando 
di fare una procedura del tipo
 
procedure TyearPlanner.PrintTo(DestCanvas: TCannvas);
 
ma ho i problemi del messaggio in origine.
 
Grazie per l'interesse
 
Ciao
Daniele 
 
 

Ciao,
  visto che sei in "silenzio meritato weekend" ecco le ultime news su questo 
componente.
 
Ho trovato l'inghippo del perche' non stampava il calendario andando a 
richiamare la sua funzione di stampa; in questo caso il canvas su cui 
disegna e' sbagliato.
Inoltre tutto il componente viene disegnato su un canvas di appoggio di un 
TBitMap, una volta finito il disagno viene copiato ed adattato ai margini 
del componente stesso (top, bottom, left, right).
 
Rimane il mio problema di come costruire una preview personalizzata basata 
su un pannello.
La strategia che intendo usare e' quella di inserire nel pannello una TImage 
settata ad aClient, utilizzo una TBitMap (usata tra l'altro anche da loro) e 
passo il canvas della TBitmap ad una procedura di stampa copiata ed 
incollata pari pari in una procedura apposita che utilizza il canvas della 
TBitmap come area di disegno.
Una volta finito il disegno la copio nel canvas della timage (anche perche' 
non riesco ad accedere al canvas del tpanel).
 
A parole ci siamo, vediamo cosa riesco a fare in pratica.
 
Se c'e' qualcosa di meno complicato ..... :-))))
 
Ciao e buona domenica
 
Daniele 
 
 

 Se c'e' qualcosa di meno complicato ..... :-))))
 
Non potresti semplicemente modificare il sorgente del controllo in modo che vi sia un metodo (se non esiste già) in grado di tracciare l'immagine su un Canvas a tuo piacimento (quello del tuo Bitmap), così da poterlo utilizzare per le tue esigenze "esterne", e facendo in modo che il metodo originale di tracciamento lo invochi per disegnare sul Bitmap interno utilizzato per il double buffering?
 
Per come hai descritto il principio di funzionamento del controllo, non dovrebbe essere nemmeno troppo difficile fare una modifica del genere.
