Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Speichern im Paint-Programm ohne Image (https://www.delphipraxis.net/43351-speichern-im-paint-programm-ohne-image.html)

Checkitout 2. Apr 2005 14:17


Speichern im Paint-Programm ohne Image
 
Hallo Leute! Ich bin neu hier und habe eine Frage.
Ich möchte veruchen im Paint-Programm zu speichern, aber es nicht überlicherweise, wo man ein Image, sondern, eben die Mal-Fläche speichere als Bild. Ich habe hier ein Code, jedoch wirkt er nur, wenn die Mal-Fläche auch ein TImage ist. Ich möchte aber einfach direkt die Malfläche des Fomulars speichern. Ich male ja auf das Formular drauf und nicht auf die Image (benutze ich nicht und will ich auch nicht :spin:
Hier nun der ganze Code fürs speichern:
Delphi-Quellcode:
procedure TFormFile.MenuSpeichernClick(Sender: TObject);
begin
  SaveDialog.Options := [ofOverWritePrompt];
  IF SaveDialog.Execute
     THEN Try
            Image.Picture.SavetoFile(SaveDialog.FileName);
            OpenDialog.Filename := SaveDialog.FileName;
            Form1.Caption := ExtractFileName (SaveDialog.FileName);
          Except
            Application.MessageBox ('... konnte nicht gespeichert werden!',
              'Fehler', MB_OK);
          END; {Try}
end;
Das heißt also, dass statt
Delphi-Quellcode:
Image.Picture.SavetoFile(SaveDialog.FileName);
etw. anderes stehen muss. Könnt ihr mir sagen, wa dort hinkommen soll? :coder:
Welcher Begriff? Man könnte das doch eigentlich auch so machen, dass man es anhand von Screenshots macht. Aber wie denn dann.
Danke schonmal. Euer Checkitout

DGL-luke 2. Apr 2005 14:51

Re: Speichern im Paint-Programm ohne Image
 
was für anfänger, das kann ich!

du musst auf das canvas der form zugreifen, dieses in ein tbitmap kopieren, udn dieses dann speichern.

Delphi-Quellcode:
var bitmap: TBitmap;
    rect: TRect;

bitmap:=tbitmap.create;

bitmap.canvas := form1.canvas // geht das?

// wenn das nicht geht, dann:
rect:=rect(0,0,form1.width-1,form1.height-1)

bitmap.width:=form1.width;
bitmap.height:=form1.height;
bitmap.canvas.copyrect(rect,form1.canvas,rect);

bitmap.savetofile('file.bmp');

Checkitout 2. Apr 2005 15:17

Re: Speichern im Paint-Programm ohne Image
 
Die erste Variante also
Delphi-Quellcode:
bitmap.canvas := form1.canvas
Kann schonmal nict gehen :spin2: . Aber die andere war gut. Ich habe nur nie mit "Rect" gearbeitet!
Dankeschön :hi: ,
Checkitouta

Checkitout 2. Apr 2005 15:21

Re: Speichern im Paint-Programm ohne Image
 
Ach ja, habe da noch eine Frage!
Wie kann ich denn nun in meinem Formular Bilder öffnen?
Ich habe es versucht, der vorige Code den ich mal geschrieben habe schein ok,
jedoch kam das Bild nicht, jedoch schien der Befehl durchgeführt zu sein,
aber ohne Ergebnis (dass ich das Bild sehen kann bzw. dass es geladen wurde).
Wisst ihr was ihn machen muss?
Checkitout

Khabarakh 2. Apr 2005 15:23

Re: Speichern im Paint-Programm ohne Image
 
Zeichne alles auf ein Bitmap und kopiere es dann auf die Form, denn erstens ist ein Bitmap dafür da und zweitens ist bei deiner Methode ja beim nächsten Repaint alles weg.

[edit] Außerdem bist du in der falschen Sparte gelandet

Checkitout 2. Apr 2005 18:26

Re: Speichern im Paint-Programm ohne Image
 
Und was ist, wenn ich jetzt das Speicher-Fenster zukommen würde, damit ich den selbsterfundenen Namen das Bild gebe?

DP-Maintenance 2. Apr 2005 20:48

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Open-Source" nach "Sonstige Fragen zu Delphi" verschoben.
Kein Open-Source-Programm

DGL-luke 2. Apr 2005 21:20

Re: Speichern im Paint-Programm ohne Image
 
äh... bitte nochmal auf deutsch ???

Checkitout 2. Apr 2005 21:54

Re: Speichern im Paint-Programm ohne Image
 
Ups, sorry, habe eine bischen Kake gelabert.
Also, ich meinte, welchen Code müsste ich benutzen, damit ich den Namen später aussuchen kann (durch Eingabe)? Dann würde, wie sonst das Speicherfenster hinzukommen, für die Eingabe eben!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 Uhr.

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