FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
access violation
hola foristas,
trabajo con delphi 5.0 enterprise. hago preview a dos query, master y detail... luego de previsualizar, cierro la ventana con el boton "close" y aleatoriamente me manda un mensaje de error de "access violation xxx..." he leido los comentarios con las soluciones, probe con todos ellos, pero no hay igual me manda el mismo error, ya no se que hacer... solo me falta por actualizar el delphi... jajaja... trabajo en win xp. |
#2
|
||||
|
||||
¿Tienes algo de código en el formulario?
¿Has programado algo en los eventos de OnClose/OnDestroy? Si es así pon el código. ¿Exactamente qué tienes en el form? Si no das algo más de información es muy difícil.
__________________
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. |
#3
|
|||
|
|||
hola foristas,
estos son mis codigos dsde un form cualquiera que invoca al form de reporte: frmRptF.Free; frmRptF := TfrmRptF.Create(Self); try frmRptF.Previsualizar(letra.asString, nv); frmRptF.Close; finally FreeAndNil(frmRptF); end; y los codigos para la previsualizacion en el form de reporte son: const ENV_TEMP: pchar = 'TEMP'; ENV_TMP: pchar = 'TMP'; DIR_TEMP: pchar = 'c:\temp'; DIR_TMP: pchar = 'c:\tmp'; ... procedure TfrmRptF.FormCreate(Sender: TObject); begin SetEnvironmentVariable(ENV_TEMP, DIR_TEMP); SetEnvironmentVariable(ENV_TMP, DIR_TMP); end; ... procedure TfrmRptF.FormClose(Sender: TObject; var Action: TCloseAction); begin qr.QRPrinter := nil; Action := caFree; end; ... procedure TfrmRptF.Previsualizar(letra: string; nv: integer); begin lblC1.Caption := '*** Son: ' + letra + ' ***'; qryMaster.Close; qryDetail.Close; qryMaster.ParamByName('nv').asFloat := nv; qryMaster.Open; qryDetail.Open; qr.Prepare; qr.Preview; end; ... estos codigos son para imprimir una factura a un impresora matriz de punto okidata ml-320 turbo. he sacado y puesto codigo, pero no hay caso. atte yanko hsieh |
#4
|
|||
|
|||
Será un problema de windows xp?
hola foristas,
como ven ya he hecho las pruebas necesarias que ahora empiezo a dudar si es un problema de winxp profesional??? |
#5
|
||||
|
||||
Sólo como comentario, pero hay algunas cosas que no acabo de ver claras.
Cita:
Cita:
EDITADO: NOTA: La próxima vez puedes utilizar los TAGs , de esa forma el código se puede leer mejor.
__________________
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. |
#6
|
|||
|
|||
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 |
#7
|
|||
|
|||
error runtime 216
me arroja un error runtime 216 o 206, no me acuerdo... que sera?
|
#8
|
||||
|
||||
Cita:
__________________
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. |
#9
|
|||
|
|||
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:
|
#10
|
|||
|
|||
no es la solucion
hola,
lamentablemente sigue apareciendo el error de violacionde acceso... alguna idea? |
#11
|
|||
|
|||
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!!! |
#12
|
||||
|
||||
Cita:
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:
y dejar el Action := caFree en el evento OnClose del formulario del reporte. // Saludos |
#13
|
|||
|
|||
evento OnClose???
Cita:
pero el evento OnClose no se activa con el boton "close" de la previsualizacion..., en ese caso, donde debo poner el codigo??? gracias |
#14
|
||||
|
||||
Cita:
Mira, no lo he visto con detalle, pero en una prueba rápida parece que podría servirte el evento AfterPreview del QuickRep:
// Saludos |
#15
|
|||
|
|||
lo probare
Cita:
gracias por el dato, lo probare inmediato a ver si con eso se resuelve el problema. |
#16
|
|||
|
|||
solucion fallida de caFree
hola,
ya probe con tus comentarios, aun asi arroja error... creo que la unica forma de hacer esto es por previewmodal, como planteaba yo anteriormente... no se que otra forma se puede hacer con preview... atte |
|
|
|