Olá, no código abaixo ao clicar no botão ele captura a tela e grava como Imagem.jpg, mas se eu clicar novamento no botão ele ira gravar novamente sobre o arquivo que foi gravado.
Pergunto então, como devo fazer para que o programa reconheça que o arquivo já existe e acrescente úm número no nome do novo arquivo para evitar que ele sobrescreva o arquivo existente?
procedure TForm1.Button1Click(Sender: TObject);
var bitmap : tbitmap;
jpg : tjpegimage;
dc : hdc;
desktoprect : trect;
desktopcanvas : tcanvas;
x, y : integer;
yy, xx: integer;
begin
dc:=getdc(getdesktopwindow);
try
desktopcanvas:=tcanvas.create;
bitmap:=tbitmap.create;
jpg:=tjpegimage.create;
try
bitmap.Width:=300;
bitmap.Height:=300;
desktopcanvas.handle:=dc;
desktoprect:=rect(0,0,300,300);
bitmap.canvas.CopyRect(desktoprect,desktopcanvas,desktoprect);
image1.Picture.Bitmap:=bitmap;
for y:=yy to yy+10 do
for x:=xx to xx+10 do
image1.canvas.pixels[x,y]:=clwhite;
with jpg do
begin
compressionquality:=50;
assign(bitmap);
compress;
savetofile('C:\Imagem.jpg'); <------------ eis a questão :blink:
end;
finally
bitmap.free;
desktopcanvas.free;
end;
finally
releasedc(getdesktopwindow,dc);
end;
end;
Editado por Micheus Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Pergunta
Aleksander
Olá, no código abaixo ao clicar no botão ele captura a tela e grava como Imagem.jpg, mas se eu clicar novamento no botão ele ira gravar novamente sobre o arquivo que foi gravado.
Pergunto então, como devo fazer para que o programa reconheça que o arquivo já existe e acrescente úm número no nome do novo arquivo para evitar que ele sobrescreva o arquivo existente?
Um abraço a todos. :)
---------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject); var bitmap : tbitmap; jpg : tjpegimage; dc : hdc; desktoprect : trect; desktopcanvas : tcanvas; x, y : integer; yy, xx: integer; begin dc:=getdc(getdesktopwindow); try desktopcanvas:=tcanvas.create; bitmap:=tbitmap.create; jpg:=tjpegimage.create; try bitmap.Width:=300; bitmap.Height:=300; desktopcanvas.handle:=dc; desktoprect:=rect(0,0,300,300); bitmap.canvas.CopyRect(desktoprect,desktopcanvas,desktoprect); image1.Picture.Bitmap:=bitmap; for y:=yy to yy+10 do for x:=xx to xx+10 do image1.canvas.pixels[x,y]:=clwhite; with jpg do begin compressionquality:=50; assign(bitmap); compress; savetofile('C:\Imagem.jpg'); <------------ eis a questão :blink: end; finally bitmap.free; desktopcanvas.free; end; finally releasedc(getdesktopwindow,dc); end; end;Editado por MicheusIncluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.