Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gezeichnetes bild in paintbox speichern? (https://www.delphipraxis.net/112693-gezeichnetes-bild-paintbox-speichern.html)

PaddyMu 25. Apr 2008 14:10


Gezeichnetes bild in paintbox speichern?
 
hallo
ich habe mal eine warscheinlich ziemlich einfache frage:
ich möchte mein gezeichnetes über das MainMenu speichern und zwar soll das windows-speicherfeld erscheinen wenn ich auf meinen "speichern"-button klicke. ich weis DAS es geht aber leider nich wie..
hoffe mir kann jemand helfen
lg

[edit=SirThornberry]Titel geändert - Mfg, SirThornberry[/edit]

Klaus01 25. Apr 2008 14:20

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
Hallo,

gibt es bei Dir den Reiter Dialogs/Dialoge in der Komponentenpalette?
Dort findest Du den SaveDialog.

Grüße
Klaus

SirThornberry 25. Apr 2008 14:21

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
um das "Speichernfeld" zu haben musst du einen TSaveDialog auf dein Form packen und dann die ExecuteMethode aufrufen:
Delphi-Quellcode:
if (SaveDialog1.Execute()) then
begin
  ShowMessage(SaveDialog1.FileName);
end;
Der Dialog kümmert sich nicht um das Speichern sondern nur um die Auswahl eines Dateinamens.

NickelM 25. Apr 2008 14:26

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
So ganz einfach, hoffe du verstehst schon den Code

Delphi-Quellcode:
//ein PictureSaveDialog (nur wenn höher als Delphi 5 hast) auf Formular setzen
// dann bei MenuItem bei OnClick folgendes
begin
  If PictureOpenDialog1.Excute then //Excute ist ein function die True zurückgibt, wenn du bei dem Dialog auf OK geklicst hast und einen Dateinamen ausgewählt hast
  begin
    Paintbox1.Canvas.Bitmap.SaveToFile('C:\MeinOrdner\ddd.bmp') //ganz wichtig am ende .bmp, wie es heir ist
  end;
end;
[edit=SirThornberry]Quelltext eingerückt - nächstes mal bitte selbst ordentlich machen - Mfg, SirThornberry[/edit]

SirThornberry 25. Apr 2008 14:29

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
Ich glaub du hast einen Schönheitsfehler im Quelltext. Im Kommentar redest du von einem PictureSaveDialog und im Quelltext steht dann etwas von einem PictureOpenDialog

dominikkv 25. Apr 2008 14:35

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
Außerdem bringt der SaveDialog nix wenn man den Dateinamen dann nicht verwendet...

Muetze1 25. Apr 2008 14:48

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
@NickelM: Seit wann hat denn TCanvas eine Bitmap Eigenschaft?

Medium 25. Apr 2008 15:43

Re: Anfänger: Gezeichnetes bild in paintbox speichern?
 
TCanvas.Bitmap.Canvas.Bitmap.Canvas.Bitmap.Canvas. Bitmap..... wär doch mal lustig :mrgreen:

_frank_ 25. Apr 2008 19:01

Re: Gezeichnetes bild in paintbox speichern?
 
hehe,
da musst du Methoden/funktionen wie TCanvas.CopyRect/Bitblt/scanline etc nutzen. um das Canvas in ein temporäres TBitmap zu kopieren. ohne diesen Umweg ist mir keine möglichkeit bekannt, das bild zu speichern.

HTH Frank

DeddyH 25. Apr 2008 19:26

Re: Gezeichnetes bild in paintbox speichern?
 
Mal schnell eingehackt:
Delphi-Quellcode:
procedure PaintboxToBitmap(const pb: TPaintbox;
                           const bm: TBitmap;
                           pf: TPixelformat = pf24Bit);
begin
  bm.PixelFormat := pf;
  bm.Width := pb.Width;
  bm.Height := pb.Height;
  BitBlt(bm.Canvas.Handle,0,0,bm.Width,bm.Height,pb.Canvas.Handle,0,0,SRCCOPY);
end;

procedure TForm1.Button1Click(Sender: TObject);
var bm: TBitmap;
begin
  bm := TBitmap.Create;
  try
    PaintBoxToBitmap(Paintbox1,bm);
    bm.SaveToFile('C:\test.bmp');
  finally
    bm.Free;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.
Seite 1 von 2  1 2      

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