AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Desktop Widget Engine (v0.72)
Thema durchsuchen
Ansicht
Themen-Optionen

Desktop Widget Engine (v0.72)

Ein Thema von littleDave · begonnen am 27. Aug 2008 · letzter Beitrag vom 14. Aug 2011
Antwort Antwort
Seite 10 von 26   « Erste     8910 111220     Letzte »    
Benutzerbild von littleDave
littleDave
Registriert seit: 27. Apr 2006
Hallo

ich hab mal wieder ein Projekt, welches ich hier veröffentlichen will: Eine ...


Downloads
  • hier ist eine Übersicht über alle Versionen
  • hier (ca. 1.5 MB) kann die aktuellste Version heruntergeladen werden
  • hier könnt ihr weitere Widgets herunterladen und eure eigenen Widgets hochladen
  • hier ist jetzt der komplette ChangeLog seit Version 0.1 aufgelistet
  • hier sind jetzt die möglichen Startparameter aufgelistet

Was ist eine Widget Engine?
Widget? Was ist das denn? ... Hm, das ist nicht so schnell zu beschreiben. Kurz gesagt: Widgets sind kleine Fenster, die auf dem Desktop sitzen und unterschiedliche Aufgaben übernehmen können. Jedes Widget ist dabei nur eine Ansammlungen von Anweisungen, Bildern oder sonstigen Daten. Diese Daten werden dann von einem Hauptprogramm visualisiert und verarbeiten. Diese Widget-Engine ist dabei dieses Hauptprogramm.

Wie funktioniert das ganze?
Das ist ganz einfach. Im Hauptprogramm klickt ihr einfach auf Widgets und dann auf Add widget. In einem Dialog wählt ihr dann die Widget-Datei aus, die ihr starten wollt. Danach erscheint ein neues Fenster auf dem Bildschirm - fertig: das Widget läuft jetzt.

Screenshots (für größere Version einfach auf das Bild klicken)
Mal ein Paar Widgets auf dem Desktop
http://widgets.godlikesoft.de/progra...p001-small.jpg http://widgets.godlikesoft.de/progra...p002-small.jpg http://widgets.godlikesoft.de/progra...p006-small.jpg
Der Editor
http://widgets.godlikesoft.de/progra...p003-small.jpg http://widgets.godlikesoft.de/progra...p004-small.jpg
Die Widget-Auswahl
http://widgets.godlikesoft.de/progra...p005-small.jpg

Kann ich selbst Widgets erstellen?
Natürlich! Im Hauptprogramm ist ein Widget-Editor dabei, mit dem ihr neue Widgets erstellen und bearbeiten könnt.

Wie erstelle ich eigene Widgets?
Das ist schon nicht so einfach zu beschreiben, da ihr durch die Script-Sprache extrem viel Möglichkeiten habt.
Zuerst wählt ihr im Menü unter Edit den Punkt Create new Widget aus. Dort gibst du die ersten groben Daten zu deinem Widget ein (diese können natürlich später noch geändert werden). Unten müsst ihr noch die Zieldatei eingeben, in dem die Daten gespeichert werden sollen. Danach erscheint der Editor. Der Editor ist ungefähr so aufgebaut wie ihr es von Delphi gewohnt seid. Es gibt einen Form-Designer und einen Code-Editor. Im Formdesigner könnt ihr Komponenten hinzufügen, bearbeiten und löschen. Im Code-Editor bearbeitet ihr die Funktionalität des Widgets. Die Programmiersprache des Widgets ist Pascal, somit könnt ihr wahrscheinlich gleich loslegen. Als Scriptsprache verwende ich (wie könnte es anders sein ), meine Script-Engine. Um alle Funktionen zu beschreiben bräuchte ich jetzt sehr lange - am besten schaut ihr euch bereits mitgelieferten Widgets im Editor an.

Wie veröffentliche ich meine eigenen Widgets
Das ist ganz einfach: sobald ihr euer Widget fertig habt, klickt ihr im Editor auf Datei -> Publish-Datei erstellen.... Nachdem ihr die Publish-Datei gespeichert habt, geht ihr auf Website der Desktop Widget Engine. Dort loggt ihr euch mit eurem Account ein (wenn ihr noch keinen habt, einfach kurz registrieren) und wählt dann rechts unten den Eintrag Publish own widget. Dann wählt ihr die gerade erstellte Publish-Datei aus und wählt noch die Kategorie des Widgets - fertig.

Wichtige Sachen für den Editor
  • Events zuweisen:
    Um einer Komponente ein Event zuzuweisen solltet ihr im Object-Inspector den Tab "Events" auswählen. Dort klickst ihr doppelt auf den Namen des Events. Dann wird automatisch alles nötige erstellt. Ihr könnt die Events natürlich auch manuell eintragen, jedoch ist solltet ihr dann genau wissen, welche Parameter wann wo kommen. Wenn eine Event-Funktion falsche Parameter hat, wird das Widget zwar erfolgreich kompiliert, die Event-Funktion wird aber niemals erreicht.
  • Bilder zuweisen:
    Widgets sind meistens mit einer aufwendigeren grafischen Oberfläche ausgestattet. In dieser Widget-Engine geht das natürlich auch. Dafür fügt ihr einfach ein Image hinzu und wählt im Objekt-Inspektor den Eintrag "Graphic" aus. Dort findet ihr einen Eintrag "ImageFile", welcher einen Dialog öffnet. In diesem Dialog wählt ihr das gewünschte Bild aus. Dabei könnt ihr nur Bilder auswählen, die sich in der Wiget-Datei befinden. Um eine Datei hinzuzufügen wählt ihr links den Eintrag Add file to folder.
    ACHTUNG: Bei den Bildern werden nur PNGs, JPEGs, Bitmaps und Gifs unterstützt. Andere Bildtypen funktionieren nicht!

Was ist alles dabei?
Das Hauptpacket besteht nur aus einer analogen Uhr und einer SideBar. Wenn ihr weitere Widgets haben wollt, geht ihr auf die Website der Desktop Widget Engine. Dort könnt ihr viele weitere Widgets herunterladen.

Eigene PlugIns?
Die Funktionalität von Widgets kann man mit Hilfe von PlugIns erweitern. Die Erweiterbarkeit mit Hilfe durch PlugIns ist extrem groß. Um ein PlugIn zu erstellen, solltet ihr vorher die PlugIn-API-Reference herunterladen (der Download-Link befindet sich am Ende dieses Abschnitts). Dort findet ihr einen Pascal-Header sowie eine Hilfe, die euch anhand des mitgelieferten Beispiels erklärt, wie ihr ein PlugIn erstellen könnt und worauf ihr achten müsst. Die PlugIn-API findet ihr hier (ca. 1 MB)

Noch ein paar Hinweise
  • Getestet mit Windows XP
  • Verwende Komponenten: Sysygy Script Engine, SynEdit, Jedi Component Library, GraphicEx, GR32 (TBitmap32)
  • Aktuelle Version: 0.72
  • Programmiert mit Delphi 7
  • Das Programm erstellt folgende Ordner:
    • Den Ordner "Desktop Widget Engine" in %APPDATA%
  • Das Programm erstellt folgende Registry-Einträge:
    • "Desktop Widget Engine" in "HKCU\Software\Microsoft\Windows\CurrentVersion\Ru n\" (nur falls die Einstellung "Autostart" aktiviert wurde)
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
 
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#91
  Alt 27. Sep 2008, 13:39
Zitat von sx2008:
Diese Desktop Widgets wären eine schöne Bereicherung für SharpE (open source shell replacement for windows).
SharpE ist komplett in Delphi programmiert. Die Desktop Widget Engine und SharpE überschneiden sich thematisch zu 80%, in beiden Projekten gibt es ähnliche Ansätze und Ideen. Wenn man das bündeln könnte...
Ich hab mir mal eben (muss zugeben nur kurz) mal den Link angeschaut. Ist wirklich sehr gut, jedoch versteh ich noch nicht so ganz, was SharpE genau macht/ersetzt. Ersetzt SharpE den kompletten Desktop oder fügt SharpE (genau wie ich) nur "Widgets" zum Desktop hinzu?

Zitat von toms:
Mir ist noch aufgefallen, dass die Menü-Shortcuts nicht in Englisch sind.
D.h z.B anstatt Strg sollte es Ctrl heissen.
Das liegt an Delphi - hab ne deutsche Version . Kann man das irgendwie verändern (benutze Delphi 7)

Zitat von xZise:
Also erstens ist dieses "<Widget> will online gehen"-Fenster ist schrecklich geskinnt

Mein Tipp: Wenn möglich kannst du unter Vista diesen neuen Auswahldialog schaffen, und unter &lt;= XP da einen Dialog selber basteln (oder du nimmst so eine Komponente die den Vista-Dialog Simuliert/Emuliert).
Es soll ja auch auffallen . Aber mal schauen, vielleicht kann die das irgendwie noch ändern.

Zitat von xZise:
Und anonsten wäre es praktisch wenn man die Widgets einfach per Drag and Drop aus dem Fenster auf den Bildschirm ziehen kann.
Das muss ich noch machen, stimmt. Weiß aber leider noch nicht genau, wie ich das am besten anstellen soll. Nicht nur von der Realisierung her, auch z.B: wird das Widget geladen bevor man es per Drag&Drop verschiebt? Oder wird einfach nur das Preview-Image verschoben? Mal schauen, wie ich das löse.

Edit:
Ich hab es nun hinbekommen, dass jetzt wirklich "Ctrl" in den Shortcuts steht
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

 
Delphi 2007 Professional
 
#92
  Alt 27. Sep 2008, 18:19
Zitat von littleDave:
Ersetzt SharpE den kompletten Desktop oder fügt SharpE (genau wie ich) nur "Widgets" zum Desktop hinzu?
Der komplette Desktop (Startmenue, Taskbar, TNA) wird ersetzt und die Aufgaben des Explorer.exe übernommen. Es ist sicher nicht ganz einfach die Desktop Widget Engine und SharpE zu integrieren, aber es wäre interessant.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#93
  Alt 27. Sep 2008, 19:19
Zitat von sx2008:
Zitat von littleDave:
Ersetzt SharpE den kompletten Desktop oder fügt SharpE (genau wie ich) nur "Widgets" zum Desktop hinzu?
Der komplette Desktop (Startmenue, Taskbar, TNA) wird ersetzt und die Aufgaben des Explorer.exe übernommen. Es ist sicher nicht ganz einfach die Desktop Widget Engine und SharpE zu integrieren, aber es wäre interessant.
Ich hab mir das Projekt mal angeschaut - wirkt auf jedenfall sehr gut. Jedoch sehe ich jetzt schon Probleme mit der Zusammenkunft: Die Lizenz ist nicht kompatiblel zu meiner Lizenz: GPL und [bisher ] ClosedSource vertragen sich nicht so dolle . Auch der Aufbau unterscheidet sich enorm von meinem Programm. Das ist zwar klar, da das Ziel von SharpE ein ganz anderes ist, jedoch würde durch den Einbau einiges verworfen werden müssen bzw. umgeschrieben werden müssen.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#94
  Alt 28. Sep 2008, 00:01
Zitat von littleDave:
Zitat von xZise:
Also erstens ist dieses "<Widget> will online gehen"-Fenster ist schrecklich geskinnt

Mein Tipp: Wenn möglich kannst du unter Vista diesen neuen Auswahldialog schaffen, und unter &lt;= XP da einen Dialog selber basteln (oder du nimmst so eine Komponente die den Vista-Dialog Simuliert/Emuliert).
Es soll ja auch auffallen . Aber mal schauen, vielleicht kann die das irgendwie noch ändern.
Also ich denke, das sich Programme die in das Konzept des jeweiliges Betriebssystems integrieren um einiges Besser. Zum einen sieht das stimmig aus und zum anderen wird sowas meißt so nativ unterstützt, das es normalerweise besser funktioniert

Zitat von littleDave:
Zitat von xZise:
Und anonsten wäre es praktisch wenn man die Widgets einfach per Drag and Drop aus dem Fenster auf den Bildschirm ziehen kann.
Das muss ich noch machen, stimmt. Weiß aber leider noch nicht genau, wie ich das am besten anstellen soll. Nicht nur von der Realisierung her, auch z.B: wird das Widget geladen bevor man es per Drag&Drop verschiebt? Oder wird einfach nur das Preview-Image verschoben? Mal schauen, wie ich das löse.
Also wenn ich das richtig sehe, macht die Windows Sidebar genauso wie dein erster Vorschlag. D.h. du ziehst mit der Maus das sozusagen an die Stelle als existierte es schon vorher.

Und mir ist noch was, zumindest bei deinem Spiegel Online Widget aufgefallen: Und zwar solltest du zum einen das & im Text durch && ersetzten. Ansonsten erzeugt er unterstrichenen Text. Und zum anderen schein die Links nicht ganz so zu funktionieren. Und zwar ist es zumindest jetzt so, dass der Link zu den Eintrag da drüber gehört.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#95
  Alt 28. Sep 2008, 02:28
Zitat von xZise:
Also ich denke, das sich Programme die in das Konzept des jeweiliges Betriebssystems integrieren um einiges Besser. Zum einen sieht das stimmig aus und zum anderen wird sowas meißt so nativ unterstützt, das es normalerweise besser funktioniert
Ich wollt das Fenster schon eigentlich als Widget laufen lassen. Aber den Skin find ich auf einmal auch nicht mehr so dolle . Ich hab mal nen neuen Dialog erstellt - Screenshot hab ich mal in den Anhang getan.

Zitat von xZise:
Also wenn ich das richtig sehe, macht die Windows Sidebar genauso wie dein erster Vorschlag. D.h. du ziehst mit der Maus das sozusagen an die Stelle als existierte es schon vorher.
Dann werd ich mich mal langsam ransetzen und das Feature integrieren. Dauert aber noch etwas.

Zitat von xZise:
Und mir ist noch was, zumindest bei deinem Spiegel Online Widget aufgefallen: Und zwar solltest du zum einen das & im Text durch && ersetzten. Ansonsten erzeugt er unterstrichenen Text. Und zum anderen schein die Links nicht ganz so zu funktionieren. Und zwar ist es zumindest jetzt so, dass der Link zu den Eintrag da drüber gehört.
Das mit den unterstrichenem Text hab ich behoben. Danke für den Hinweis. Das mit dem Link verwirrt mich, da es bei mir genau funkioniert. Hast du wirklich das aktuellste Widget (mit der Version aus der 7z-Datei überschrieben)? Ich hab intern das Maushandling schon vor etwas längerer Zeit geändert, daher könnte der Fehler kommen.
Miniaturansicht angehängter Grafiken
dialog_118.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#96
  Alt 28. Sep 2008, 09:40
Zitat von littleDave:
Zitat von xZise:
Also ich denke, das sich Programme die in das Konzept des jeweiliges Betriebssystems integrieren um einiges Besser. Zum einen sieht das stimmig aus und zum anderen wird sowas meißt so nativ unterstützt, das es normalerweise besser funktioniert
Ich wollt das Fenster schon eigentlich als Widget laufen lassen. Aber den Skin find ich auf einmal auch nicht mehr so dolle . Ich hab mal nen neuen Dialog erstellt - Screenshot hab ich mal in den Anhang getan.
Eindeutig besser als der alte – aber das ist ja Geschmackssache!

Zitat von littleDave:
Zitat von xZise:
Und mir ist noch was, zumindest bei deinem Spiegel Online Widget aufgefallen: Und zwar solltest du zum einen das & im Text durch &amp;&amp; ersetzten. Ansonsten erzeugt er unterstrichenen Text. Und zum anderen schein die Links nicht ganz so zu funktionieren. Und zwar ist es zumindest jetzt so, dass der Link zu den Eintrag da drüber gehört.
Das mit den unterstrichenem Text hab ich behoben. Danke für den Hinweis. Das mit dem Link verwirrt mich, da es bei mir genau funkioniert. Hast du wirklich das aktuellste Widget (mit der Version aus der 7z-Datei überschrieben)? Ich hab intern das Maushandling schon vor etwas längerer Zeit geändert, daher könnte der Fehler kommen.
Jap habe ich. Aber es kann sein, das es erst nach einem „Update“ so ist.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#97
  Alt 28. Sep 2008, 15:20
Sodala, ein fixes Update auf Version 0.51 ist jetzt online.
  • Diesmal hab ich wiedermal einiges geändert und hinzugefügt. Zum einen Unterstützt das TwgGraphic-Objekt (im jeden Image enthalten) auch JPG, BMP und GIF-Dateien (bei GIF gibt es leider keine Animationen). Als zweites hab ich mich mal an die Code-Completion gesetzt und diese Verbessert. Sie unterstützt jetzt auch den rekursiven Aufruf von . korrekt.
  • Außerdem hab ich ein paar neue Objekte für die ScriptEngine eingebaut: TCPUUsage (CPU-Auslastung pro Kern), TDriveList (alle aktuellen Laufwerke sowie deren Speicherkapazität/freien Speicher), TMemoryStatus (bassierend auf GlobalMemoryStatusEx), TBatteryStatus (konnt ich leider noch nicht wirklich testen, da ich keinen Laptop habe).
  • Zusätzlich ist mir noch ein Fehler in der Script-Engine im Zusammenhang mit Enums aufgefallen, den ich jetzt behoben habe. Enums wurden als integer und nicht als Byte gespeichert, wodurch die obersten 6 Bit beliebig waren und somit ein vergleich mit einem weiteren Enum immer fehl schlug.
  • Auch den Widget-Katalog hab ich erweitert: ein Battery-Widget, ein CPU-Widget, eine DelphiForum sowie eine MSDN-Suche ist jetzt auch mit dabei. Die Widgets befinden sich jedoch im Zusatzpaket.
  • Ich hab das Google-Search sowie die DP-Suche umbenannt, es ist also besser, wenn ihr die alten Widgets löscht bevor ihr die neuen hineinkopiert - sonst sind machen Widgets doppelt vorhanden.
  • Den Strg - statt - Ctrl-Fehler, den mit Toms gesagt hat, ist nun ebenfalls behoben. Auch das Design des Widget-Will-Ins-Inet-Dialog hab ich erneuert.

Download sowie den kompletten ChangeLog ist im ersten Post zu finden.

Zitat von xZise:
Jap habe ich. Aber es kann sein, das es erst nach einem „Update“ so ist.
Den letzten Teil versteh ich nicht so ganz - welches "Update" meinst du?

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#98
  Alt 28. Sep 2008, 16:13
Mit „Update“ meine ich das neue Topic im RSS Feed sind

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#99
  Alt 28. Sep 2008, 16:15
Noch einige Vorschläge:
  • Fenster "Desktop Widget Engine": Bei Links-Klick wird ja ein Widget ausgewählt.
    Ein Rechts-Klick sollte das Widget unter dem Cursor markieren und das Popupmenü anzeigen.
    Wenn sich unter dem Mauszeiger kein Item befindet, sollte das Popupmenü dann auch nicht aufpoppen.
  • Das TrayIcon Symbol hat irgendwie eine schlechte Qualität. (Vor allem der Rand)
  • Ein Klick aufs TrayIcon zeigt zwar das Fenster "Desktop Widget Engine" an, jedoch hat es nicht immer den Focus.
  • "Hide main window" / "Close main window" sind nicht immer synchron mit dem wirklichen Zustand des Fensters.
  • Fenster "Desktop Widget Engine": Ein Doppelklick auf ein Widget könnte den Editor aufrufen mit dem markierten Widget.
  • Das DP Widget ist nicht verschiebbar, wenn sich der Mauszeiger über dem Logo befindet.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#100
  Alt 28. Sep 2008, 16:34
Zitat von xZise:
Mit „Update“ meine ich das neue Topic im RSS Feed sind
Ok, ich schau mir das mal genauer an. Vielleicht find ich ja den Wurm

Zitat von toms:
Noch einige Vorschläge:
Sehr gut

Zitat von toms:
  • Fenster "Desktop Widget Engine": Bei Links-Klick wird ja ein Widget ausgewählt.
    Ein Rechts-Klick sollte das Widget unter dem Cursor markieren und das Popupmenü anzeigen. Wenn sich unter dem Mauszeiger kein Item befindet, sollte das Popupmenü dann auch nicht aufpoppen.
Ok, werd ich so machen. Ich bin kaum im Hauptfenster drinnen, daher fällt mir da alles nicht sofort auf

Zitat von toms:
  • Das TrayIcon Symbol hat irgendwie eine schlechte Qualität. (Vor allem der Rand)
Hm, werd mir das mal in ruhe vornehmen. Mal schauen, was sich da machen lässt.

Zitat von toms:
  • Ein Klick aufs TrayIcon zeigt zwar das Fenster "Desktop Widget Engine" an, jedoch hat es nicht immer den Focus.
ich wusste, ich hatte nen "BringToFront"-Befehl irgendwo vergessen . Danke für den Hinweis.

Zitat von toms:
  • "Hide main window" / "Close main window" sind nicht immer synchron mit dem wirklichen Zustand des Fensters.
Hm, doch eigendlich schon . Also der Editor ist unabhängig vom Zustand des Hauptfensters, daher wird der nicht beachtet. Wahrscheinlich liegt es daran, dass das Fenster noch nicht nach vorne geholt wird.

Zitat von toms:
  • Fenster "Desktop Widget Engine": Ein Doppelklick auf ein Widget könnte den Editor aufrufen mit dem markierten Widget.
Das wollt ich eigendlich auch machen, jedoch mit dem Doppelklick ist mir das zu schnell. Das Widget sollte zum Editieren geschlossen werden. Ich werd die Funktion wahrscheinlich in das Popup-Menü im Hauptfenster einbauen - vielleicht sogar in das Popup-Menü von jedem Widget.

Zitat von toms:
  • Das DP Widget ist nicht verschiebbar, wenn sich der Mauszeiger über dem Logo befindet.
Das hab ich absichtlich so eingestellt, da es schon zu Fehlern mit dem Verschieben im Zusammenhang mit den Maus-Events gekommen ist. Ich hab zwar den Fehler bereits behoben, da ich das Widgets schon vor dem Beheben des Fehlers erstellt hatte. Mittlerweile ist diese Einstellung nicht mehr wichtig - hab es nur vergessen, es zurück zu setzen. Werd ich im nächsten Release behoben haben.

Danke nochmal toms, für die wirklich guten Vorschläge
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 10 von 26   « Erste     8910 111220     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 18:14 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