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/)
-   -   Fortschrittsanzeige aus DLL? (https://www.delphipraxis.net/193399-fortschrittsanzeige-aus-dll.html)

sko1 26. Jul 2017 09:13

Fortschrittsanzeige aus DLL?
 
Hallo,

ist es überhaupt möglich, aus einer in einer DLL enthaltenen Funktion heraus ein kleines Fenster zur Fortschrittsanzeige anzuzeigen, welches dann im Vordergrund des aufrufenden Programms erscheint?

Ciao
Stefan

himitsu 26. Jul 2017 09:41

AW: Fortschrittsanzeige aus DLL?
 
VCL?
Besser nicht, falls du nicht mit Laufzeitpackages arbeitest. (DLL und EXE gegen die RTL/VCL-BPLs gelinkt)

Leg die Fortschrittsanzeige in ein Interface oder eine/mehrere Callback-Funktion (in deiner EXE definiert),
übergibt das an die DLL und die DLL kann dann über den Callback/Interface die Anzeige steuern.

jaenicke 26. Jul 2017 09:43

AW: Fortschrittsanzeige aus DLL?
 
Ja, im Grunde genauso wie hier, nur dass die aufgerufene Funktion, die das Interface bekommt, in der DLL liegt:
http://www.delphipraxis.net/193391-d...ml#post1377488
Dann kann das Fenster selbst aus der Anwendung stammen und wird nur von der DLL aus gesteuert. Das vereinfacht das ganze.

sko1 26. Jul 2017 10:17

AW: Fortschrittsanzeige aus DLL?
 
Schade!

Ich kann die Schnittstelle zum aufrufenden Programm nicht erweitern, muss also irgendwie direkt aus der DLL was anzeigen können!

Gibt es noch andere Ansätze?

Ciao
Stefan

TiGü 26. Jul 2017 10:20

AW: Fortschrittsanzeige aus DLL?
 
Was haste denn bisher und was fehlt denn?

sko1 26. Jul 2017 10:23

AW: Fortschrittsanzeige aus DLL?
 
Ich kann bisher:

- ein Mini-Formular anzeigen
- es während der DLL-Funktion stehen lassen
- es nach Ende der Funktion wegblenden

Was nicht geht:
- diese Formular nicht in der Taskleiste erscheinen lassen
- ein auf das Formular gelegtes TProgressbar zeigt nichts an

Ciao
Stefan

jaenicke 26. Jul 2017 10:31

AW: Fortschrittsanzeige aus DLL?
 
Zitat:

Zitat von sko1 (Beitrag 1377500)
Was nicht geht:
- diese Formular nicht in der Taskleiste erscheinen lassen

Eine Demo habe ich hier angehängt:
http://www.delphipraxis.net/193372-i...ml#post1377249

TiGü 26. Jul 2017 10:33

AW: Fortschrittsanzeige aus DLL?
 
Zitat:

Zitat von sko1 (Beitrag 1377500)
- ein auf das Formular gelegtes TProgressbar zeigt nichts an

Wie wird denn der Fortschritt "gefüttert"? Ja, das ist die Stelle wo man in der Regel Quelltexte zeigt.

sakura 26. Jul 2017 11:05

AW: Fortschrittsanzeige aus DLL?
 
Zitat:

Zitat von sko1 (Beitrag 1377500)
- ein auf das Formular gelegtes TProgressbar zeigt nichts an

Die DLL-Funktion läuft mit hoher Wahrscheinlichkeit im Hauptthread der Anwendung und es werden keine Windows-Nachrichten verarbeitet, damit auch der Fortschritt nicht angezeigt. Wird schwer, wenn überhaupt möglich.

...:cat:...

sko1 26. Jul 2017 12:20

AW: Fortschrittsanzeige aus DLL?
 
So, die Progressbar-Anzeigegeschichte ist gegessen, ein Progress.Repaint hat Abhilfe geschaffen...

Was jetzt noch die Anzeige in der Taskbar betrifft, da bin ich irgendwie mit dem verlinkten Beispiel nicht so richtig klargekommen:

Das beispiel enthält ein Formular in der DLL, ich erzeuge meines dynamisch im Code.
Versuche ich eines direkt ins Projekt einzufügen bekomme ich jede Menge Warnungen und Hinweise um die Ohren gehauen mit denen ich kaum was anfangen kann!

Ciao
Stefan

Nachtrag:
Mir ist noch aufgefallen, dass trotz Repaint die Progressbar irgendwie "hinterherhängt", im Debugger sehe ich kurz vor Ende des Ablaufs dass Max und Position übereinstimmen, optisch ist die Progressbar aber erst bei ca. 80%!
Wie stellt man denn das ab?


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