Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   EoutofResources al dimensionar Bitmap (https://www.clubdelphi.com/foros/showthread.php?t=30018)

Kafu 07-02-2006 10:42:12

EoutofResources al dimensionar Bitmap
 
Hola, amigos,
He estado mirando los mensajes e investigando un poco por la web pero no consigo saber por qué me está pasando lo siguiente.
Tengo un grid de datos (tstringgrid) que quiero pasar al lado izquierdo de una imágen (en un timage) donde he dibujado un gráfico. Es decir, ahora tengo esa imagen pero le quiero anexar el grid a la izquierda.
La imagen tiene 7070 de anchura y una altura variable. Yo me creo un objeto Bitmap que toma como anchura la suma del tstringgrid y la timage y la altura de uno de ellos (es igual). Después hago un copyrect de la parte dibujo al bitmap y hasta ahí todo correcto. Pero cuando voy a hacer el copyrect del cliprect del grid me dice :
project tal y tal raised exception class eoutofresources with message 'Espacio de almacenamiento insuficiente para procesar este comando'
De hecho, aunque al principio era al hacer el copyrect del grid, ahora incluso cuando asigno la anchura al bitmap me da ese error. Parece ser que es un problema de recursos, y al fin y al cabo sólo ocurre cuando las dimensiones del dibujo superan un límite, pero no se me ocurre cómo solucionarlo. Me valdría alguna alternativa con tal de poder tener en una sóla imagen tanto grid como dibujo. Agradecería cualquier idea. Un saludo y gracias de antemano,
F.T.G.

Neftali [Germán.Estévez] 07-02-2006 11:08:30

Pues va a ser del código. Seguro.

Neftali [Germán.Estévez] 07-02-2006 11:08:50

¿Y si lo pones para que lo veamos? ;)

Kafu 07-02-2006 11:49:17

Sí, perdona.
El error da al hacer el copyrect y a veces si la imagen es muy grande simplemente al asignar el width a image1.

Código:

 
        TRect MyOther;
        Image1->Height = ImagenDiagrama->Height;
        Image1->Width = GridDatos->Width + ImagenDiagrama->Width;
        MyOther = Classes::Rect(GridDatos->Width,0,ImagenDiagrama->Width + GridDatos->Width, GridDatos->Height);
        Image1->Canvas->CopyRect(MyOther,ImagenDiagrama->Canvas ,ImagenDiagrama->Canvas->ClipRect);
        MyOther = Classes::Rect(0,0,GridDatos->Width, GridDatos->Height);
        Bitmap->Canvas->CopyRect(MyOther,GridDatos->Canvas ,GridDatos->Canvas->ClipRect);
        Image1->Picture->Bitmap->SaveToFile(AnsiString("C:\\kafu.bmp"));


Kafu 07-02-2006 11:51:58

El código está en C++, pero en Delphi es idéntico y da el mismo error.
Alguna idea? Un saludo,
F.T.G.


La franja horaria es GMT +2. Ahora son las 18:23:43.

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