Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Prozessvisualisierung: zeichnen... (https://www.delphipraxis.net/91573-prozessvisualisierung-zeichnen.html)

divBy0 7. Mai 2007 10:11


Prozessvisualisierung: zeichnen...
 
Hallo!

Tja, ich hab wiedermal eine Interessante Aufgabe bekommen.
Im Moment sitze ich an einer Visualisierung und weiß nicht so ganz genau, wie ich am Besten ein Übersichtsbild zeichne.
Es sollen z.B. Pumpen (hab ich als JPG) und Rohrleitungen dargestellt werden. Gibt es denn eine gescheite Zeichen-Komponente (natürlich frei) oder sollte ich das ganze mit dem Canvas machen?
Was ich gut fände, wäre eine 3D-wirkende Darstellung von den Rohren (Glanz).

Bin für jeden Tipp dankbar...

supermuckl 7. Mai 2007 10:15

Re: Prozessvisualisierung: zeichnen...
 
machs mit canvas

mkinzler 7. Mai 2007 10:22

Re: Prozessvisualisierung: zeichnen...
 
Oder DirectX / OpenGL

divBy0 7. Mai 2007 10:29

Re: Prozessvisualisierung: zeichnen...
 
An Dx/OpenGL hab ich gar nicht gedacht...

Da muss ich mir doch gleich mal ein Tutorial suchen. Gibts hier ja warscheinlich.

divBy0 7. Mai 2007 11:30

Re: Prozessvisualisierung: zeichnen...
 
Ich versuche es im Moment mit dem Canvas...

Wie kann ich es denn realisieren, dass die Objekte automatisch neugezeichnet werden, sobald ein Fenster drübergeschoben wurde?

chaoslion 7. Mai 2007 12:17

Re: Prozessvisualisierung: zeichnen...
 
zeichne alles in nem timer

Stephan 7. Mai 2007 12:48

Re: Prozessvisualisierung: zeichnen...
 
Zitat:

zeichne alles in nem timer
davon würde ich abraten.

Besser: schau dir mal das OnPaint Ereignis (wie es z.B. bei einer PaintBox enthalten ist) an. Dieses wird z.B. dann ausgelöst, wenn du ein anderes Fenster über deinen Canvas ziehst. In diesem Ereignis musst du einfach den Canvas neu zeichnen. Da das aber bei vielen Zeichenoperationen generell flackert, würde ich dir empfehlen, im Hintergrund alles z.B. in einem TBitmap zu cachen und das TBitmap lediglich noch auf den Canvas zu kopieren (dann ist alles flackerfrei).

divBy0 7. Mai 2007 13:07

Re: Prozessvisualisierung: zeichnen...
 
Das mit dem Bitmap klingt gut, muss ich mal schauen, ob ich's hinbekomme.

Danke!

divBy0 8. Mai 2007 10:12

Re: Prozessvisualisierung: zeichnen...
 
Jetzt hab ich folgendes Problem, und zwar hab ich auf einem TabSheet einen Canvas angelegt, auf den ich ja dann zeichnen kann. Mit einer eigene Prozedur wird dann jetzt z.B. ein Rechteck mit Füllmuster aus Bitmapdatei gezeichnet. Wenn das Prog jetzt einfach eine Weile steht, dann verschwindet die Füllung und das Rechteck wird weiß.
Es werden aber keine Fenster drüberbewegt oder so.

Kann ich eigentlich auch in ein TImage zeichnen und das dann auf das TabSheet packen?

bitsetter 8. Mai 2007 11:22

Re: Prozessvisualisierung: zeichnen...
 
Hi,

Zitat:

Zitat von divBy0
Kann ich eigentlich auch in ein TImage zeichnen und das dann auf das TabSheet packen?

Sicherlich probiere es doch einfach aus, beim Image brauchst du dich auch nicht um das onPaint Ereignis zu kümmern.

Mit
Delphi-Quellcode:
image1.Parent.DoubleBuffered := true;
kannst du das Flackern ganz einfach verhindern.


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

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