Capturando a tela 2

Delphi

10/01/2008

Pessoal como viram no meu primiro topico estava querendo saber como gravar a imagem da tela como se fosse um printscreen, mas agora gostaria de saber no seguinte aspecto:

com um Timer eu vou salvando as imagens a cada 2 minutos em uma pasta so que desta vez eu quero que em vez de ir salvando o arquivo da imagem eu preciso que ele jogue direto para o form e va colocando as imagens em sequencia, quando eu clikar para parar de copiar a imagem eu gostaria que quando clika-se em cima de uma imagem que ela maximiza-se e quando eu clika-se novamente que volta-se ao normal no form

se aguem sober como se faz porfavor não exite em postar, toda informação sera util.

Desde de ja agradeço
[/b]


Marvel

Marvel

Curtidas 0

Respostas

Dor_poa

Dor_poa

10/01/2008

// Função que realiza o PRINTScren
Function PrintScreeNatela(NomeArquivo:String):Boolean;
procedure Conversor_Bmp_Jpg(FileName: string);




procedure Conversor_Bmp_Jpg(FileName: string);
var
Jpg: TJpegImage;
Stm: TMemoryStream;
Bmp: TBitmap;
begin
Try
if FileExists(FileName) then
begin
Bmp := TBitmap.Create;
Bmp.LoadFromFile(FileName);
Jpg := TJpegImage.Create;
Jpg.Assign(Bmp);
Jpg.Compress;
Stm := TMemoryStream.Create;
Jpg.SaveToStream(Stm);
Stm.Position := 0;
Stm.SaveToFile(ChangeFileExt(FileName, ´.jpg´));
Stm.Free;
Jpg.Free;
Bmp.Free;
DeleteFile(Filename);
end;
Except
End;
end;


Function PrintScreeNatela(NomeArquivo:String):Boolean;
var
Bmp
:TBitmap;

Tetativas
:Integer;
begin
Result := False;

If Pos(´:´, NomeArquivo) = 0 Then
Begin
NomeArquivo := ExtractFilePath(Application.ExeName)+NomeArquivo;
End;

If FileExists(NomeArquivo) Then
DeleteFile(NomeArquivo);

Tetativas := 0;
Repeat
Try
Bmp := TBitmap.Create;
Keybd_Event(VK_Snapshot,0, 0, 0);
Bmp.LoadFromClipboardFormat(CF_BitMap, Clipboard.GetAsHandle(CF_Bitmap), 0);
Bmp.SaveToFile(NomeArquivo);
Bmp.Free;
Sleep(500);
Conversor_Bmp_Jpg(NomeArquivo);
Tetativas := 6;
Sleep(250);
Except
Inc(Tetativas);
Sleep(100);
End;
Until (Tetativas > 3);

// ShowMessage(´Arquivo exportada para ´ + ChangeFileExt(NomeArquivo, ´.jpg´));
Result := True;
End;


Dessa forma vc esta gerando o arquivo a cada X tempo determinado no intervalo!
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//NumeroFoto e uma variavel que deve se iniciar em 1
PrintScreeNatela(´c:\foto´ + IntToStr(NumeroFoto)+ ´.jpg´);
Inc(NumeroFoto);
end;


Espero ter lhe ajudado!


GOSTEI 0
Marvel

Marvel

10/01/2008

Olá Dor_poa, muito obrigado pela ajuda, pois isso ja faz um tempo que tenho procurado e tenho achado pouco material sobre o assunto. fiz o teste com seu codigo e ele realiza exatamente o que eu preciso.

novamente agradeço


GOSTEI 0
POSTAR