Fórum Captura sequência de tela #324742
04/07/2006
0
Projec Project1.exe raised exception classs EOutOfResouces with message
´Espaço insuficiente de armazenamento para processar este comando.´
Projet stopped. Use step or Run to continue.
Estou usando este código, já usei outros que tem no site e que outros colaboradores informou, mais ainda não consegui.
function CaptureScreenRect( ARect: TRect ): TBitmap;
var
ScreenDC: HDC;
begin
Result := TBitmap.Create;
with Result, ARect do
begin
Width := Right - Left;
Height := Bottom - Top;
ScreenDC := GetDC( 0 );
try
BitBlt( Canvas.Handle, 0, 0, Width, Height, ScreenDC, Left, Top, SRCCOPY );
finally
ReleaseDC( 0, ScreenDC );
end;
// Palette := GetSystemPalette;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.picture.Assign(CaptureScreenRect(Rect(0,0,Width,Height)));
end;
Alguém pode testa e dar uma solução ?
no form tem um tTimer1, um TImage;
Muito obrigado
Zlink
Curtir tópico
+ 0Posts
04/07/2006
Zlink
Gostei + 0
05/07/2006
Host
O negocio era ou fazer um contador para cada 25 imagens , e dar um clear no TImage... ou criar um TImage para cada 25 imagens por exemplo EOutOfResource herda a classe e OutofMemory ai tu ja sentiu o tranco.... Seria legal descobrir como a gente modifica o tamanho da memoria disponivel ... o TImage ultiliza na propriedade picture um TPicture que dentro do Graphics.pas aparentemente liga ao processo pela procedure SaveToClipboardFormat(var AFormat: Word; var AData: THandle; var APalette: HPALETTE); , deveria ter um jeito de aumentar a memoria , pera ai ... cara na classes.pas esta declarada a classe TStream.. acredito ser este o mentecapto.... hehehe .... pera ai q vou testar mas .... o que vou fazer é o seguinte ... vou copiar o classes.pas pro diretorio da minha aplicação e vou mudar o tamanho das variaveis das procedures que aparentam entrar no processo de leitura para memoria ..... faz o mesmo q a gente se fala depois.....[/img]
Gostei + 0
05/07/2006
Massuda
procedure TForm1.Timer1Timer(Sender: TObject); var Bitmap: TBitmap; begin Bitmap := CaptureScreenRect(Rect(0,0,Width,Height)); Image1.picture.Assign(Bitmap); Bitmap.Free; end;
Gostei + 0
06/07/2006
Zlink
10
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)