![]() |
![]() |
| 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
|
|||
|
|||
|
probare con la Query ..
y mañana les comento.
(...y de paso les comento el porque de la tabla .. (o al menos eso interpreto yo) .. los datos estan en un StringGrid (se generan a partir de varios procesos) .. para imprimir eso , se vuelca el stringgrid a la tabla temporal de impresion y luego se hace el reporte enlazandolo con la tabla , hacer una query para representar ese stringgrid seria estimo bastante tedioso al menos ) Muchas gracias a todos. |
|
#2
|
|||
|
|||
|
buendia ..
siguiendo con mi tema de las violaciones .. (siguen apareciendo) la pregunta
concreta seria : Hay algun ORDEN para liberar los forms que se crean ? porque por ej. creo 3 forms juntos (en realidad son 6) entro al primero , llamo al segundo , llamo al tercero .. cuando salgo del tercero , debajo del showmodal , le puse un showmessage .. AHI me da error de violacion ... PERO si creo un CUARTO form donde se crean todos los forms PASA SIN dar error .. Ahora tambien cuando logro pasar sin error y simplemente quiero regresar al menu principal (saliendo del primer form) debajo de la llamada al primer form me comienza a dar error de violacion en los .FREE de cada form (si anulo el primero , me da en el segundo y asi sucesivamente) ... Help !! gracias ... |
|
#3
|
||||
|
||||
|
En cuanto a lo que comentas no veo errores concretos, pero deberias preguntarte, por lo menos para este caso, cual es el "gran beneficio" de crear dinamicamente estos formularos, son muy pocos... podrias dejarlos auto create...
Igualmente para no dejar la pregunta sin respuesta, te cuento otra forma para estas cuestiones:
Cuenta como te fue con esto... Saludos! |
|
#4
|
|||
|
|||
|
asi quedo mi codigo ..
[codigo] 0501: begin // pedidos {Application.CreateForm(TFEntregas,FEntregas); Application.CreateForm(TFPedPresu,FPedPresu); Application.CreateForm(TFBusPed,FBusPed); Application.CreateForm(TFCargaRapida,FCargaRapida); Application.CreateForm(TFPediSeg,FPediSeg); Application.CreateForm(TFPedDetProd,FPedDetProd); Application.CreateForm(TFCompItems,FCompItems); Application.CreateForm(tform1,form1); Application.CreateForm(TFPedidos,FPedidos);} FPedidos := TFPedidos.create(nil); FEntregas := TFEntregas.create(nil); FPedPresu := TFPedPresu.create(nil); FBusPed := TFBusPed.create(nil); FCargaRapida:= TFCargaRapida.create(nil); FPediSeg := TFPediSeg.create(nil); FPedDetProd := TFPedDetProd.create(nil); FCompItems := TFCompItems.create(nil); with FPedidos do begin ShowModal; end; // if fDatos.TDatos.FieldByName('ALERTA_PRODUCTOS').asboolean then CargoAlertasProd; FreeandNil(FPedidos); FreeandNil(FEntregas); FreeandNil(FPedPresu); FreeandNil(FBusPed); FreeandNil(FCargaRapida); FreeandNil(FPediSeg); FreeandNil(FPedDetProd); FreeandNil(FCompItems); { FCompItems.free; FPedDetProd.Free; FPediSeg.Free; FCargaRapida.Free; FBusPed.Free; FPedPresu.Free; FEntregas.Free;} end; [/codigo] Lo que hago es entrar a Pedidos , luego a PedPresu y luego a CompImtems y comezar a salir de cada uno .. cuando llego a FreeandNil(FPedidos); da error si lo comento ..el error lo da el siguiente ...FreeandNil(FEntregas); Revise y en esos form no tengo FREE de ninguno de estos forms ... la verdad estoy .. gracias por tu Rta.. (voy a tratar de crear cada form en el momento que lo uso ..) porque la verdad ni idea por donde viene el problema.. |
|
#5
|
|||
|
|||
|
ya descubri el problema ...
bueno ... en definitiva lo que me ocasionaba estos access violation era
el componente XStringGrid (puesto en el TERCER form que llamaba) ,porque al quitarlo (luego de probar llamar un form VACIO y que NO diera el error) dejo de dar el error y el programa funciono como siempre.... ahora .. esto me causa algun problemita porque me venia MUY bien todas las propiedades del Xstringgrid y ya habia programado todo en base a este componente.. peeero ... supongo que no sera facil encontrarle un porque y menos aun una solucion ... bueno GRACIAS A TODOS Saludos |
|
#6
|
||||
|
||||
|
en tu post donde esta tu código... edítalo y donde donde dice [Codigo] cámbialo por ['delphi] y [ '/ delphi]
y se verá mucho mejor ![]()
__________________
Última edición por ContraVeneno fecha: 08-09-2006 a las 17:19:15. |
|
#7
|
||||
|
||||
|
Solo por añadir...
usar freeandnil no tiene caso si el puntero del objeto ya no se va utilizar. Por otro lado siempre será recomendable ir creando las forms de forma dinámica pues con ello optimizamos más memoria que si las dejamos en autocreate. Claro que si se trata de una o dos sencillas no habrá mucha diferencia. Una buena práctica es usar la estructura: try...finally que por ahi ya comentaron, además de eso, el constructor de las form acepta por default un owner que en el caso de una ventana normal debe ser siempre nil.. en www.about.com en la seccion de delphi hay varios artículos muy bien explicados al respecto. Por otro lado lo de las violations a mie me sucedia antes mucho y aprendí que en un 90% de los casos se trata de algun acceso a un objeto que no esta inicializado, como por ejemplo querer darle Form1.ShowModal sin antes crear la forma, o acceder a alguno de sus métodos. Muchas veces cosas tan obvias se olvidan. De hecho tengo como regla general revisar todas las asignaciones a objetos cuando me sale ese error,.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Access Violation | Carliviris | Varios | 5 | 12-05-2006 19:21:45 |
| Access violation at .... | Perio | Varios | 5 | 07-02-2006 15:50:36 |
| access violation | chilenauta | Impresión | 15 | 15-12-2004 19:45:51 |
| Access Violation ..... | MADV01 | Varios | 2 | 24-03-2004 16:01:33 |
| Access violation | Giasl | Varios | 6 | 07-05-2003 12:35:51 |
|