![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
if not (sender as TDBGrid).Focused ... esto interpreta a 'sender' como de la clase DBGrid (si no lo fuera, por ejemplo si sender fuese un edit, te saltaria excepcion).
Pues en el momento que te salga la excepcion (en delphi, no en el programa) aprietas Ctrl+F3, te sale el stack. La primera linea es la ultima funcion llamada, y las siguientes las anteriores. El debugger te apunta a el codigo nativo pues es alli donde salta, aunque seguramente se haya provocado en una de las tuyas :entonces miras mediante esta lista cual de tus funciones ha sido la ultima en llamarse que ha provocado el error, y en que linea. Venga, suerte a ver si lo encuentras. Última edición por coso fecha: 21-07-2008 a las 11:11:54. |
|
#2
|
|||
|
|||
|
Cita:
Entonces por eso no se donde pillar lo , porque no se lo que o donde lo esta provocando. salu2 radge |
|
#3
|
|||
|
|||
|
a eso voy... cuando te salga la excepcion, aprietas Ctrl+F3 y te sale la lista de las llamadas a funciones. Olvidandote del codigo nativo, que esta correcto, tu vas a tu funcion y veras en que linea se te ha provocado y entonces puedes deducir porque. Saludos.
Cita:
esto anterior te hara saltar la excepcion en delphi aunque la tengas en un try Cita:
Última edición por coso fecha: 21-07-2008 a las 11:29:58. |
|
#4
|
|||
|
|||
|
else if (FilaCheck = 'N') then
if (var1= var2) then begin botoseleccionat := MessageDlg('Estas seguro que quieres borrar las unidades servidas ?',mtCustom, [mbYes,mbNo], 0); if botoseleccionat = mrYes then begin cadenaSQL := 'update sql'; ModuloDatos.Ejecutar_SQL(cadenaSQL); cadenaSQL := 'update SQL'; ModuloDatos.Ejecutar_SQL(cadenaSQL); try query_supvision.Close; query_supvision.Open; except showmessage('Error abriendo la base de datos'); end end end He debugado y debugado y uno de las veces al mirar el "call stack" me marca en esta posición , pero yo no le veo nada a esta linea de codigo. gracias radge |
|
#5
|
|||
|
|||
|
debugar es fastidioso
, y hacerlo online, un poco mas . Otro truquito que se hace es ir comentando lineas, probando, comentando lineas, ... hasta que no te salte. Es raro, porque esa linea de codigo no tiene nada ciertamente...a no ser que, como deciamos, ya no tengas memoria ni para llenar un TModalResult...No se si cargas un exceso de datos por algun otro lado que no liberas, alguna form que creas varias veces en tiempo de ejecucion, querys que se crean y llaman multitud de veces (ejecutar_SQL) sin luego liberarlas,bitmaps,...ni idea, deberia repasar todo el codigo. Si tienes alguna otra duda, por eso, no dudes en ponerla aqui. Venga, saludos, i sort!![]() PD : prueba de ponerlo en otro evento que no sea el OnFieldChanged, pues ahora que pienso, si modificas la misma base de datos que se mira en el DBGrid, es probable que la llames recursivamente una y otra vez. Saludos. Última edición por coso fecha: 22-07-2008 a las 09:31:31. |
|
#6
|
|||
|
|||
|
Si puedes, pon el codigo entero de
procedure formulario1.wwDBGrid1FieldChanged(Sender: TObject; Field: TField) Cita:
|
|
#7
|
|||
|
|||
|
Código PHP:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error Raro sobre archivo "ntdll.dll" que no consigo encontrar el motivo | AGAG4 | Impresión | 1 | 23-11-2007 07:11:17 |
| localizar un registro | vroa74 | Conexión con bases de datos | 3 | 17-08-2007 14:11:23 |
| Localizar un registro | alcides | Varios | 4 | 13-04-2007 20:17:27 |
| Localizar datos con Firebird | joanajj | Firebird e Interbase | 5 | 06-06-2006 00:11:42 |
| RaveReport AccessViolation | raugadel | Impresión | 0 | 03-11-2005 15:32:56 |
|