[ AlexK @ 15.05.2007. 14:16 ] @
Pozdrav,
Napravio sam mali program koji radi screen capture.
Pritiskom na button on u lokalnom folderu naprvi fajl slika.jpg.Sve je to ok ali imam mali problem.
Kako da napravim da ponovnim pritiskom na button napravi slika2.jpg pa slika3.jpg i tako dalje a ne da
radi overwrite????

CODE:

//************ CaptureScreen ***********
procedure TForm1.CaptureScreen(name: string);
var
bmp:TBitmap ;
Dc:HDC;
jpg:TJPEGImage;

begin
jpg:=TJPEGImage.Create;
bmp:=TBitmap.Create ;
bmp.Height :=Screen.Height ;
bmp.Width:=Screen.Width ;
dc:=GetWindowDC(GetDesktopWindow );
BitBlt(bmp.Canvas.Handle ,0,0,Screen.Width,Screen.Height,Dc,0,0,SRCCOPY );
releaseDC(GetDesktopWindow,dc);
with jpg do begin
Assign(bmp);
SaveToFile(name);
end;
bmp.Free;
jpg.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CaptureScreen('slika.jpg')
end;
[ savkic @ 15.05.2007. 15:08 ] @
> Kako da napravim da ponovnim pritiskom na button napravi slika2.jpg pa slika3.jpg
> i tako dalje a ne da radi overwrite????

Nađeš prvi slobodni fajl i proslediš funkciji za capture. Npr.

Code:

var
  b: Integer;
  FileName: string;
begin 
  b := 1;
  FileName := 'C:\tmp\Proba.jpg';
  while FileExists(FileName) do
  begin
     FileName := Format('C:\tmp\Proba%d.jpg', [b]);
     Inc(b);
  end;

  CaptureScreen(FileName);
end;
[ Milan Milosevic @ 15.05.2007. 17:10 ] @
Definisi jednu globalnu promenjivu
redniBrojSlike:Integer;
var
Form1: TForm1;
redniBrojSlike:Integer;

Zatim joj u proceduri za kreiranje forme dodelis vrednost

procedure TForm1.FormCreate(Sender: TObject);
begin
redniBrojSlike:=0;
end;

zatim prepravis
procedure TForm1.Button1Click(Sender: TObject);
begin
CaptureScreen('slika.jpg'+Inttostr(redniBrojSlike));
Inc(redniBrojSlike);
end;
[ AlexK @ 16.05.2007. 14:56 ] @
hvala
[ AlexK @ 16.05.2007. 14:57 ] @
hvala