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