Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-12-2010
Avatar de Marck Silencer
Marck Silencer Marck Silencer is offline
Registrado
NULL
 
Registrado: dic 2010
Posts: 7
Poder: 0
Marck Silencer Va por buen camino
Question Liberación de memoria de Tbitmap

Hola! a todos los miembros de este genial foro!! Soy nuevo en el Foro espero también ayudar en lo que se pueda por aqui.

Mientras tanto tengo un problema que me ah traido de cabeza bastantes horas y aún no eh podido resolver. Ya eh buscado por todas partes e incluso Post de éste mismo foro me han servido para ir avanzando con mi programa pero aún estoy atorado .

Una breve descripción de lo que busco con el programa...Requiero estar constantemente scaneando los pixeles una determinada área de la pantalla para obtener el color predominante en dicha área para despues seguir con más codigo utilizando ese color predominante. Hasta el momento eh conseguido el color de un solo pixel en la pantalla y de momento lo muestro cambiando el color de un panel... Tódo esto lo hago en un timer ajustado a 10 ms.....

Funciona correctamente va cambiando el color de panel según que color pase por ese pixel que estoy escaneando, el problema es que despues de un tiempo de estar escaneando y mostrandolo en la propiedad de color del panel, Se detiene la ejecución mostrandome un error "EoutOfResources" y realizando antes unas modicaciones al código me salía otro error acerca de que el Tcanvas no puede "dibujar".....

Creoo que mi error está en el modo de scanear oh en el modo de liberar la memoria o los handles que usal el TBitmap.....!! Ya eh intentando demaciadas cosas sin lograr que pueda escanear sin tiempo definido ese pixel..... Creo yo que debe de existir una forma en la cual se haga el escaneo -> Se liberen los recursos utilizados -> Volver a escanear con esos mismos recursos........así no pasaría esto!( segun entiendo claro) xD

Aqui pongo el código que estoy utilizando.

Código Delphi [-]
implementation
var
myColor:TColor;
Pxl  : TBitmap;
{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Pxl:=TBitmap.Create;
Pxl.Width:=1;
Pxl.Height:=1;
Pxl.Dormant;
 Try
BitBlt(Pxl.Canvas.Handle,0,0,1,1,GetDC(0),123,123,SRCCOPY);
myColor:=Pxl.Canvas.Pixels[0,0];
panel1.Color:= myColor;
 finally
 Pxl.FreeImage;
 Pxl.ReleaseHandle;
 Pxl.ReleaseMaskHandle;
 Pxl.Free;

 end;

end;

end.

Espero alguien pueda hecharme la mano con este problemilla!
Saludos..
Marck
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Liberación de un Form No Modal vejerf OOP 1 06-09-2010 19:41:20
Día mundial por la liberación de la cannabis. poliburro La Taberna 54 10-05-2008 04:55:56
Liberación de memoria de punteros Data de un Tree. afxe Varios 5 20-06-2007 17:12:34
Liberación de memoria Jome OOP 5 22-02-2007 14:44:56
Problema con tbitmap chux Gráficos 2 09-06-2006 18:11:19


La franja horaria es GMT +2. Ahora son las 14:20:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi