Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2004
chilenauta chilenauta is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
chilenauta Va por buen camino
Question ya habia probado segun tus comentarios

hola,

formname.free; // no arroja error segun el help de delphi, a diferencia de .destroy; por lo que poniendo el codigo o sacando el codigo, lo he probado de las dos formas e igual aparece el error de violacion de acceso.
al igual que el evento on close del formulario de reporte la action caFree tampoco da error, sino ya me hubera dado cuenta... en fin, no se que otra cosa podria ser.
probe segun tu sugerencia e igual me arroja error despues de imprimir en una impresora okidata ml 320 turbo.
sera por el bug de quickreport? o es un problema de comunicacion entre xp/sistema hecho en delphi e impresora?
atte y gracias por tus comentarios.
yanko hsieh
Responder Con Cita
  #2  
Antiguo 14-12-2004
chilenauta chilenauta is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
chilenauta Va por buen camino
error runtime 216

me arroja un error runtime 216 o 206, no me acuerdo... que sera?
Responder Con Cita
  #3  
Antiguo 14-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por chilenauta
...
formname.free; // no arroja error segun el help de delphi, a diferencia de .destroy; por lo que poniendo el codigo o sacando el codigo, lo he probado de las dos formas e igual aparece el error de violacion de acceso.
al igual que el evento on close del formulario de reporte la action caFree tampoco da error, sino ya me hubera dado cuenta... en fin, no se que otra cosa podria ser...
Ojo, que no siempre los errores "saltan" cuando se ejecuta la línea incorrecta, más cuando son problemas de memoria. En tu caso, la primera instrucción de liberación nunca fallará, la segunda puede ser que sí o puede ser que no, lo que es seguro es que no está liberando algo correcto.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 14-12-2004
chilenauta chilenauta is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
chilenauta Va por buen camino
Red face a la espera del nuevo error

gracias por tus sugerencias, cerregi nuevamente los codigos que mencionaste y ahora estoy intentando ejecutar para ver si arroja el mismo error.


Cita:
Empezado por Neftali
Ojo, que no siempre los errores "saltan" cuando se ejecuta la línea incorrecta, más cuando son problemas de memoria. En tu caso, la primera instrucción de liberación nunca fallará, la segunda puede ser que sí o puede ser que no, lo que es seguro es que no está liberando algo correcto.
Responder Con Cita
  #5  
Antiguo 14-12-2004
chilenauta chilenauta is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
chilenauta Va por buen camino
no es la solucion

hola,
lamentablemente sigue apareciendo el error de violacionde acceso... alguna idea?
Responder Con Cita
  #6  
Antiguo 15-12-2004
chilenauta chilenauta is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
chilenauta Va por buen camino
Thumbs up Encontre la solucion parche

hola foristas,
ya encontre una solucion de menor costo para evitar el desagradable error de "access violation". el truco es el siguiente:

en vez de hacer:

formRpt.qreport.preview;

hay que hacer esto:

formRpt.qreport.previewmodal;
if (messagedlg(...) = ...) then
formRpt.qreport.print;

algo pasa con "xxx.preview;" que sigue ejecutando las instrucciones posteriores... asi que habria que usar "previewmodal", pero el previewmodal no me muestra los botones "print", asi que habria que codigicar a mano la posibilidad de impresion.

sera esta la solucion? no lo se... pero por lo menos, ya no me sale el error de violacion de acceso... salud!!!!
espero comentario!!!
Responder Con Cita
  #7  
Antiguo 15-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por chilenauta
algo pasa con "xxx.preview;" que sigue ejecutando las instrucciones posteriores...
¡Pues claro que sigue ejecutando las instrucciones posteriores!; éste es el comportamiento normal a menos- como ya has notado -que muestres el reporte con PreviewModal ya que entonces sí se detiene la ejecución hasta que no cierres el formulario. En tu código original

Código Delphi [-]
frmRptF.Free;
frmRptF := TfrmRptF.Create(Self);
try
  frmRptF.Previsualizar(letra.asString, nv);
  frmRptF.Close; 
finally
  FreeAndNil(frmRptF);
end;

luego de la llamada a frmRptF.Previsualizar (que internamente llama a qr.Preview) el formualrio se destruye mietras aún está visible.

Lo único que tienes que hacer es:

Código Delphi [-]
frmRptF := TfrmRptF.Create(Self);
frmRptF.Previsualizar(letra.asString, nv);

y dejar el Action := caFree en el evento OnClose del formulario del reporte.

// Saludos
Responder Con Cita
  #8  
Antiguo 15-12-2004
chilenauta chilenauta is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
chilenauta Va por buen camino
evento OnClose???

Cita:
Empezado por roman
¡Pues claro que sigue ejecutando las instrucciones posteriores!; éste es el comportamiento normal a menos- como ya has notado -que muestres el reporte con PreviewModal ya que entonces sí se detiene la ejecución hasta que no cierres el formulario. En tu código original

Código Delphi [-]
frmRptF.Free;
frmRptF := TfrmRptF.Create(Self);
try
frmRptF.Previsualizar(letra.asString, nv);
frmRptF.Close; 
finally
FreeAndNil(frmRptF);
end;

luego de la llamada a frmRptF.Previsualizar (que internamente llama a qr.Preview) el formualrio se destruye mietras aún está visible.

Lo único que tienes que hacer es:

Código Delphi [-]
frmRptF := TfrmRptF.Create(Self);
frmRptF.Previsualizar(letra.asString, nv);

y dejar el Action := caFree en el evento OnClose del formulario del reporte.

// Saludos
hola, gracias por tus sugerencias...
pero el evento OnClose no se activa con el boton "close" de la previsualizacion..., en ese caso, donde debo poner el codigo???
gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:13:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi