Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TForm1.Button1Click(Sender: TObject);
- var
- RetStream: TStream;
- Buffer: PByte;
- Mem: TMemoryStream;
- BytesRead: Integer;
- Size: Int64;
- BufSize: Integer;
- LokasiGbr:string;
- begin
- TThread.CreateAnonymousThread(
- procedure
- begin
- LokasiGbr:='';
- BufSize := 2048;
- try
- Mem := TMemoryStream.Create;
- GetMem( Buffer, BufSize );
- LokasiGbr:=TPath.Combine(TPath.GetPublicPath+'/'+'MAP001', '1.png');
- TThread.Queue(nil,
- procedure
- begin
- try
- TThread.Queue(TThread.CurrentThread,
- procedure
- begin
- RetStream := DM.ServerMethods1Client.DownloadImage('SRC IMG LOKASI', 'MAP001', 1, Size);
- end);
- if Assigned(RetStream) then RetStream.Position := 0;
- if ( Size <> 0 ) then
- begin
- repeat
- BytesRead := RetStream.Read( Pointer( Buffer )^, BufSize );
- if ( BytesRead > 0 ) then
- begin
- Mem.WriteBuffer( Pointer( Buffer )^, BytesRead );
- end;
- Label1.Text := IntToStr( Mem.Size ) + '/' + IntToStr( Size );
- Application.ProcessMessages;
- until ( BytesRead < BufSize );
- if ( Size <> Mem.Size ) then
- begin
- raise Exception.Create( 'Not Found...' );
- end;
- if Mem.Size<>0 then
- begin
- Mem.SaveToFile(LokasiGbr);
- MGbr.Bitmap.LoadFromFile(LokasiGbr);
- end;
- end
- else
- begin
- ShowMessage('Not Found...!!');
- end;
- finally FreeMem( Buffer, BufSize ); FreeAndNIl(Mem); end;
- end);
- except
- on E: Exception do
- begin
- ShowMessage( PChar( E.ClassName + ': ' + E.Message ));
- end;
- end;
- end).Start;
- end;
Add Comment
Please, Sign In to add comment