Auf der Not herraus so etwas zu brauchen ist das hier entstanden. 🙂
Mit Hilfe der Klasse kann man eine LadeAnimation auf übergebenen Controls oder direkt auf den Bildschirm zeichnen. Großer Vorteil gegenüber anderen Klassen die sowas machen, die Animation zeichnet auch dann weiter wenn eure Application "freeze" ist. Also zum Beispiel etwas lädt ohne Threading zu nutzen (laden von vielen Controls).
Beispiel im Anhang zeigt das Zeichnen auf verschiedenen Controls, direkt auf dem Bildschirm und die Anwendung der WaitBox (Extended MessageBox).
*neu in v2.5: Neu sind die Methoden FullScreenLock und ReleaseFullScreenLock,
diese sperren denn gesamten Bildschirm mit einem halbtransparenten Overlay plus Animation.
Viel Spaß....
Mehr Informationen und Hilfe unter www.balticsd.de
Und hier noch die Portierung auf Windows Mobile.
!!! Alle die das runterladen und ausprobieren dürfen auch gerne etwas dazu schreiben (Anregungen oder Kritik 😉 )
Bild der Version 2.0
Hallo gordon2001,
eine hübsche sache, die du dir da ausgedacht hast. Allerdings habe ich ein paar kleinere anmerkungen.
ansonsten finde ich die komponente wirklich gut.
gruß
Jack
Version 1.0 ist nun Online (link im ersten post)
Erneuerungen:
p.s. wegen der Frage ob "Timer" oder "Thread.Sleep()" ich werde weiterhin Thread.Sleep nutzen da diese Art der Unterbrechung keinerlei Prozessorzeit in Anspruch nimmt (im Gegensatz zum Timer).
Hab auch eine Technische Anfrage bei Microsoft zu dem Thema gestartet ( jaja bin Tech Channel Premium User 😁 ) dort wurde mir auch zu Thread.Sleep geraten.
Hey gordon,
habe das Tool eben heruntergeladen und getestet.
Sieht super aus!
Das ist das Optimale, wenn man eine Form mit mehreren Buttons hat, die alle verschiedenste längerfristige Operationen ausführen. So kann der User sofort erkennen, das da noch ein oder mehrere Prozesse laufen.
Dankeschön!
EDIT:
Habe jetzt das ganze mal in einem eigenen Projekt eingebunden.
Leider "Enabled" es mein Control aber nicht wieder...
Hast du eine Ahnung woran das liegt?
ControlAnimator.startAnimating(this.lbSql, ControlAnimator.DrawMode.Dots, (int)5, (int)15, (int)3, Color.Blue);
new Thread(TestThread).Start();
ControlAnimator.stopAnimating(this.lbSql);
jo sorry werd heute noch version v1.1 hochladen das ist ein bug, habsch vergessen X(
Sonnst haste alles richtig gemacht 🙂
p.s. bin dabei das noch zu erweitern man kann jetzt auch so ein warte kreis irgnendwo auf den bildschirm zeichnen, über allem anderen drüber 🙂
gepatcht ab Version 2.0
Das klingt gut, vorallem die Erweiterung!
War das 2. was ich bemerkt habe^^
Wird z.B. ein Container mit Inhalt (ListBox...) benutzt, versteckt sich die Animation dahinter.
Viel Erfolg!
EDIT:
Verdammt Praxissemester, du hast Recht!
Ich habe mich schon beim Debuggen gewundert, das mein Programm nach dem Close immer noch im Debug-Modus ist.
Dachte erst, das liegt daran, das ich ziemlich viel von der Form überschrieben habe,
ist aber dann wohl das Control.
Ich habe die Klasse in mein Projekt eingebunden und bin begeistert.
Erstmal Respekt und Vielen Dank an dieser Stelle.
Habe allerdings das Problem das meine Anwendung nicht richtig beendet wird wen ich die Methoden benutzt habe. Wie wen noch eine Form nicht geschloßen worden wäre. Ist das ein Bug ? oder ein Fehler bei mir ? ohne dein Tool funktioniert es ganz normal.
EDIT:
Beiträge sparen ?? ^^
hallo ja das ist richtig ist ein bug, arbeite gerade daran. Das passiert d in der static class anscheinend die thread zwar komplett ablaufen aber ihre instanzen noch bestehen und die static class sich dann nicht schließt. sorry heute kommt das update versprochen 😁
p.s. wegen listview bzw. container controls. in solchen fällen wo das control ein handel eines verstecken controls zurück gibt , kannst du meine dritte überladung nehmen, musst dir nur vorhher aus dem container das richtige handle (IntPtr) holen und dann an meine Klasse übergeben.
gepatcht ab Version 2.0
Version 2.5 ist da.
Mit neuer Funktion: dem FullScreenLock (siehe Bild)
Hallo gordon2001,
schönes Teil hast du da, Hut ab. Vielen Dank.
**:::
Servus,
ein sehr cooles ding 😁
Gibt es denn sowas auch kompatibel für Windows Mobile 6 ? 😁
oder verwendet es nur funktionen die auch mit Mobile 6 kompatibel sind bzw die im CF enthalten sind ?..
grüße
Smou
private int Main()
{
string programmingSkills = getMySkills("programming")
return = 1;
}
hm ok gute frage. Achne geht net nutze viel methoden aus der gdi32.dll.
Aber gute Nachricht muss nur mein wrapper anpassen sind alle auch im WindowsMobile enthalten (coredll.dll). Werd morgen dann noch eine Version für CF veröffentlichen.
wäre sehr cool wenn ihr mal bilder posten würdet wo ihr das einsetzt , würde mich interessieren 🙂
*freu hüpf*
coole sache 😄... vielen dank
sobald ich was zeigen kann stell ich gerne auch ein paar screen rein 😁
private int Main()
{
string programmingSkills = getMySkills("programming")
return = 1;
}
Ist sicherlich kein super Programm, aber dein Control passt da wie "Faust aufs Auge".
--Das Proggie liest alle Dienste mit Starttyp aus und man kann diese starten/beenden, filtern | suchen. Zusätzlich noch die Prozesse und Autostart Einträge--
Nur den Screenshot zu machen, war nicht so einfach. Denn der Zeigt das Control in seinem letzten Zustand (Sprich: wie das 1. Bild.) auch wenn das Control noch seine Runden dreht. Ging aber mit einem eigenen Screenshooter.
EDIT: Ja, ich spare gerne Beiträge. Weltwirtschaftskrise und so...
Mir ist gerade aufgefallen, wenn die CheckedListBox keine Werte bekommt, bleibt das Control stehen. Sobald die Box neu gezeichnet wird (resize...) verschwindet es wieder.
Nur so zur Info. Stört mich jetzt nicht gerade 🙂
Hi!
Gibt es die Möglichkeit die Rotationsrichtung zu ändern bzw. ist eine Implementierung dieser Möglichkeit angedacht? Standardmäßig läuft das Ganze ja gegen den Uhrzeigersinn.
Grüße
phreakadelle
...
Hallo,
ich hab ein Problem mit dem Control. Und zwar wird in einer MDI-Anwendung genutzt um das Laden von einem Datagridview anzuzuzeigen. Wenn in diesem Datagridview schon Daten sind und ich diese aktualisiere wird die Ladeanimation angezeigt aber der Hintergrund des Conrtol selber nicht. Zum genaueren Verständnis habe ich ein Screenshot angehängt.
Gruß
schabe
Hi Gordon,
echt coole Sache. Vorallem, dass es nicht hängen bleibt, wenn man mal zu faul ist nen eigenen Thread wegen einer Operation zu machen!
Hut ab und weiter so!
<--- Sir, we are surrounded!! <-> Perfect! We can attack in any direction °_° --->
hm ok gute frage. Achne geht net nutze viel methoden aus der gdi32.dll.
Aber gute Nachricht muss nur mein wrapper anpassen sind alle auch im WindowsMobile enthalten (coredll.dll). Werd morgen dann noch eine Version für CF veröffentlichen.wäre sehr cool wenn ihr mal bilder posten würdet wo ihr das einsetzt , würde mich interessieren 😃
Hallo Gordon,
ich würde das Control auch gerne unter Windows Mobile einsetzen. Hast Du es mittlerweile portiert?
oh sorry hier mal der Link Control Animation Mobile v1.0, ist schon seit einem Jahr fertig....
Ich hab auch ein Zeichen-Problem gefunden.
Das ganze passiert in Kombination mit dem Qios.DevSuite "QCompositeControl".
Hier das Bild:
MfG
R
Auf Grund einer Anfrage die mich jetzt (6 Jahre nach dem Erstellen) erreicht hat hier noch mal ein Update. 😃 Da ich schon seit Jahren nicht mehr mit WindowsForms entwickle und nicht mehr auf dem aktuellen Stand bin was die nativen Interfaces betrifft kann ich leider kein Bugfixing mehr machen. Ich entwickle auf dem Desktop grundsätzlich nur noch mit XAML. Da ich aber die Leute die es noch nutzen möchten, nicht gerne im Regen stehen lasse, werde ich den Quelltext veröffentlichen. Diese ist zwar nicht sonderlich toll kommentiert aber da er nur sehr kurz im umfang ist sollte sich jeder zurecht finden. Ich freu mich aber das es tatsächlich noch Anwender findet. Freut mich wirklich sehr! 😄 Freu mich auch über ein paar Screenshots wie und wo ihr das so einsetzt.
P.S. ich hoffe das hilft dir Björn 😃