Delphi-PRAXiS

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 Komponenten zeichnen (per Canvas in TBitmap) (https://www.delphipraxis.net/137705-komponenten-zeichnen-per-canvas-tbitmap.html)

chri_ri 27. Jul 2009 01:07


Komponenten zeichnen (per Canvas in TBitmap)
 
Ich möchte in einem Bild eine Komponente einblenden. Zum Beispiel die ProgressBar.

Ich weiß zwar wie Ich Text einblenden kann ( <canvas>.TextOut() ) aber ich finde leider keinen Ansatz um z.B. eine ProgressBar einzublenden da diese mir kein *.canvas bietet. Mit <ProgressBar>.PaintTo() funktioniert es auch nicht. Und über <ProgressBar>.ClientRect bekomme ich nur ein weißes Rechteck in den Abmessungen der ProgressBar.

Könntet Ihr mir vielleicht einen Tipp geben wie Ich das anstellen könnte?

Würde mich sehr freuen. Schonmal THX im Vorraus!



mfg. chri_ri

jaenicke 27. Jul 2009 05:07

Re: Komponenten zeichnen (per Canvas in TBitmap)
 
Da eine Progressbar (zumindest ab Vista, wo der Verlauf verzögert wird bei Sprüngen im Fortschritt) die Position nur darstellt, wenn die Progressbar sichtbar ist, wird das kaum so gehen wie du dir das wohl vorstellst... ;-)

// EDIT:
Notlösung:
Die ProgressBar außerhalb des sichtbaren Formularbereichs schieben und dort für eine Sekunde oder so sichtbar machen vor dem PaintTo.

Passendere Lösung:
Selbst eine Fortschrittsanzeige zeichnen, dann gibt es auch keine Probleme...

Lannes 27. Jul 2009 07:04

Re: Komponenten zeichnen (per Canvas in TBitmap)
 
Hallo,

und warum blendest Du nicht direkt die Progressbar über dem Bild ein?

chri_ri 27. Jul 2009 22:06

Re: Komponenten zeichnen (per Canvas in TBitmap)
 
Erstmal Danke für die Antworten.

@jaenicke:
Die Notlösung werde ich mal ausprobieren^^
Und das Selberzeichnen wäre eigentlich keine so schlechte Idee. Müsste dann nur wissen, wie Ich die "Balkenstücke" vom aktuellem Windows-Theme verwenden kann.

@Lannes:
Weil Ich das Bild hinterher mit der Einblendung abspeichern möchte/muss.



mfg. chri_ri

jaenicke 27. Jul 2009 22:20

Re: Komponenten zeichnen (per Canvas in TBitmap)
 
Zitat:

Zitat von chri_ri
Die Notlösung werde ich mal ausprobieren^^

Und wie gesagt (falls du unter XP programmierst):
Unter Vista muss die ProgressBar eine Sekunde oder so sichtbar sein, damit der Wert wirklich angezeigt wird, sonst ist die leer. Unter XP wird es vermutlich auch ohne gehen, da da diese Glättung der Fortschrittsanzeige noch nicht gemacht wurde.


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