Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2003
chavetaz chavetaz is offline
Miembro
 
Registrado: oct 2003
Ubicación: Buenos Aires, Argentina
Posts: 29
Poder: 0
chavetaz Va por buen camino
Unhappy Error con Clipboard

estoy intentando copiar un bitmap al clipboard pero me sale un error "Out of system resources" en la linea indicada abajo
alguien podria explicarme porque ocurre este error?

uses Clipbrd

MyBitmap : TBitmap;
MyFormat : Word;
AData : Cardinal;
APalette : HPALETTE;


MyBitmap := TBitmap.Create;
try
MyBitmap.Handle := hbmTempBitmap;
==> MyBitmap.SaveToClipBoardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);
finally
MyBitmap.Free;
end;
Responder Con Cita
  #2  
Antiguo 13-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
El código que pasas tiene que funcionar sin problemas, siempre y cuando hbmTempBitmap sea un HBITMAP válido. El problema que tienes es que te estas quedando sin recursos, seguramente porque tienes demasiadas aplicaciones abiertas o el bitmap es demasiado grande. Te recomiendo probar la aplicación sin tener otras aplicaciones corriendo.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 13-11-2003
chavetaz chavetaz is offline
Miembro
 
Registrado: oct 2003
Ubicación: Buenos Aires, Argentina
Posts: 29
Poder: 0
chavetaz Va por buen camino
El problema debe ser otro, porque probe el programa compilado, sin cargar el delphi con la maquina recien reiniciada, y sigue dando el mismo error, tendra algo que ver que el objeto sea un TBitmap ?
si hago MyBitmap.savetofile me genera un archivo .bmp de 2.5 MB sera que es muy grande para el clipboad?

hbmTempBitmap es una copia del desktop.
Responder Con Cita
  #4  
Antiguo 13-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
También hay que tener en cuenta lo que haces anteriormente en la aplicación, prueba ese código en un proyecto nuevo, sin agregados!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 13-11-2003
chavetaz chavetaz is offline
Miembro
 
Registrado: oct 2003
Ubicación: Buenos Aires, Argentina
Posts: 29
Poder: 0
chavetaz Va por buen camino
Gracias por tu ayuda, he encontrado la solucion, no se bien que hace pero funciona, use el procedimiento Dormant del objeto TBitmap.
Aparentemente Handle y SaveToClipboardFormat usan 2 copias distintas del bitmap, al usar Dormant libero una de ellas (creo que la del Handle).

el codigo queda asi:

try
MyBitmap.Handle := hbmTempBitmap;
MyBitmap.Dormant;
MyBitmap.SaveToClipBoardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);
finally
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 10:31:07.


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