Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#1

PaintBox in Image

  Alt 23. Apr 2018, 11:32
Hallo Zusammen,

auch wenn das Thema an verschiedenen Stellen behandelt wurde, habe ich es dennoch nicht geschafft, mein Problem damit zu lösen.

Das Problem ist einfach: Ich muss eine Unterschrift in eine Datenbank bekommen.

Mein Lösungsansatz: Ich habe eine PaintBox in welche die Unterschrift geleitet wird. Im MouseUp Ereignis wollte ich dann die "gemalte" Unterschrift an ein DBImage übergeben und von dort aus in ein Blob-Feld in die MySQL-Datenbank.

Ich scheitere daran, dass ich die Unterschrift nicht aus der PaintBox [PB_Signature] in das DBImage [DBImage_Signature] bekomme.

Mit dem Code Male ich:
Delphi-Quellcode:
procedure TForm1.PB_SignatureMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   SollGezeichnetWerden:= true;
   ErsterZug:= true;
end;

procedure TForm1.PB_SignatureMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   if (ErsterZug) then begin
      ErsterZug := False;
      PB_Signature.Canvas.MoveTo(X, Y);
   end;
   if (SollGezeichnetWerden) then
      PB_Signature.Canvas.LineTo(X, Y);
end;

procedure TForm1.PB_SignatureMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   SollGezeichnetWerden:= false;
end;
Und mit dieser Procedure möchte ich den Inhalt der PaintBox in das DBImage bringen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  r: TRect;
begin
  DBImage_Signature.Width:=PB_Signature.Width;
  DBImage_Signature.Height:=PB_Signature.Height;
  r:=rect(0,0,DBImage_Signature.Width,DBImage_Signature.Height);
  DBImage_Signature.Picture.Bitmap.Canvas.CopyRect(r,PB_Signature.Canvas,r);
end;
Das DBImage wird zwar auf die gleiche Größe wie die PaintBox gebracht, aber es wird kein Bild übertragen.

Kann mir jemand weiterhelfen?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat