AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Wait Animation
Thema durchsuchen
Ansicht
Themen-Optionen

Wait Animation

Ein Thema von EWeiss · begonnen am 14. Mär 2017 · letzter Beitrag vom 14. Apr 2017
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 05:49 Uhr)
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#2
  Alt 14. Mär 2017, 23:06
Sind 7 MB für eine Warteaanimation nicht bissl viel?
  Mit Zitat antworten Zitat
EWeiss
 
#3
  Alt 14. Mär 2017, 23:07
Sind 7 MB für eine Warteaanimation nicht bissl viel?
Das sind die Ressourcen für die Skins.
Die benötigen nun mal ihren Platz.

Später werde ich eine extra DLL erstellen die dann keine Skins mehr verwendet da sie auch aus der VCL heraus gestartet werden soll.

OnlyWindow.exe = 183KB (Meine Test Anwendung für die Library)
SK_Aero.dll = 427KB
Background Ordner = 4,14 MB
Skins = 3,96 MB

Auf der anderen Seite es wird niemand gezwungen die Dateien zu laden.
Ich programmiere Hauptsächlich für die Allgemeinheit.
Wenn die Leute davon etwas brauchen können gut wenn nicht auch Gut.

gruss

Geändert von EWeiss (14. Mär 2017 um 23:41 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#4
  Alt 15. Mär 2017, 11:11
Habe nun eine eigenständige DLL erstellt die auch mit einer VCL Anwendung funktioniert.
Allerdings habe ich ein anderes Verhalten erwartet zumindest was die CPU Auslastung angeht.
Eigentlich hat ja die Anwendung selbst mit der Animation nichts zu tun destotrotz wird bei dieser die CPU Auslastung addiert\angezeigt nicht in der DLL.

Hmmm...

Vielleicht hat ja irgend jemand bock das noch zu optimieren so das die DLL (Animation) Thread (Hintergrundaktivität\ausgelastet) abhängig läuft.
Würde dann den Quelltext der DLL noch hochladen.

gruss

Geändert von EWeiss (15. Mär 2017 um 11:44 Uhr)
  Mit Zitat antworten Zitat
Ghostwalker

 
Delphi 10.3 Rio
 
#5
  Alt 15. Mär 2017, 12:39
Logisch. Eine DLL ist kein eigener Prozess. Die Funktionen (und damit die CPU-Last) werden immer dem Prozess zugeordnet, der die entsprechende Funktion nutzt.

Daran würde auch die Abspaltung eines Thread's nichts ändern. Dieser würde genauso vom Prozess (sprich der Anwendung) "abgespalten".
Uwe
  Mit Zitat antworten Zitat
EWeiss
 
#6
  Alt 15. Mär 2017, 12:42
Logisch. Eine DLL ist kein eigener Prozess. Die Funktionen (und damit die CPU-Last) werden immer dem Prozess zugeordnet, der die entsprechende Funktion nutzt.

Daran würde auch die Abspaltung eines Thread's nichts ändern. Dieser würde genauso vom Prozess (sprich der Anwendung) "abgespalten".
Ok dann muss ich ne EXE erstellen.
Und übergebe das *.PNG über Commandline.
Kein Problem

gruss
  Mit Zitat antworten Zitat
Ghostwalker

 
Delphi 10.3 Rio
 
#7
  Alt 15. Mär 2017, 13:18
hmmm....also.....irgendwie werd ich nicht wirklich schlau, was die WaitCursor sache angeht.

Es gibt, wenn ich hier nicht irre, zwei Situationen, in denen der WaitCursor (Sanduhr) auftaucht.

a) Meine Anwendung ist ausgelastet.

Dann wir der Cursor nur angezeigt, wenn das entsprechend programmiert wurde (sprich Cursor = crHourglass).


b) Windows ist ausgelastet

Dann steuert Windows die Anzeige und zwar global unabhängig von irgendwelchen anderen
Prozessen. In so einem Fall startet aber auch kein Programm mehr.


Hab ich bis dahin schon was falsch verstanden ?

Wenn nicht:

In welchem Fall soll deine Animation jetzt greifen ?

Im Fall a)

Würd ich das wie schon erwähnt, als Komponente machen oder Funktionen mit Start/Stop.

Das wär dann genau als Alternative zu curor := crHourglass bzw. cursor := crDefault

Im Fall b)

hmm...der Fall tritt bei mir nur kurz vor einem Systemcrash auf...da wärs mir dann wurscht was
er da anzeigt.

Aber ok..für den Fall bräuchte es ein Programm, das im Hintergrund die komplette Auslastung
des System prüft, und ggf. die Anzeige startet.
Uwe
  Mit Zitat antworten Zitat
EWeiss
 
#8
  Alt 15. Mär 2017, 13:30
Zitat:
als Komponente machen
Nö keine gute Lösung soll unabhängig sein also von VCL/NONVCL

Beispiel:

Wenn ich mit meiner Anwendung eine Liste einlade und die Anwendung dadurch bedingt lange warten muss
beim starten dann soll die Animation angezeigt werden.

Das gleiche bei anderen Prozessen wie beim WaitCursor ist der Thread ausgelastet soll die Animation starten.

Wenn die Anwendung komplett steht brauch ich auch keine Animation mehr da Hilft nur noch ein String/Alt Entfernen
oder halt der Taskmanager über Prozess beenden.

Zitat:
Funktionen mit Start/Stop.
Ist auch nicht ganz so simple denn irgendwie muss ich ja die *.PNG Datei übergeben damit sie von der EXE dann ausgeführt wird.
Das geht am besten über Command-Line wenn ich nicht irre

gruss

Geändert von EWeiss (15. Mär 2017 um 13:34 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#9
  Alt 15. Mär 2017, 17:38
Das gleiche als EXE unter Verwendung von Command Line siehe oben.

gruss
  Mit Zitat antworten Zitat
Ghostwalker

 
Delphi 10.3 Rio
 
#10
  Alt 16. Mär 2017, 06:29
Ah...ok...es geht also doch um die Anwendung

Dann würd ich das aber als DLL machen. Damit wird zwar die Last der Anwendung zugeordnet, aber das ist ja auch richtig so, da sie ja auch das Warten verursacht.

Das ganze mit 2-3 Funktionen (start/stop evtl. init fürs PNG) und gut.

Vorteile DLL:

- Ist nur einmal im Speicher, auch wenn mehrere Anwendungen parallel die DLL nutzen
- Die Steuerung ist von der Anwendung aus einfacher.
- Kann von den meisten Programmiersprachen aus genutzt werden (selbst Script-Sprachen)
- Weniger Probleme mit den Windowsrechten auf einem Mehrbenutzer-System (und damit bei der
Installation einer Anwendung)


Vorteile EXE:

- Eigener Prozess unabhängig von der Anwednung


Nachteile DLL:

- Last wird dem Anwendungsprozess zugeordnet

Nachteile EXE:

- Wesentlich höherer Speicherverbrauch bei mehrfacher Nutzung unterschiedlicher Anwendungen
- Commandline-Aufrufe sind für einen Programmierer schwieriger zu handeln, als einfache
Funktions-Aufrufe
- Es gibt Script-Sprachen, die keine Commandline-Aufrufe machen können
- Schwierigeres handling auf Mehrbenutzersystemen, wegen Rechte von Executables.


Eine Komponente könnte man dann auch auf der DLL aufbauen (für die ClickyClicky-Fraction )

Ich hoff ich hab dir jetzt nicht den ganzen Plan über den Haufen geschmissen.
Uwe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 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