//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit7.h"
#include <JPEG.hpp>
#include <memory>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm7 *Form7;
//zmienne
//int max = 0;
//String komunikat1 = "1";
//String wiadomosc1 = "0";
//---------------------------------------------------------------------------
__fastcall TForm7::TForm7(TComponent* Owner)
: TForm(Owner)
{
AnsiString tekstip = Edit1->Text;
ClientSocket1->Active = false;
ClientSocket1->Host = tekstip;
ClientSocket1->Active = true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//metoda
/*
void TForm7::SendExact(const char *p, unsigned size)
{
while(size)
{
unsigned sent = ClientSocket1->Socket->SendBuf((void*)p,size);
p += sent;
size -= sent;
}
} */
//---------------------------------------------------------------------------
void __fastcall TForm7::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket)
{
//====================================stary kod z piatku============================
//Memo1->Lines->Add(Socket->ReceiveText());
//Memo2->Lines->Add(Socket->ReceiveText());
//wiadomosc1 = Socket->ReceiveText();
//Memo1->Lines->Add(">1");
//Memo1->Lines->Add(wiadomosc1+" wiadomoscA");
//Memo1->Lines->Add(komunikat1+" komunikatA");
//if (wiadomosc1==komunikat1) {
/*
//zapisuje do jpg zrzutu ekranu
TCanvas *pCanvas = new TCanvas();
Graphics::TBitmap *Bmp = new Graphics::TBitmap;
pCanvas->Handle = GetDC(0);
Bmp->Width = Screen->Width;
Bmp->Height = Screen->Height;
Bmp->Canvas->CopyRect(Rect(0, 0, Bmp->Width, Bmp->Height), pCanvas, Rect(0, 0, Bmp->Width, Bmp->Height));
std::auto_ptr<TJPEGImage> jpegImg(new TJPEGImage());
jpegImg->CompressionQuality = 20;
jpegImg->Assign(Bmp);
jpegImg->SaveToFile("111.jpg");
ReleaseDC(0, pCanvas->Handle);
delete pCanvas, Bmp; */
/*
//wysyla plik --------------------------------+++++++++++++++++++++
//fl->WriteBuffer(buf,size);
TFileStream *fl = new TFileStream("111.jpg", fmOpenRead);
int razem = 0, rozmiar = 0 , max = fl->Size;
ClientSocket1->Socket->SendBuf(&max,sizeof(int));
//ClientSocket1->Socket->SendBuf(&max,4);
do
{
rozmiar = fl->Read(bufor,1024);
razem += rozmiar;
ClientSocket1->Socket->SendBuf(bufor,rozmiar);
Application->ProcessMessages();
} while (razem < max);
delete fl;
//FileClose(fl->Handle);
wiadomosc1 = "0";
*/
/*
TFileStream *fl = new TFileStream("111.jpg", fmOpenRead);
long razem = 0, rozmiar = 0 , max = fl->Size;
char bufor[1024];
SendExact((char*)&max,sizeof(long));
while (razem < max)
{
rozmiar = fl->Read(bufor,1024);
SendExact(bufor,rozmiar);
razem += rozmiar;
}
delete fl;
wiadomosc1 = "0";
*/
//Memo1->Lines->Add(wiadomosc1+" wiadomoscB");
//Memo1->Lines->Add(komunikat1+" komunikatB");
//} //if
}
//---------------------------------------------------------------------------
void __fastcall TForm7::Timer1Timer(TObject *Sender)
{
//Timer1 ustawiony na 10s
static int fNr = 0;
char bufor[1024];
String fileName = ExtractFilePath( ParamStr(0) ) + "file_" + (String)fNr + ".jpg";
TCanvas *pCanvas = new TCanvas();
Graphics::TBitmap *Bmp = new Graphics::TBitmap;
pCanvas->Handle = GetDC(0);
Bmp->Width = Screen->Width;
Bmp->Height = Screen->Height;
Bmp->Canvas->CopyRect(Rect(0, 0, Bmp->Width, Bmp->Height), pCanvas, Rect(0, 0, Bmp->Width, Bmp->Height));
std::auto_ptr<TJPEGImage> jpegImg(new TJPEGImage());
jpegImg->CompressionQuality = 20;//ostrość jakość
jpegImg->Assign(Bmp);
jpegImg->SaveToFile( fileName ); // <-- tutaj zmieniłem
ReleaseDC(0, pCanvas->Handle);
delete pCanvas, Bmp;
TFileStream *fl = new TFileStream( fileName, fmOpenRead ); // <-- tutaj zmieniłem
int razem = 0, rozmiar = 0 , max = fl->Size;
ClientSocket1->Socket->SendBuf(&max,sizeof(int));
Timer1->Enabled = false; // zatrzymanie zegara
do
{
rozmiar = fl->Read(bufor,1024);
razem += rozmiar;
ClientSocket1->Socket->SendBuf(bufor,rozmiar);
Application->ProcessMessages();
} while (razem < max);
delete fl;
fNr += 1;
Timer1->Enabled = true; // uruchomienie zegara.
//====================================stary kod z piatku============================
/*
//zapisuje do jpg zrzutu ekranu
TCanvas *pCanvas = new TCanvas();
Graphics::TBitmap *Bmp = new Graphics::TBitmap;
pCanvas->Handle = GetDC(0);
Bmp->Width = Screen->Width;
Bmp->Height = Screen->Height;
Bmp->Canvas->CopyRect(Rect(0, 0, Bmp->Width, Bmp->Height), pCanvas, Rect(0, 0, Bmp->Width, Bmp->Height));
std::auto_ptr<TJPEGImage> jpegImg(new TJPEGImage());
jpegImg->CompressionQuality = 20;
jpegImg->Assign(Bmp);
jpegImg->SaveToFile("111.jpg");
ReleaseDC(0, pCanvas->Handle);
delete pCanvas, Bmp;
//wysyla plik --------------------------------+++++++++++++++++++++
//fl->WriteBuffer(buf,size);
TFileStream *fl = new TFileStream("111.jpg", fmOpenRead);
int razem = 0, rozmiar = 0 , max = fl->Size;
ClientSocket1->Socket->SendBuf(&max,sizeof(int));
//ClientSocket1->Socket->SendBuf(&max,4);
do
{
rozmiar = fl->Read(bufor,1024);
razem += rozmiar;
ClientSocket1->Socket->SendBuf(bufor,rozmiar);
Application->ProcessMessages();
} while (razem < max);
delete fl;
//FileClose(fl->Handle);
wiadomosc1 = "0";
TFileStream *fl = new TFileStream("111.jpg", fmOpenRead);
long razem = 0, rozmiar = 0 , max = fl->Size;
char bufor[1024];
SendExact((char*)&max,sizeof(long));
while (razem < max)
{
rozmiar = fl->Read(bufor,1024);
SendExact(bufor,rozmiar);
razem += rozmiar;
}
delete fl;
wiadomosc1 = "0";
Memo1->Lines->Add(wiadomosc1+" wiadomoscB");
Memo1->Lines->Add(komunikat1+" komunikatB");
*/
}
//---------------------------------------------------------------------------