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 11 von 26   « Erste     91011 121321     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
 
#101
  Alt 28. Sep 2008, 22:04
Ich hab gerade noch eine neue Version hochgeladen. Da ich auch einen Thread im DF erstellen will, musste ich die Download-Pakete anpassen, da es im DF eine andere MB-Grenze für Anhänge gibt. Folgende Vorschläge von Toms habe ich bereits eingebaut:
  • 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.

    Also das Popup öffnet sich jetzt nur noch, wenn wirklich ein Widget ausgewählt wurde. Das mit dem markieren mit der rechten Maustaste ist nicht so einfach, da ich auch auch Multi-Selecting unterstützt und die Auwahl nicht durch einen Rechtsklick aufgehoben werden soll. Jedoch wird, falls kein Widget bisher ausgewählt ist, dieses automatisch markiert
  • Das TrayIcon Symbol hat irgendwie eine schlechte Qualität. (Vor allem der Rand)
    Ich hab ein neues Icon erstellt - diesmal was sonniges
  • Ein Klick aufs TrayIcon zeigt zwar das Fenster "Desktop Widget Engine" an, jedoch hat es nicht immer den Focus.
    Erledigt: das Fenster wird jetzt nach vorne gehohlt und bekommt den Focus
  • Fenster "Desktop Widget Engine": Ein Doppelklick auf ein Widget könnte den Editor aufrufen mit dem markierten Widget.
    Zwar nicht per Doppelklick, jedoch ist die Funktion jetzt per Popup-Menü auswählbar
  • Das DP Widget ist nicht verschiebbar, wenn sich der Mauszeiger über dem Logo befindet.
    Hab ich geändert, nun ist das DP-Widget jetzt auch wieder im Logo verschiebbar.

Zitat von littleDave:
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
Tut mir leid, xZise, ich konnte das bei mir nicht reproduzieren . Aber ich schau morgen nochmal nach.

Download befindet sich im ersten Post
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#102
  Alt 29. Sep 2008, 06:33
Zitat von littleDave:
Erledigt: das Fenster wird jetzt nach vorne gehohlt und bekommt den Focus
Hallo, das funktioniert bei mir noch nicht.
Habe das Programm gestartet. Danach ein Links-Klick aufs Tray.
Fenster öffnet sich, jedoch nicht als Vordergrund Fenster/ nicht fokussiert.

PS: Eine Menü Toolbar wäre noch gut. Mit Schnellzugriff auf Load, Save, Run etc.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#103
  Alt 29. Sep 2008, 07:25
Zitat von toms:
Zitat von littleDave:
Erledigt: das Fenster wird jetzt nach vorne gehohlt und bekommt den Focus
Hallo, das funktioniert bei mir noch nicht.
Habe das Programm gestartet. Danach ein Links-Klick aufs Tray.
Fenster öffnet sich, jedoch nicht als Vordergrund Fenster/ nicht fokussiert.
ich hab doch schon
Delphi-Quellcode:
MainForm.BringToFront;
MainForm.SetFocus;
drinnen

Muss ich wohl noch ein Application.BringToFront einbauen.

Zitat von toms:
PS: Eine Menü Toolbar wäre noch gut. Mit Schnellzugriff auf Load, Save, Run etc.
Klingt nicht schlecht, nur das Problem ist: Irgendwie steh ich mit TCoolbar und TToolbar auf Kriegsfuß, die Komponenten machen es immer so wie ich es nicht will

Edit
Ich hab gerade eine neue Version hochgeladen, mit der das Problem (Fenster wird beim Wiederherstellen nicht fokussiert) hoffentlich nicht mehr auftritt.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#104
  Alt 30. Sep 2008, 21:48
Version 0.53 hat jetzt den Weg hierher gefunden

Diesmal hab ich vorallem ein Paar Bugs behoben, die bei Widgets auftraten, die "Immer im Hintergrund" waren. Diesmal ist auch wieder eine neue Komponente mit dabei: eine ComboBox. Diese wird gleich in einem neuen Widget ausgenutzt: einem Übersetzungstool.

Download sowie der komplette ChangeLog ist wie immer im ersten Post zu finden

Grüße
Dave
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

 
Delphi 7 Enterprise
 
#105
  Alt 2. Okt 2008, 16:08
paar kleinigkeiten sind da noch

das entfernen geladen widgets mittels rechter maustaste, remove widget klappt nicht immer, da stimmt wa smit der auswhal nicht

im editor funktioniert der button New und Open nicht.
  Mit Zitat antworten Zitat
Crazy Ivan
 
#106
  Alt 2. Okt 2008, 17:37
super, das übersetzungs-widget funzt gut und seit meinem letzten test hat sich auch im ganzen system einiges getan das wetter finde ich auch sehr gelungen


was mich stört (vielleicht bin ich auch einfach nur zu dumm^^) ist, dass man nicht alle widgets, die geladen sind mit einem klick in den hintergrund befördern kann... ich hab keinen riesen-monitor und daher stört die sidebar, wenn sie andere maximierte programme verkleinert
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#107
  Alt 2. Okt 2008, 22:05
Zitat von jokerfacehro:
paar kleinigkeiten sind da noch

das entfernen geladen widgets mittels rechter maustaste, remove widget klappt nicht immer, da stimmt wa smit der auswhal nicht
was geht denn genau nicht? Wird das falsche Widget gelöscht oder wird in der Liste im Hauptfenster das falsche Widget gelöscht?

Zitat von jokerfacehro:
im editor funktioniert der button New und Open nicht.
Die werden erst mit Inhalt gefüllt, sobald Widgets mehrere Fenster und der Benutzer mehrere Units erstelle kann.

Zitat von Crazy Ivan:
super, das übersetzungs-widget funzt gut und seit meinem letzten test hat sich auch im ganzen system einiges getan das wetter finde ich auch sehr gelungen
Danke für dein tolles Feedback

Zitat von Crazy Ivan:
was mich stört (vielleicht bin ich auch einfach nur zu dumm^^) ist, dass man nicht alle widgets, die geladen sind mit einem klick in den hintergrund befördern kann... ich hab keinen riesen-monitor und daher stört die sidebar, wenn sie andere maximierte programme verkleinert
Also du kannst jedes einzelne Widget so einstellen, dass es wie ein normales Fenster reagiert. Somit würden dann die Widgets in den Hintergrund wandern, wenn du einem anderen Fenster den Focus gibst.
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

 
Delphi 7 Enterprise
 
#108
  Alt 3. Okt 2008, 10:29
Zitat:
was geht denn genau nicht? Wird das falsche Widget gelöscht oder wird in der Liste im Hauptfenster das falsche Widget gelöscht?
es passiert garnichts weil die auswahl fehlt, also ich muss erstmal einmal mit linksclick das widget auswählen, bevor ich es mit rechtsclick entfernen kann, die auswahl sollte auch mit rechtsclick funktionieren
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#109
  Alt 4. Okt 2008, 20:04
Version 0.54 ist jetzt online

Zitat von jokerfacehro:
Zitat:
was geht denn genau nicht? Wird das falsche Widget gelöscht oder wird in der Liste im Hauptfenster das falsche Widget gelöscht?
es passiert garnichts weil die auswahl fehlt, also ich muss erstmal einmal mit linksclick das widget auswählen, bevor ich es mit rechtsclick entfernen kann, die auswahl sollte auch mit rechtsclick funktionieren
Das Problem hab ich jetzt behoben. Es war etwas schwieriger, da die Liste ja auch Mehrfachauswahl unterstützt, aber ich denke, ich hab das Problem behoben.

Ich wollt halt nicht, dass wenn man mal eine Auswahl an Widgets in der Liste getroffen hat und dann durch ein ungewollten oder ungenauen Rechtsklick nicht auf einen ausgewählten Eintrag klickt, dass dann die Auswahl verloren geht. Jetzt hab ich es so gelöst, dass nur der Eintrag unter der Maus mit der linken Maustaste ausgewählt werden kann, wenn man maximal ein Eintrag selektiert hat.

Der Download sowie der ChangeLog ist im ersten Post zu finden
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#110
  Alt 5. Okt 2008, 08:46
Hallo Dave

Noch einige Bemerkungen / Vorschläge:
  • Vor dem Laden eines neuen Themes sollte eine Abfrage kommen, ob das aktuelle Theme gespeichert werden soll (wenn dieses verändert wurde)
  • Der Name des aktuellen Themes sollte irgendwo ersichtlich sein
  • Bei "Edit selected Widget" fehlt noch ein "..." (Menu + Popup)
  • Bei "Security Settings" fehlt auch noch ein "...."
  • File | Close beendet die Engine, "X" minimiert es ins Tray. Da fehlt irgendwie die Logik, ist nicht intuitiv.
    Etl wäre eine Option "Minimize to tray on close" / "Always minimize to the tray instead of to the taskbar" etwas.
    D.h der Minimieren Button könnte Enabled sein und würde je nach eingestellter Option anders reagieren. Das
    gleiche gilt für den Close Button.
  • Settings Fenster: ESC sollte das Fenster schließen.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 11 von 26   « Erste     91011 121321     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 22:32 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