![]() |
![]() |
| 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
|
|||
|
|||
|
Vuelvo al foro porque este tema me tiene bastante confundido, agradezco y entiendo vuestras explicaciones pero sospecho que algo tiene que ver mi aplicacion, pues me pasa en varias pc's cuando ejecuto mi aplicacion, no siempre pero si a veces, y el factor comun es MI APLICACION ; puede ser algo en la forma de pintar las ventanas?, también tengo unos DBGRIDS con codigo en el evento "DrawColumnCell", puede ser algo de eso?
Gracias |
|
#2
|
|||
|
|||
|
Cita:
__________________
Guía de Estilo |
|
#3
|
|||
|
|||
|
El codigo es algo como esto:
private { Private declarations } UnColor:TColor; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if DataCol=0 then if Table1Size.AsInteger>10 then UnColor:=clRed else UnColor:=clBlack; with (Sender As TDBGrid).Canvas do begin Font.Color:=UnColor; FillRect(Rect); TextOut(Rect.Left, Rect.Top, Column.Field.AsString); end; end; |
|
#4
|
|||
|
|||
|
Hola:
En el código que mencionas, resulta evidente que no puede haber una pérdida de memoria/recursos. Mira si utilizas componentes de terceros que pudieran causar dicho consumo exagerado y ten en cuenta que no tiene por qué haber un fallo de programación (el no liberar los recursos u objetos que los consuman) para que los recursos caigan tan bajo, eso sería si al cerrar la aplicación no se restituyeran, simplemente si tu aplicación hace un uso intensivo de los mismos, ya puede ser causa de el error que te sucede. La filosofía del programa también influye, no es lo mismo que muestres formularios bajo demanda y los destruyas cuando ya no hacen falta, que por ejemplo muestres un form principal con tropecientos controles, por ejemplo divididos en un TabbedBook. Mira también de utilizar TImagesList para concentrar las imágenes en un sólo sitio, en vez de asignar Glyphs a diestro y siniestro (cada uno es un Bitmap diferente) si te es posible. Bueno, son algunas ideas ... Saludos
__________________
Guía de Estilo |
|
#5
|
|||
|
|||
|
Sigo en esto , encontre un comentario en otro foro (http://www.softwaremix.net/viewtopic-394770.html) que habla de este tema, veo que estoy mal al autocrear los form de mi aplicacion, pense que delphi solucionaba esto, pero no basta con mostrarlos (form1.show) sino que me conviene crearlos y en el evento onclose destruirlo, esa puede ser un solucion?
Salu2 |
|
#6
|
||||
|
||||
|
Oooorale! Revives este hilo cada año
Y ¿no será culpa del Kazaa? // Saludos |
|
#7
|
||||
|
||||
|
Oye, leyendo el enlace que pusiste me surge la pregunta: ¿El error te aparece apenas corres la aplicación o es como describen ahí, que ocurre después de un rato de estar usándola? Porque de ser así, muy probablemente se trate de una fuga de memoria, objetos que no se destruyen correctamente dejando pedazos de memoria inutilizables. Para estas cosas a mi me ha servido mucho programas como MemProof que lo corres junto a tu aplicación y te dice en qué partes hay recursos que no se liberan.
// Saludos |
|
#8
|
|||
|
|||
|
Cita:
![]() Bueno, buscando en los enlaces posteados, di con:
( Codigo que sirve para ceder cordialmente la RAM que no estás utilizando (lo que no hace el Kazaa) y cambiarla por virtual ) Si buscan en la ayuda: SetProcessWorkingSetSize(); Verán que utilizar este comando en forma grosera es la causa que una aplicación luego no tenga suficiente espacio para trabajar y seguramente que asi lo hacen programas como el Kazaa. También puede ayudar utilizar "Tbitmap.Dormant" para usar memoria del sistema en lugar de recursos de GDI y también indicar que queremos el bitmap como "device independer bitmap" "HandleType:=bmDIB". P.D. Uso el emule. ![]() Última edición por <Sergio> fecha: 19-06-2005 a las 22:53:00. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|