Thema: Delphi Auf ein Image schreiben

Einzelnen Beitrag anzeigen

Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#8

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 12:31
Hallo,

Am einfachsten wäre wohl, wenn ein Edit hast in das du zuerst den Text eingibst, einen Button (einen Speedbutton kannst du einrasten lassen) um in den "Text-am-Bild-platzieren-Modus" zu schalten.

Im ButtonClick sagst du dann:

  FTextPickMode := not FTextPickmode and (edText.Text <> ''); Wobei FTextPickMode ein boolean ist, dass du in der Klasse definieren musst.

Im OnMouseDown vom Image:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FPickMode then begin
    Image1.Picture.Bitmap.Canvas.TextOut(x , y, edText.Text);
  end;
end;
Wenn du den Text direkt am Bild eintippen willst, dann wirds schon etwas komplizierter.
Am einfachsten ist es vermutlich ein Edit dort zu erzeugen, wo du den Text platzierst.

Dafür könntest du in der Klasse ein TEdit FTempEdit definieren.

Im OnMouseDown vom Image:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FPickMode then begin
   FTempEdit := TEdit.Create(self);
   FTempEdit.Parent := Image1;
   FTempEdit.OnExit := EditOnExit;
  end;
end;

procedure TForm1.EditOnExit(Sender : TObject);
begin
  Image1.Picture.Bitmap.Canvas.TextOut(FTempEdit.Left , FTempEdit.Top, FTempEdit.Text);
  FreeAndNil(FTempEdit);
end;
Das hab ich jetzt ohne testen mal hingetippt. Kann sein dass ich noch etwas vergessen hab.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat