Ver Mensaje Individual
  #2  
Antiguo 29-03-2007
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Reputación: 23
__hector Va por buen camino
Hola,

Nunca he usado la clase PrintDocument, pero para aclarar tus dudas (aunque genere otras):

- El AddressOf es la forma en la que VB maneja los delegados. En tu caso particular, al parecer la clase PrintDocument, al llamar el metodo Print(), dispara el evento PrintPage (pd.PrintPage). Lo que hace AddressOf es decir: cuando se dispare el evento PrintPage del objeto pd de tipo PrintDocument, yo quiero que tu me ejecutes el metodo pd_PrintPage que yo tengo definido en mi clase.

Este metodo (pd_PrintPage) tiene que cumplir con el "signature" (tipo y numero de parametros) definido para ese evento, en tu caso, recibir un object y PrintPageEventArgs, en sender y ev, como parametros del metodo.

Eso lo puedes ver con cualquier otro componente que arrastres al formulario, especialmente en c#, ya que vb oculta (lamentablemente) esto del programador, y lo maneja con un ... methodname() Handles control.Evento. Son cosas del lenguaje.

Sobre lo segundo, la asociacion no se da entre el stream y el printdocument, sino en:

Código:
            line = streamToPrint.ReadLine()
            If line Is Nothing Then
                Exit While
            End If
Va leyendo linea a linea del stream, y lo va imprimiendo con el drawstring (eso supongo). Fijate en las condiciones que evaluan lacantidad de lineas que pueden imprimirse por pagina, y toma en cuenta que cada vez que se hace un .ReadLine() se lee la linea actual y el puntero se mueve a la siguiente linea.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita