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 Gitter (Raster) und Linear auf Image erstellen ? (https://www.delphipraxis.net/119375-gitter-raster-und-linear-auf-image-erstellen.html)

thomas2009 25. Aug 2008 18:17


Gitter (Raster) und Linear auf Image erstellen ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

damit man auf die Image leichter bearbeiten kann, möchte ich einen Raster auf Image erstellen
Der Raster kann ein- und ausgeblendet werden
Hat jemand eine gute Idee ?
Für Linear möchte ich auf Image Seite einen Panel mit Bild. Oder gibt es noch eine andere besserer Lösung ?

_

Luckie 25. Aug 2008 20:18

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Mit den Methoden Delphi-Referenz durchsuchenMoveTo und Delphi-Referenz durchsuchenLineTo der Klasse TCanvas kannst du auf edem Canvas des TImage zeichnen. Für das Raster brauchst du zwei for-Schleifen, einmal für die senkrechten Linienen und einmal für die waagerechten.

Angemerkt sei noch, dass die TImage Komponente nicht zum Zeichnen gedacht ist, sondern eher zum anzeigen von statischen Bildern und Grafiken. Zum Zeichnen nimmt man eigentlich eine PaintBox.

Lineal schreibt man übrigens am End emit "l" und nicht mit "r". Dafür würde ich mir aber eine fertige Komponente suchen. Man kann das sicherlich auch selber machen, doch dürfte das, insbesondere beim senkrechten Lineal, etwas aufwendig werden.

thomas2009 27. Aug 2008 10:46

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Zitat:

Zitat von Luckie
Mit den Methoden Delphi-Referenz durchsuchenMoveTo und Delphi-Referenz durchsuchenLineTo der Klasse TCanvas kannst du auf edem Canvas des TImage zeichnen.

Die Linien mit dieser Methode werden aber gelöscht, wenn ich ein Objekt drauf
bewege

>> die TImage Komponente nicht zum Zeichnen gedacht
Ich verwende TImage zum zeichnen und bis jetzt funktioniert es sehr gut. Mit PaintBox
würde ich auch testen. Vielleicht geht es noch besser :gruebel:

MFG

_

taaktaak 27. Aug 2008 10:50

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Zu welchem Zeitpunkt zeichnest du die Linien?
Da sind wir auch schon bei einem wesentlichen Unterschied zwischen TImage und TPaintbox: Die Paintbox hat ein OnPaint-Event in dem du die Linien immer zum passenden Zeitpunkt zeichnen kannst.

Luckie 27. Aug 2008 10:56

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Zitat:

Zitat von taaktaak
Da sind wir auch schon bei einem wesentlichen Unterschied zwischen TImage und TPaintbox: Die Paintbox hat ein OnPaint-Event in dem du die Linien immer zum passenden Zeitpunkt zeichnen kannst.

Deswegen nimmt man aucheine Paintbox zum Zeichnen. Und zwar zeichnet man da auf ein Bitmap im Speicher und kopiert es bei Bedarf auf den Canvas der Paintbox. Code, der demonstriert wie das geht, findest du im Forum.

taaktaak 27. Aug 2008 11:04

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Jo, genau! Zu dieser Erkenntnis bin ich (leider zu spät) auch gekommen :(

DeddyH 27. Aug 2008 11:05

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Zu welcher Erkenntnis? Paintbox benutzen oder Speicherbitmap?

taaktaak 27. Aug 2008 11:07

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Beides! :stupid:

stahli 27. Aug 2008 12:07

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
Man kann die Paintbox auch transparent und Maus-Transparent gestalten und über das Bild legen.
Wenn man die Bildbearbeitung ansonsten schon fertig hatte ist das vermutlich wenig aufwändig.
Die Paintbox braucht man dann nur sichtbar/unsichtbar schalten...
Schwieriger wäre es vielleicht nur bei Verwendung eines großen Bildes in einem Scrollbereich.

stahli

thomas2009 1. Sep 2008 15:55

Re: Gitter (Raster) und Linear auf Image erstellen ?
 
OK, ich verwende nun PaintBox statt Image zum zeichnen
Wie kann ich den Gitter drauf anzeigen lassen ?

Beim Minimieren und maximieren, werden die Bilder, was ich in PaintBox geladen habe, gelöscht !
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('c:\Test.bmp');
paintbox1.Canvas.Draw(0,0,Bitmap);
bitmap.free;
end;
Wie kann ich sie fixieren ?


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