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 9 von 26   « Erste     789 101119     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 Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#81
  Alt 27. Sep 2008, 01:38
Hi,

Gute Arbeit

Ich habe mal aus Neugier den Editor gestartet und ein neues Widget begonnen. Aber irgendwie kann ich im WidgetFileBrowser keine Dateien zu meinem Projekt hinzufügen. D.h. ich kann auch keine Bilder in meine Images laden. Entweder es funktioniert einfach nicht, oder ich bekomme folgende Meldung:

Zitat:
---------------------------
Fehler
---------------------------
Could not add the file
C:\Users\Mitch\Desktop\Unbenannt.jpg
---------------------------
OK
---------------------------
Vielleicht bin ich auch einfach zu blöd dazu
Michael
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#82
  Alt 27. Sep 2008, 01:44
Zitat von NamenLozer:
Ui, das geht ja echt flott bei dir. Ich wpnschte, ich köme mit meinen Projekten auch so schnell voran...
Soooo schnell bin ich nun auch wieder nicht. Aber ich hab mir mit den Jahren eine sehr gute Programmierstruktur angewöht - das zahlt sich jetzt aus. Außerdem ist ja das Grundprogramm bereits lauffähig, ich ergänze es nur am und zu um ein paar Features.

Zitat von NamenLozer:
Also die CPU-Auslastung ist wirklich deutlich gesunken durch das Update. Ich kam mit meinen 6 Widgets (Clock, Shoutbox, 2 Suchfelder, Fisch, Network Traffic) nie über 1% Auslastung (2,4Ghz Quad).
Dann hat es sich für mich ja gelohnt. Ich war selbst überrascht, wieviel 5 veränderte Zeilen ausmachen würden.

Zitat von NamenLozer:
Das Networktraffic-Widget funktioniert bei mir aber nicht, was wahrscheinlich daran liegt, dass ich W-LAN habe.
Hm, steht überhaupt was im Traffic-Widget drinnen? Oder ändern sich die Werte nicht? Wenn du mir schnell helfen willst, kannst du das Widget schnell bearbeiten. Dafür wählst du im Menü unter "Editor" dein Eintrag "Edit widget" aus. Im Quelltext kommentierst du dann Zeile 68 aus:
// if Ad.IP <> '127.0.0.1' then Dann startest du das Widget im Editor mit F9. Ändert sich dann was? Aber bitte das Widget vorher schließen.

Zitat von NamenLozer:
Ich mag es, wie der Fisch in der neuen Version wegschwimmt, wenn man versucht, ihn zu fangen. Ich hab ihn aber trotzdem erwischt
Hm, muss ich ihn wohl noch schneller machen

Zitat von Neutral General:
Gute Arbeit
Danke für das Lob

Zitat von Neutral General:
Ich habe mal aus Neugier den Editor gestartet und ein neues Widget begonnen. Aber irgendwie kann ich im WidgetFileBrowser keine Dateien zu meinem Projekt hinzufügen. D.h. ich kann auch keine Bilder in meine Images laden. Entweder es funktioniert einfach nicht, oder ich bekomme folgende Meldung:

Zitat:
---------------------------
Fehler
---------------------------
Could not add the file
C:\Users\Mitch\Desktop\Unbenannt.jpg
---------------------------
OK
---------------------------
Vielleicht bin ich auch einfach zu blöd dazu
Das TwgGraphic-Objekt unterstütz bisher nur PNGs. Andere Formate werden leider noch nicht unterstützt. Wenn du das Bild in ein PNG-Bild änderst, dann sollte es funktionieren (z.B. mit IrfanView). Du kannst wahrscheinlich deine Hinzugefügten Bilder nicht sehen, da diese nicht die Endung .PNG haben und somit nicht sichtbar sind.
  Mit Zitat antworten Zitat
Alt 27. Sep 2008, 01:58     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#83
  Alt 27. Sep 2008, 02:26
Ok es funktioniert jetzt

Aber weißt du, was noch schön wär? Codevervollständigung im Editor
Michael
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#84
  Alt 27. Sep 2008, 02:28
Zitat von Neutral General:
Ok es funktioniert jetzt

Aber weißt du, was noch schön wär? Codevervollständigung im Editor
Gibts doch:

Strg + Leertaste

Oder meinst du was anderes?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#85
  Alt 27. Sep 2008, 02:30
Huch

Wow

Aber geht es auch, dass die Codevervollständigung automatisch aufpoppt, kurz nachdem man den Punkt gesetzt hat? So wie in Delphi.

Edit: Was ich mir auch nocht wünschen würde: Doppelklick aufs TrayIcon öffnet das Hauptfenster der Widget Engine.

Ach ja und wenn ich schon dabei bin: Im Anhang ist ein Bild. Man kann ganz schwach erkennen, dass nach dem OnDone noch ein Eintrag folgt (SetOnDone). Der Scrollbalken scrollt aber nur bis hierhin.

Und nochwas: Wenn die Codevervollständigung schon drin ist, wie wärs mit diesem Parameter-Hint nach einem '(' ?
Miniaturansicht angehängter Grafiken
unbenannt_377.jpg  
Michael
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#86
  Alt 27. Sep 2008, 02:36
Zitat von littleDave:
Zitat von NamenLozer:
Das Networktraffic-Widget funktioniert bei mir aber nicht, was wahrscheinlich daran liegt, dass ich W-LAN habe.
Hm, steht überhaupt was im Traffic-Widget drinnen? Oder ändern sich die Werte nicht? Wenn du mir schnell helfen willst, kannst du das Widget schnell bearbeiten. Dafür wählst du im Menü unter "Editor" dein Eintrag "Edit widget" aus. Im Quelltext kommentierst du dann Zeile 68 aus:
// if Ad.IP <> '127.0.0.1' then Dann startest du das Widget im Editor mit F9. Ändert sich dann was? Aber bitte das Widget vorher schließen.
Nein, das ändert leider nichts. Er zeigt genau wie vorher einfach überall Nullen an (sogar bei der MAC-Adresse).
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#87
  Alt 27. Sep 2008, 02:44
Zitat von Neutral General:
Huch

Wow

Aber geht es auch, dass die Codevervollständigung automatisch aufpoppt, kurz nachdem man den Punkt gesetzt hat? So wie in Delphi.
Das hab ich absichtlich nicht eingebaut. Für die Codevervollständigung muss ja das komplette Script kompiliert werden. Das dauert schon mal 1-2 Sekunden. 1-2 Sekunden, da wirklich das komplette Script kompiliert werden muss, also ca. 3100 Zeilen + den Quelltext des Widgets. Die ScriptEngine kennt noch kein DCUs (oder so was ähnliches), daher dauert das leider etwas. Somit hab ich mich dazu entschlossen, die CodeCompl. wirklich nur auf explizite Abfrage des Benutzers anzugeigen.

Zitat von Neutral General:
Edit: Was ich mir auch nocht wünschen würde: Doppelklick aufs TrayIcon öffnet das Hauptfenster der Widget Engine.
Aufgeschrieben und vermerkt. Wird beim nächsten mal mit dabei sein.

Zitat von Neutral General:
Ach ja und wenn ich schon dabei bin: Im Anhang ist ein Bild. Man kann ganz schwach erkennen, dass nach dem OnDone noch ein Eintrag folgt (SetOnDone). Der Scrollbalken scrollt aber nur bis hierhin.
Das ist ein Bug in der TSynCodeCompletion. Mal schauen, ob ich den Fehler im Source finde

Zitat von Neutral General:
Und nochwas: Wenn die Codevervollständigung schon drin ist, wie wärs mit diesem Parameter-Hint nach einem '(' ?
Wird noch kommen, dauert aber noch etwas. Die CodeCompletion funktioniert bisher auch nur rudimentär. Die .-Angabe funktioniert nur beim ersten Punkt, danach nicht mehr. Die ScriptEngine kann das ohne Probleme, die CodeCompletion aber noch nicht. Bevor die nicht gescheit funktioniert bau ich den Parameter-Hint noch nicht ein.

Zitat von NamenLozer:
Zitat von littleDave:
Zitat von NamenLozer:
Das Networktraffic-Widget funktioniert bei mir aber nicht, was wahrscheinlich daran liegt, dass ich W-LAN habe.
Hm, steht überhaupt was im Traffic-Widget drinnen? Oder ändern sich die Werte nicht? Wenn du mir schnell helfen willst, kannst du das Widget schnell bearbeiten. Dafür wählst du im Menü unter "Editor" dein Eintrag "Edit widget" aus. Im Quelltext kommentierst du dann Zeile 68 aus:
// if Ad.IP <> '127.0.0.1' then Dann startest du das Widget im Editor mit F9. Ändert sich dann was? Aber bitte das Widget vorher schließen.
Nein, das ändert leider nichts. Er zeigt genau wie vorher einfach überall Nullen an (sogar bei der MAC-Adresse).
Hm schade, anscheinend funktioniert meine Methode bei dir nicht. Mal schauen, ob ich da was im Inet dazu finde.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

 
Delphi 2007 Professional
 
#88
  Alt 27. Sep 2008, 03:47
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...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#89
  Alt 27. Sep 2008, 08:42
Mir ist noch aufgefallen, dass die Menü-Shortcuts nicht in Englisch sind.
D.h z.B anstatt Strg sollte es Ctrl heissen.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#90
  Alt 27. Sep 2008, 11:17
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 <= XP da einen Dialog selber basteln (oder du nimmst so eine Komponente die den Vista-Dialog Simuliert/Emuliert).

Und anonsten wäre es praktisch wenn man die Widgets einfach per Drag and Drop aus dem Fenster auf den Bildschirm ziehen kann.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 26   « Erste     789 101119     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 00:36 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