AGB  ·  Datenschutz  ·  Impressum  







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

Desktop Widget Engine (v0.72)

Ein Thema von littleDave · begonnen am 27. Aug 2008 · letzter Beitrag vom 14. Aug 2011
Antwort Antwort
Seite 1 von 26  1 2311     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
 
#2
  Alt 27. Aug 2008, 20:18
Sorry für den Push, aber ich hab gerade eine neue Version hochgeladen. Das Wetter-Widget ist jetzt gewachsen - mit Vorhersage für die nächsten 4 Tage. Zudem hab ich das Design der RSS-Feed-Viewer etwas angepasst. Der Delphi-Praxis-Topic-Viewer sowie der Spiegel-Online-RSS öffnet jetzt automatisch den Webbrowser sobald auf einen Eintrag geklickt wurde. Ein Screenshot des Wetter-Widget ist im Anhang.

Zudem hab ich mal ein (sehr) kurzes Beispielvideo erstellt, in dem man sehen kann, wie man so ungefähr ein Widget erstellt. Das erstellte Widget ist eine einfache Form, auf der man eine Uhr sieht. Das Video ist ein Flash-Video. In der Zip-Datei sind 2 Flash-Dateien sowie eine HTML-Datei. Am einfachsten kann man das Video in der HTML-Datei anschauen - Flash Plugin sollte natürlich installiert sein. Ansonsten kann man sich das Video auch mit VCL oder mit mplayer anschauen.

Grüße
Dave
Miniaturansicht angehängter Grafiken
wetter-widget_282.gif  
Angehängte Dateien
Dateityp: zip short_demo_122.zip (1,78 MB, 123x aufgerufen)
  Mit Zitat antworten Zitat
BullsEye

 
Delphi 7 Personal
 
#3
  Alt 27. Aug 2008, 20:32
Hallo,

1) Widgets gibts schon zu 1000en deswegen find ich Sie pers nicht so tolle.
Aber das Hilft dir ja nicht zur Verbesserung deines Programmes ... also:
2) Man sollte das Widget an sich auch selbst schließen können ohne erst das 'Widget Engine' Fenster öffnen zu müssen
3) Denn Kalender kann man nicht lesen bzw nur auf Klick der Caption (genau auf die Schrift) verschieben
4) Sollte eine mehrfache Auswahl der Widgets möglich sein
5) Sollte es Einstellungen zu den einzelnen Widgets geben. (BSP Weather: Ich wohn nicht in München)
6) Deutsche Sprache sollte wählbar sein
7) Den Editor finde ich in den einzelnen Menüs (Object Inspector besonderes) ein wenig unübersichtlich, vor allem die X fachen Untermenüs
8 ) Sollten die Widgets nicht sofort durchsichtig werden sondern erst nach ein paar Sekunden
9) Wenn man Scollen kann, sollte man das auch sehen (Scrollbar)


Ich weiß, ist noch nicht sehr ausgeprägt dein Programm aber vllt kannst du ja die ein oder anderen Punkte bei der Weiterprogrammierung nutzten
Marc
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#4
  Alt 27. Aug 2008, 21:29
Erstmal danke für deine Verbesserungsvorschläge.

Zitat von BullsEye:
2) Man sollte das Widget an sich auch selbst schließen können ohne erst das 'Widget Engine' Fenster öffnen zu müssen
4) Sollte eine mehrfache Auswahl der Widgets möglich sein
Ist alles geplant, aber das dauert noch. Erstmal muss ich die Grundlagen (wie z.B. das Speichern von Konfigurationen zu jedem Widget) ermöglichen, bevor ich mich um diese Details kümmere. Jedoch werd ich diese natürlich nicht vergessen

Zitat von BullsEye:
3) Denn Kalender kann man nicht lesen bzw nur auf Klick der Caption (genau auf die Schrift) verschieben
Der Kalender lässt sich auch einfach verschieben, in dem man auf einen Tag klickt. Von den Farben her hab ich ihn erstmal so eingestellt, dass er bei mir (relativ dunkler Hintergrund) lesbar ist. Viel kann der Kalender ja nicht, aber sobald jedes Widget auch seine Einstellungen auch speichern kann, werd ich noch Farbschemen für den Kalender hinzufügen.

Zitat von BullsEye:
5) Sollte es Einstellungen zu den einzelnen Widgets geben. (BSP Weather: Ich wohn nicht in München)
Siehe oben und 1. Post

Zitat von BullsEye:
6) Deutsche Sprache sollte wählbar sein
Erstmal erstell ich das Programm komplett in Englisch - das hab ich mir so angewöhnt. Multi-Language wird erst viel später kommen.

Zitat von BullsEye:
7) Den Editor finde ich in den einzelnen Menüs (Object Inspector besonderes) ein wenig unübersichtlich, vor allem die X fachen Untermenüs
Das lässt sich schnell ändern. Werd ich wahrscheinlich auch machen

Zitat von BullsEye:
8 ) Sollten die Widgets nicht sofort durchsichtig werden sondern erst nach ein paar Sekunden
Das ist Geschmackssache, find ich. Wenn es dich sehr stört kannst du die entsprechenden Widgets natürlich editieren.

Zitat von BullsEye:
9) Wenn man Scollen kann, sollte man das auch sehen (Scrollbar)
Eine Widget-Scrollbar gibt es noch nicht und die Windows-Scrollbar passt überhaupt nich zu dem Design. Von daher ist es noch nicht möglich.

Zitat von BullsEye:
Ich weiß, ist noch nicht sehr ausgeprägt dein Programm aber vllt kannst du ja die ein oder anderen Punkte bei der Weiterprogrammierung nutzten
Das kann ich bestimmt - jede Anregung ist für mich nützlich. Auf jedenfall danke für eine konstruktive Kritik
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#5
  Alt 27. Aug 2008, 22:09
Hi,

zuersteinmal: Ich find sowohl Scripting-Engine echt cool . Wenn ich mir überlege, dass ich schon bei einem Mathe-Parser nen Knoten im Gehirn kriege... Mal sehn, ob ich irgendwann mal dafür Verwendung finde...

So, jetzt zum eigentlichen Thema:
Das mit den Widgets ist eine gute Idee, aber ich finde, dass die Umsetzung noch nicht optimal ist.

Positiv
- die Geschwindigkeit und die relativ geringe Speicherauslastung.

Negativ
- es gibt keine "Immer im Hintergrund"-Funktion
- die Widgets sind recht sperrig und nicht in der Größe veränderbar
- das Ein- und Ausklappen der Widgets dauert ewig
- die Widgets sind nicht andockbar (z.B. in einer Sidebar)

Wenn du es hinkriegen würdest, soetwas wie die Vista Sidebar zu nachzuprogrammieren, würde das IMO den Wert erheblich steigern. In dem fall (und unter Voraussetzung eines größeren Monitor :/), würde ich mir das Ding vielleicht mal genauer ansehen.
  Mit Zitat antworten Zitat
BullsEye

 
Delphi 7 Personal
 
#6
  Alt 27. Aug 2008, 22:21
Zitat von NamenLozer:
Wenn du es hinkriegen würdest, soetwas wie die Vista Sidebar zu nachzuprogrammieren, würde das IMO den Wert erheblich steigern. In dem fall (und unter Voraussetzung eines größeren Monitor :/), würde ich mir das Ding vielleicht mal genauer ansehen.
Blos nicht! Ich meine es wäre ne möglichkeit zu sagen "Alle Widgets rechts andocken" aber du solltest die Widgets so wie sie nun sind 'frei rumfliegen lassen' finde ich persönlich besser. Außerdem gibts sone Sidebar schon, ist nichts neues .. und Google hat da auch noch die Hand im Spiel (Google Desktop ?)

Naja, das mit der Größe macht bei mir nicht viel...22" Röhrenmonitor
Marc
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#7
  Alt 27. Aug 2008, 22:26
Zitat von BullsEye:
Blos nicht! Ich meine es wäre ne möglichkeit zu sagen "Alle Widgets rechts andocken" aber du solltest die Widgets so wie sie nun sind 'frei rumfliegen lassen' finde ich persönlich besser. Außerdem gibts sone Sidebar schon, ist nichts neues .. und Google hat da auch noch die Hand im Spiel (Google Desktop ?)
Naja, Widgets gibt es ja auch schon. und bei der SideBar hat man auch die Wahl, ob man die Widgets darin andocken möchte, oder sie lieber frei herum fliegen lassen. Solange es optional ist, tut es ja keinem weh.

Zitat von BullsEye:
Naja, das mit der Größe macht bei mir nicht viel...22" Röhrenmonitor
Das muss ja ne Kiste sein
  Mit Zitat antworten Zitat
BullsEye

 
Delphi 7 Personal
 
#8
  Alt 27. Aug 2008, 22:39
Zitat von NamenLozer:
Naja, Widgets gibt es ja auch schon. und bei der SideBar hat man auch die Wahl, ob man die Widgets darin andocken möchte, oder sie lieber frei herum fliegen lassen. Solange es optional ist, tut es ja keinem weh.
Deshalb ja das mit dem 'rechts andocken'

Zitat von NamenLozer:
Das muss ja ne Kiste sein
Steht halb in der Ecke, da sieht man vom Gehäuse nicht ganz so viel. Viel schlimmer ist es, wenn der wo anders stehen soll... der wiegt ordentlich was
Dafür hat man ne schöne Ansicht ^^
Marc
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#9
  Alt 27. Aug 2008, 23:40
Zitat von NamenLozer:
zuersteinmal: Ich find sowohl Scripting-Engine echt cool . Wenn ich mir überlege, dass ich schon bei einem Mathe-Parser nen Knoten im Gehirn kriege... Mal sehn, ob ich irgendwann mal dafür Verwendung finde...
Ui, das ist schön zu hören! Danke!

Zitat von NamenLozer:
es gibt keine "Immer im Hintergrund"-Funktion
Ist bereits eingebaut, funktioniert jedoch noch nicht so ganz da muss ich wohl noch etwas drann arbeiten.

Zitat von NamenLozer:
die Widgets sind recht sperrig und nicht in der Größe veränderbar
Hm, damit hatte ich noch kein Problem - mal schauen, vielleicht bekomm ich die noch etwas kleiner

Zitat von NamenLozer:
das Ein- und Ausklappen der Widgets dauert ewig
Lässt sich leicht anpassen: Hauptmenü -> Editor -> Edit widget -> Datei DelphiPraxis Shoutbox auswählen -> Im Editor Zeile 231 die Konstante auf einen höheren Wert setzen -> Unter Project -> Create Project auswählen, speichert - fertig.

Zitat von NamenLozer:
die Widgets sind nicht andockbar (z.B. in einer Sidebar)
Ui, das ist an sich wirklich keine schlechte Idee, doch die Realisierung davon wird wohl etwas dauern

Zitat von NamenLozer:
Wenn du es hinkriegen würdest, soetwas wie die Vista Sidebar zu nachzuprogrammieren, würde das IMO den Wert erheblich steigern. In dem fall (und unter Voraussetzung eines größeren Monitor :/), würde ich mir das Ding vielleicht mal genauer ansehen.
Was kann denn die Vista-Side-Bar denn so besonderes? Gibts da irgendwo Screenshots / Videos / etc. pp.?

Zitat von BullsEye:
Außerdem gibts sone Sidebar schon, ist nichts neues
Das ist aber kein Grund es selbst mal zu machen

Zitat von BullsEye:
.. und Google hat da auch noch die Hand im Spiel (Google Desktop ?)
Also ich lass nicht meine komplette Festplatte von irgendwelchen Google-Tools durchsuchen, die dann ganz still und heimlich per Google-Bar für den I-Explorer oder sonst was irgendwohin gesendet werden. Auch wenns wahrscheinlich nicht stimmt, aber das ist mir doch etwas suspekt.
  Mit Zitat antworten Zitat
BullsEye

 
Delphi 7 Personal
 
#10
  Alt 27. Aug 2008, 23:45
Zitat von littleDave:
Was kann denn die Vista-Side-Bar denn so besonderes? Gibts da irgendwo Screenshots / Videos / etc. pp.?
Die kann nichts besonderes, die ist einfach nur da... hab mal nen Bild im Anhang...Natürlich gitbs haufenweise Widgets dafür...

Zitat von littleDave:
die Widgets sind nicht andockbar (z.B. in einer Sidebar)

Ui, das ist an sich wirklich keine schlechte Idee, doch die Realisierung davon wird wohl etwas dauern
Du solltest da ggf mal bei den Jedis reinschauen, da gibts ne Komponente, der Name ist mir aber gerade entfallen. Hab die auch schonmal in ein Projekt reingebastelt...

EDIT: Anhang vergessen
Miniaturansicht angehängter Grafiken
sidebar_826.jpg  
Marc
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf