![]() |
![]() |
| 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
|
|||
|
|||
|
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; |
|
#2
|
|||
|
|||
|
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 |
|
#3
|
|||
|
|||
|
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 |
|
#4
|
||||
|
||||
|
Oooorale! Revives este hilo cada año
Y ¿no será culpa del Kazaa? // Saludos |
|
#5
|
||||
|
||||
|
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 |
|
#6
|
|||
|
|||
|
Gracias Roman, el error no me aparece siempre, pero cuando lo hace es al abrir mi aplicacion, y cuando tengo muchos programas abiertos, creo sea porque las ventanas se crean al iniciar la aplicacion, ahora estoy probando en crear los forms a medida que los voy utilizando, pero se me ha complicado porque tenia referencias de unos forms a otros, tambien voy a probar con memproof, gracias y seguire investigando.
|
|
#7
|
|||
|
|||
|
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. |
|
#8
|
|||
|
|||
|
como es la historia de imagelist?
Mi aplicacion no tiene muchas imagenes, solo algunos timage y algunos tspeedbuttons con sus glyph, es lo mismo asignarle los bitmap directamente en la propiedad glyph de los speedbutons y en la propiedad picture del timage , o es mejor poner todos los bitmap en un imagelist y "sacarlos" del imagelist para ponerlos en los speedbuttons? si es asi como se hace, no lo tengo muy claro, gracias. |
|
#9
|
|||
|
|||
|
El Timagelist utilizalo si tienes imágenes repetidas en tus botones. Ej 10 ventanas todas con 2 botones con los mismos gráficos, en cada ventana. Con esto se reducen los "handles" necesarios en el ejemplo de 20 a 2.
Una pregunta ¿Cuanto ocupa tu .exe? (Como esos bitmaps son incluidos dentro del .exe es para tener una idea de cuanto espacio están ocupando tus bitmaps) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|