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 3 von 26     123 4513     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
 
#21
  Alt 30. Aug 2008, 02:04
Zitat von xZise:
Zitat von littleDave:
Zitat von xZise:
Nein, soweit ich das gesehen habe, möchte er, dass man in der Widgetliste eins auswählt und dann gedrückt auf den Desktop zieht, eben dahin, wo der Mauszeiger gewesen ist.
Aber warum sollte man das machen Die Widgets, die in der Liste sind, sind doch bereits aktiv und auf dem Desktop So ganz versteh ich das nicht.
Okay ich jetzt auch nicht mehr
Da bin ich ja beruhigt

Zitat von xZise:
Was mich stört, ist das ich die nicht wieder hochholen kann. Also die Widgets. Einmal mit Firefox oder was auch immer drüber und schon sind sie fast weg (nur minimieren hilft).

MfG
xZise
Jetzt ist die Frage: welchen Form-Style haben denn die Widgets: Always-On-Top, Normal oder Always in Background? Wenn sie Always on Top sind, dann sollten sie auch immer oben sein. Bei Normal gehen sie (wie ein normales Fenter) in den Hintergrund, sobald sich eine andere Andwendung darüber schiebt. Fährt man mit der Maus dann wieder über das Widget, dann kommen sie wieder nach vorne. Wenn sie Always-In-Background sind, dann sind sie nur auf dem Desktop sichtbar.

Außerdem: hast du eine Idee, wie man die Widgets wieder nach oben holen könnte? Also nicht programmiertechnisch sondern eher wie du die Widgets wieder nach oben holen würdest? Über ein Popup-Menü des TrayIcons?

@All: Oh man - ich bin so doof . Ich hab die falsche Version hochgeladen. In der hochgeladenen Version gab es einen Bug im Designer - die Verschieben-Felder wurden nicht angezeigt. Alle die heute zwischen 00:30 und 03:00 Uhr die Datei heruntergeladen haben (hat Vorteile, dass es schon so spät ist, dann haben das noch nicht so viele mitbekommen), haben leider eine fehlerhafte Version. Ich hab gerade eine Version hochgeladen, in der das nicht mehr vorkommt. Sonst hat sich nichts geändert.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#22
  Alt 30. Aug 2008, 17:49
Und schon wieder eine neue Version.

Dieshab ist ein neues SideBar-Widget dabei, dass auf der linken oder rechten Seite des Desktops ca. 150 Pixel reserviert. Zwar können Forms über diesen Bereich geschoben werden, maximierte Fenster meiden jedoch diesen Bereich. Diese SideBar unterstützt das Andocken von einzelnen Widgets zwar noch nicht, jedoch können die Widgets problemlos in den Bereich verschoben werden. Da das dieses Widget noch im Alpha-Stadium ist, kann es sein, dass nicht alles funktioniert - besonders auf Multi-Monitor-System weiß ich nicht, ob es funktioniert. Über Feedback wäre ich sehr froh.

[Edit]Anhang vergessen [/Edit]

Grüße
Dave
Miniaturansicht angehängter Grafiken
sidebar_160.gif  
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#23
  Alt 30. Aug 2008, 18:07
Hi

Bin mal gespannt, ob du das mit dem Andocken hinbekommst - Noch ist halt das Problem, dass viele Widgets breiter sind als die Sidebar selbst, sodass man sie nicht einfach an die entsprechende stelle schieben kann. Mit dem Kalender sieht das ganez aber schon ganz ordnetlich aus.

Ein interessanter Ansatz jedenfalls, die Sidebar selbst auch als Widget anzulegen, mal gucken ob sich das bewährt. Noch hat das natürlich so ein paar Tücken, z.B. dass man mehrere Sidebars erzeugen kann. Und wenn man ein anderes Wodget "always in bg" erzeugt, liegt es hinter der Sidebar.

Weiter so
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#24
  Alt 30. Aug 2008, 18:29
Zitat von NamenLozer:
Bin mal gespannt, ob du das mit dem Andocken hinbekommst - Noch ist halt das Problem, dass viele Widgets breiter sind als die Sidebar selbst, sodass man sie nicht einfach an die entsprechende stelle schieben kann. Mit dem Kalender sieht das ganez aber schon ganz ordnetlich aus.
Ja, mit dem Andocken wird noch etwas dauern. Ich hab die neue Version eben schnell noch hochgeladen, da ich jetzt nicht mehr so oft zum programmieren komme. Die Größe der Widgets werd ich aber auf jeden Fall noch anpassen - dauert halt nur etwas

Zitat von NamenLozer:
Ein interessanter Ansatz jedenfalls, die Sidebar selbst auch als Widget anzulegen, mal gucken ob sich das bewährt. Noch hat das natürlich so ein paar Tücken, z.B. dass man mehrere Sidebars erzeugen kann. Und wenn man ein anderes Wodget "always in bg" erzeugt, liegt es hinter der Sidebar.
Die ganzen Probleme werd ich mir auf jeden noch vornehmen. Aber wenn ein Widget auf der SideBar ist, dann ist es ja nocht so wichtig, ob es "Always in Bg" ist. Es ist ja normalerweise kein Fenster drüber.

Die Sidebar hab ich deswegen als Widget gemacht, damit man die viel einfacher Anpassen und Erweitern kann.

Zitat von NamenLozer:
Weiter so
Danke für dein Feedback
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#25
  Alt 3. Sep 2008, 16:21
Nach einer kleinen Pause meld ich mich mal wieder.

Da ich in den letzten und in den nächsten Tagen nicht daheim war/bin, konnt ich am Programm selber nichts machen. Jedoch hab ich mich (dank der IDE) ein wenig mit den Wigets selbst beschäftigt. Ich hab z.B. das Wetter-Widget ein wenig verändert. Außerdem hab ich versucht ein paar Widgets kleiner zu machen. Mit dabei ist z.B. ein DP-Shoutbox-Widget extra für die Sidebar. Das Widget passt jetzt wunderbar in die Sidebar und durch den Text kann man jetzt mit der Maus scrollen - einfach klicken und ziehen. Auch der Kalender und die digitale Uhr ist jetzt schmal genug für die Sidebar.

Beim Kalender werd ich noch eine Termin-Funktion einbauen, jedoch fehlen dafür noch ein paar Features im Programm selber. Sobald ich diese eingebaut habe, wird der Kalender mit der Termin-Funktion erweitert.

Es hat sich wirklich nicht viel verändert, jedoch wollt ich zeigen, dass das Projekt noch lange nicht tot ist
Miniaturansicht angehängter Grafiken
screenshot_122.jpg  
  Mit Zitat antworten Zitat
BullsEye

 
Delphi 7 Personal
 
#26
  Alt 3. Sep 2008, 16:37
Muss ja nicht alles von heute auf morgen fertig sein
Marc
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#27
  Alt 4. Sep 2008, 15:28
Ich bin heute spontan daheim gewesen und hab mich dann noch etwas mit dem Programm beschäftigt. Somit hab ich eine neue Version hochgeladen. Den ChangeLog sowie den Download gibts im ersten Post.

Grüße
  Mit Zitat antworten Zitat
Crazy Ivan
 
#28
  Alt 4. Sep 2008, 16:09
gut, ich melde mich auch nochmal

xzise hatte das schon richtig verstanden (jedenfalls annähernd^^). ich würde die widgets nicht gleich durch den opendialog öffnen, sondern sie erstmal nur in besagte liste importieren um sie dann per drag'n'drop auf dem desktop zu platzieren... *persönliche meinung* (ich hoffe das hat sich in der neusten version noch nicht geändert, die hab ich leider noch nicht ansehen können )

der vorteil wäre, dass der nutzer gleich die widgets positioniert und nicht einzeln, denn wenn man alle im ordner befindlichen widgets auswählt sind sie auf der selben stelle auf dem desktop... möglicherweise wäre da (wegen der geschmackssache^^) eine einstellung angebracht, ob man die widgets nur importieren, oder auch erzeugen möchte..


das war's


gruß
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#29
  Alt 5. Sep 2008, 14:59
@Crazy Ivan:

Ach so meinst du das
Also ich hab über sowas ähnlich auch schon drüber nachgedacht und mir ist folgendes eingefallen:
Wenn man ein Widget hinzufügen will, muss man nicht mehr die Datei per Dialog auswählen. Stattdessen werd ich ein Form erstellen, in der alle gefundenen Widgets als Thumbnail dargestellt werden. Dort kann man dann einfach das Widget auswählen und starten lassen. Das mit dem "Auf den Desktop" verschieben ist war wirklich eine große Komfortfunktion, jedoch dauert es ein wenig, sowas zu realisieren. Daher werd ich mir erstmal den Dialog vornehmen und später dann die Drag&Drop-Geschichte.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#30
  Alt 10. Sep 2008, 18:42
Ich hab gerade Version 0.3 online gestellt.

Das Programm hat jetzt ein Shoutcast-Radio, welches auf die bass.dll zurückgreift. Ebenfalls ist jetzt für Widgets jetzt möglich, den aktuellen Netzwerk-Traffic von jedem Netzwerk-Adapter auszulesen. Das bereits mitgelieferte Widget stellt bisher zwar nur einen dar, jedoch werd ich noch einen Adapter-Switcher in das Widget einbauen, so dass man sich durch die einzelnen Adapter durchklicken kann.

Ich hab nun auch wieder die den Resample-Filter für die einzelnen Graphics eingebaut. Den hatte ich zwar ganz am Anfang drinnen, jedoch hab ich dann eine neue Version von GraphicEx herungergeladen, in der das Resizen anders geregelt wird und ich somit den Resize-Filter erstmal wieder ausbauen musste. Jedoch ist er jetzt wieder drinnen.

Der komplette Change-Log sowie der Download ist im ersten Post zu finden.
Ich hoffe, dass manche sich das Programm mal anschauen und mir über die Erfahrung berichten.

Grüße
  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 12:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf