Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Auf ein Image schreiben (https://www.delphipraxis.net/17744-auf-ein-image-schreiben.html)

Sanchez 9. Mär 2004 12:57

Re: Auf ein Image schreiben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal eben sowas in die Richtung gemacht.
Findest im Anhang.

dedeur 9. Mär 2004 15:18

Re: Auf ein Image schreiben
 
hallo NG,

ich will jetzt noch den Text Größer haben den ich auf der BMP erstelle hab es hiermit versucht zeigt aber keine wirkung:

:coder:
Code:
procedure TForm1.edTextKeyPress(Sender: TObject; var Key: Char);
begin
  edText.Font.Size := 20;
end;
und hiermit beides leider nicht zum gewünschtem erfolg geführt:
:coder:
Code:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FTextMode then begin
    edText.Left := X + Image1.Left;
    edText.Top := Y + Image1.Top;
    edText.Visible := true;
    edText.AutoSize := true;
    edText.Text := '';
    edText.Font.Size := 20;       :!: darum gehts
    FTextMode  := false;
    btText.Down := false;
  end else begin
    Image1.Picture.Bitmap.Canvas.TextOut(edText.Left - Image1.Left , edText.Top - Image1.Top,
      edText.Text);
    edText.Visible := false;
  end;
kann jemand helfen ich glaub ich bin etwas :cyclops: und find den fehler nicht

Markus K. 9. Mär 2004 15:46

Re: Auf ein Image schreiben
 
Hallo dedeur,
wiefolgt müsstest du den Text vergrößern können.
Delphi-Quellcode:
with Image1.Picture.Bitmap.Canvas do
begin
     Font.Size:={Größe einsetzen};
     TextOut(edText.Left - Image1.Left , edText.Top - Image1.Top, edText.Text);
end;
Tschüß Markus

dedeur 9. Mär 2004 15:50

Re: Auf ein Image schreiben
 
@Markus

in welcher procedure :?:

Markus K. 9. Mär 2004 15:55

Re: Auf ein Image schreiben
 
Du musst es in der Prozedur TForm1.Image1MouseDown anstelle von
Image1.Picture.Bitmap.Canvas.TextOut(edText.Left - Image1.Left , edText.Top - Image1.Top, edText.Text); einfügen.

Tschüß Markus

[edit=sakura] Mehrfachposts gelöscht ;) Mfg, sakura[/edit]

dedeur 9. Mär 2004 16:00

Re: Auf ein Image schreiben
 
so hab ich s gemacht

procedure TForm1.Image1MouseDown(Sender: TObject; Button:
Code:
TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FTextMode then begin
    edText.Left := X + Image1.Left;
    edText.Top := Y + Image1.Top;
    edText.Visible := true;
    edText.AutoSize := true;
    edText.Text := '';
    edText.Color := clRed;
    edText.Font.Size := 20;
    FTextMode  := false;
    btText.Down := false;

  end else begin
        Font.Size := 20;
    Image1.Picture.Bitmap.Canvas.TextOut(edText.Left - Image1.Left , edText.Top - Image1.Top,
      edText.Text,);

    edText.Visible := false;
  end;

end;
komischerweise verändert er die schrift des Buttons und nicht was ich schreibe :wall:

Sanchez 9. Mär 2004 16:24

Re: Auf ein Image schreiben
 
Zitat:

Zitat von dedeur
so hab ich s gemacht

procedure TForm1.Image1MouseDown(Sender: TObject; Button:
Code:
TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FTextMode then begin
    edText.Left := X + Image1.Left;
    edText.Top := Y + Image1.Top;
    edText.Visible := true;
    edText.AutoSize := true;
    edText.Text := '';
    edText.Color := clRed;
    edText.Font.Size := 20;
    FTextMode  := false;
    btText.Down := false;

  end else begin
        Font.Size := 20;
    Image1.Picture.Bitmap.Canvas.TextOut(edText.Left - Image1.Left , edText.Top - Image1.Top,
      edText.Text,);

    edText.Visible := false;
  end;

end;

Im else-Zweig musst du
Delphi-Quellcode:
  Image1.Picture.Bitmap.Canvas.Font.Size := 20;
anstatt
Delphi-Quellcode:
  Font.Size := 20;
Du könntest allerdings auch einen Font-Dialog verwenden und dann einfach den Font zuweisen, wenn der Dialog ausgeführt wurde.
Wie das geht solltest du problemlos in der OH oder hier finden.

grüße, daniel

dedeur 11. Mär 2004 10:09

Re: Auf ein Image schreiben
 
:coder: :coder: :coder:
Code:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FTextMode then begin
    edText.Left := X + Image1.Left;
    edText.Top := Y + Image1.Top;
    edText.Visible := true;
    edText.AutoSize := true;
    edText.Text := '';
    Image1.Picture.Bitmap.Canvas.Font.Size := 24;
    //Image1.Picture.Bitmap.Canvas.Font.Color := clblue;

   // edText.Color := clGreen;
    FTextMode  := false;
//    btText.Down := false;

  end else begin

    Image1.Picture.Bitmap.Canvas.TextOut(edText.Left - Image1.Left , edText.Top - Image1.Top,
      edText.Text,);


    edText.Visible := false;
  end;
klappt alles wunder bar, ich will jetzt aber noch den Schriftart verändern den ich aus einem edit Feld ja auf das Image lade
ich mache folgendes: :coder:
Code:
procedure TForm1.Schriftart1Click(Sender: TObject);
begin
  if FontDialog1.Execute then edText.Font := FontDialog1.Font;
end;
Er ändert aber nur im Edit feld die Schriftart nicht aber wenn ich sie Überge.
hat jemand rat wie ich die veränderte Schriftart übergeben kann :?:

Sanchez 11. Mär 2004 10:31

Re: Auf ein Image schreiben
 
Hi,

Du meinst vermutlich, dass du die Schriftart auch am Bild dann haben willst, oder?

Delphi-Quellcode:
procedure TForm1.Schriftart1Click(Sender: TObject);
begin
  if FontDialog1.Execute then begin
    edText.Font := FontDialog1.Font;
    Image1.Picture.Bitmap.Canvas.Font := FontDialog1.Font;
  end;
end;
BTW: Würde ich beim anzeigen des Edits auch gleich den Fokus reinsetzen (mit edText.SetFocus;)

grüße, daniel

dedeur 11. Mär 2004 12:54

Re: Auf ein Image schreiben
 
Damit hat es geklappt: :coder:
Code:
Image1.Picture.Bitmap.Canvas.Font := FontDialog1.Font;
bin sogar selber drauf gekommen :lol:

Jetzt will ich aber das der Hintergrund die farbe beibehält, weil die weiße Hintergrundfarbe nicht dahin soll sondern nur der TEXT aufs Image soll
Fummel gerade mit dem :arrow: SetBkColor(TransparentColor); versucht klappt aber irgendwie noch nicht :(


Viele Grüße an Daniel der hier sehr kooperativ aushilft Vielen dank :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz