Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit Form.Canvas speichern (https://www.delphipraxis.net/195253-problem-mit-form-canvas-speichern.html)

bayou 14. Feb 2018 21:30

Delphi-Version: 6

Problem mit Form.Canvas speichern
 
Hallo,

ich habe lange nichts mehr mit Delphi gemacht und habe eine Frage zu Delphi 6.
Ich weiß auch nicht ob die Themenüberschrift richtig ist.
Ich habe ein Programm bei dem ich einen Notizzettel in einem neuen Fenster öffnen möchte.
Dieses Formular „Notizzettel“ soll Handschriftlich mit Stift bzw. Maus beschrieben werden.
Das bekomme ich über Form1.Canvas usw. auch gut hin.
Mein Problem ist wenn ich das Fenster „Notizzettel“ schließe und wieder öffne ist das Handgeschriebene weg.
Kann mir jemand bitte einen Tipp geben?

Vielen Dank

HolgerX 15. Feb 2018 04:32

AW: Problem mit Form.Canvas speichern
 
Hmm..

ISt vielleicht nicht das Richtige, aber schaue Dir mal den Thread an:

http://www.delphipraxis.net/192146-s...uf-tablet.html

Mit den verwendeten Komponenten ist ein Speichern und Laden, incl. Erkennen des 'gemalten' Textes möglich..

jaenicke 15. Feb 2018 05:28

AW: Problem mit Form.Canvas speichern
 
In diesem Fall reicht auch ein TImage.

Wenn du das ganz kurz gesagt auf Align alClient setzt und auf dessen Canvas malst, kannst du dieses einfach mit SaveToFile speichern.

Redeemer 15. Feb 2018 08:43

AW: Problem mit Form.Canvas speichern
 
Nachteil: Die Größe der Canvas eines TImage wird beim ersten Zeichnen gesetzt. Wird es dann vergrößert, bleibt die beschreibbare Fläche gleich groß.

Man kann die Canvas eines TImages speichern mit:
Delphi-Quellcode:
(Image1.Picture.Graphics as TBitmap).SaveToFile('Datei.bmp');
Image1.Picture.LoadFromFile('Datei.bmp');

himitsu 15. Feb 2018 09:20

AW: Problem mit Form.Canvas speichern
 
Zitat:

Canvas speichern
Ein pures Canvas ist ohne irgendeine Cache/RepaintEreignis nicht sicher.
Darauf gezeichnette Dinge können/werden schnell verschwinden, wenn das zum Canvas gehörende Control sich neu zeichnen muß.


Zitat:

Zitat von Redeemer (Beitrag 1393902)
Nachteil: Die Größe der Canvas eines TImage wird beim ersten Zeichnen gesetzt. Wird es dann vergrößert, bleibt die beschreibbare Fläche gleich groß.

Falsch. Der Canvas ist immer genau so groß, wie das TImage.

Beim ersten Zugriff auf das Cache-Bitmap (Picture.Graphic) wird dessen Größe auf die größe des TImage gesetzt.
Und wie sonst auch bei allen Bildern im TImage (Picture) wird die größe des Bildes niemals beim Resizen des Images verändert, aber es verbietet dir niemand, dass du es nicht im OnResize machen darfst.

HolgerX 15. Feb 2018 12:30

AW: Problem mit Form.Canvas speichern
 
Hmm..

Zitat:

Zitat von bayou (Beitrag 1393879)
Dieses Formular „Notizzettel“ soll Handschriftlich mit Stift bzw. Maus beschrieben werden.


Ich hab gedacht, er will genau das machen, wofür InkOverlay/InkRecognizers gedacht sind.

- Mit Stift/Touch/Mouse einen Text 'malen'
- Einfaches und platzsparendes Speichern/Laden
- als Bonus sogar eine Schrifterkennung, so dass er direkt aus dem gemalten Text einen String bekommt.

Und er muss sich nicht mit dem Malen auf einem Canvas selber herum schlagen ;)

bayou 17. Feb 2018 22:19

AW: Problem mit Form.Canvas speichern
 
@HolgerX Vielen Dank für den Tipp.

Ich habe alles was ich brauche und sehr viel mehr.
Ich sprühe förmlich vor Ideen wie ich mein Programm noch einfacher zu händeln machen kann.

Vielen Dank an alle für die Hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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