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 20 von 26   « Erste     10181920 2122     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 CK_CK
CK_CK

 
Delphi 2006 Enterprise
 
#191
  Alt 13. Nov 2008, 15:19
Zitat von Sherlock:
@CK_CK: Praktisches kleines Ding, das ich heute schon mehrfach genutzt habe.

Was mich allerdings etwas irritiert ist die Eingabe der Zeit. Ich kann nichts markieren. Ich würde eigentlich gerne auf das Edit für die Minuten doppelklicken und dann ist es markiert und wird durch eine Eingabe ersetzt. Aber das geht nicht, und das macht die Eingabe etwas mühsam, weil man auch nicht alles löschen kann, es muss immer mindestens eine "0" drin stehen bleiben.

Ist das eine Einschränkung durch die ScriptEngine?
Freut mich, dass du es gebrauchen kannst

Ja, das mit den Edits ist eine Einschränkung durch die Script-Engine. Aber ich finde, man kann damit einigermaßen leben...

Chris
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#192
  Alt 15. Nov 2008, 15:46
Version 0.69 ist online.

Ich habe es nun endlich geschafft, die auf der Website hochgeladenen Widgets mit Hilfe des Programms direkt herunterladbar zu machen. Um das zu tun, müsst ihr einfach nur auf "Widget hinzufügen" gehen und unten den Knopf "Widgets herunterladen" drücken. Bisher war es so, dass dann die Website im Standardbrowser geöffnet wurde. Jetzt werden die Widgets aber in dem Dialog angezeigt. Wenn ihr dann ein Widget ausgewählt habt, müsst ihr einfach nur auf "Öffnen" klicken und das Widget wird automatisch heruntergeladen.

Zudem habe ich das Programm jetzt so erweitert, dass es automatisch alle 7 Tage nach Updates sucht. Im Moment kann man diese automatische Suche noch nicht deaktivieren, das wird aber noch kommen . Natürlich könnt ihr die Update-Suche auch manuell ausführen (im Menüpunkt "?").

Außerdem habe ich das TwgEdit jetzt endlich erweitert. Es ist jetzt endlich möglich, Text zu markieren. Dies geht mit der Maus und mit [Shift] + [Pfeiltasten] (wie in Windows).

Da es ja noch keinen richtigen Debugger gibt und es immer etwas blöd ist, ShowMessage zu benutzen, hab ich jetzt eine neue Funktion eingebaut: OutputDebugString. Dabei wird der String im Editor im unteren Tab "Debug-Nachrichten" angezeigt. Wenn das Widget nicht mehr im Editor ausgeführt wird, hat die Funktion keine Auswirkung mehr.

Zudem habe ich jetzt noch eine neue Unit hinzugefügt: Dialogs. Darin sind die Klassen "TOpenDialog", "TSaveDialog" und die Funktion "SelectDirectory" enthalten. Bei TOpenDialog/TSaveDialog wird die Funktion Execute übrigens nur ausgeführt, wenn das Widget lokale Dateien lesen/schreiben sowie auflisten darf. "SelectDirectory" wird nur ausgeführt, falls das Widget lokale Dateien auflisten darf.

Download-Link im ersten Post oder hier
Grüße
Dave
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#193
  Alt 16. Nov 2008, 16:46
Danke für die neuen Funktionen
Werde bei Gelegenheit die neuen Funktionen ausprobieren und ein Feedback schreiben.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

 
Delphi 10 Seattle Enterprise
 
#194
  Alt 16. Nov 2008, 16:56
Sehr geil ... musste ich trotz Vista und Sidebar noch haben.

Gibts noch mehr Fische? (der Kölner hat doch noch welche im Portfolio)
und meine Freundin schreit schon: "Ich will Kühe!"

cu

Oliver
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#195
  Alt 16. Nov 2008, 18:28
Zitat von toms:
Danke für die neuen Funktionen
Werde bei Gelegenheit die neuen Funktionen ausprobieren und ein Feedback schreiben.
Dann danke ich dir schon mal im Vorraus für dein Feedback

Zitat von Sir Rufo:
Sehr geil ... musste ich trotz Vista und Sidebar noch haben.
Das ist schön zu hören

Zitat von Sir Rufo:
und meine Freundin schreit schon: "Ich will Kühe!"
Ich hab gerade extra eine erstellt. Für den Download einfach auf "Widget hinzufügen" gehen und dann unten auf "Widgets herunterladen". Die Kuh befindet sich in der Kategorie "Fun". Ist zwar ne sehr einfache Kuh, aber hab ich ja "mal eben" erstellt
  Mit Zitat antworten Zitat
Alt 16. Nov 2008, 21:59     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von Sir Rufo
Sir Rufo

 
Delphi 10 Seattle Enterprise
 
#196
  Alt 16. Nov 2008, 23:23
Hallo Emil,

ich habe das Goldfish-Widget angepasst und jetzt ein Pennant.widget draus gebaut.
Ich habe in weiser Voraussicht auch schon mal die Fish-Bilder-Werte in Variablen gesetzt, damit man mögliche andere Fish-Bilder da einfach einbauen kann

Ich schicke dir das Widget einmal per PN, dann darfst Du entscheiden, ob das Widget Zugang zur Allgemeinheit bekommt.

Besten Dank ... auch für die Kuh @littleDave ... die werde ich noch ein wenig abändern (etwas Transparenz mit ein- ausfaden und die soll immer wieder woanders auf dem Schirm auftauchen)

cu

Oliver
  Mit Zitat antworten Zitat
Alt 16. Nov 2008, 23:35     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von Sir Rufo
Sir Rufo

 
Delphi 10 Seattle Enterprise
 
#197
  Alt 16. Nov 2008, 23:39
Zitat von EWeiss:
Von mir aus kannst du das zur verfügung stellen kein problem

gruss Emil
Dann ist es hier ...
Angehängte Dateien
Dateityp: zip pennant_890.zip (919,5 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Alt 16. Nov 2008, 23:44     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#198
  Alt 17. Nov 2008, 20:07
Zitat von Sir Rufo:
Besten Dank ... auch für die Kuh @littleDave ... die werde ich noch ein wenig abändern (etwas Transparenz mit ein- ausfaden und die soll immer wieder woanders auf dem Schirm auftauchen)
Mach das - ich hab die nur so eben schnell erstellt - ohne großen Aufwand. Kannst sie gerne verbessern !

Zitat von Sir Rufo:
Dann ist es hier ...
Danke, dass du das übernommen hast

@All: ich weiß zwar nicht mehr wann und wo ich das angekündigt habe, jedoch arbeite ich im Moment (nebenbei) daran, die Widgets unicode-fähig zu machen (für Version 0.7). Alle String-Properties (bis auf den Namen) sind dann vom Typ UTF8String.

Die Umstellung hat jedoch relativ große Auswirkungen auf die bisher vorhandenen Widgets. Ich kann leider noch nicht ganz abschätzen, wo genau Anpassungen gemacht werden müssen, jedoch kann ich eins bereits sagen: wenn ihr eigene Widgets habt, bei denen irgendwo (in einer String-Zuweisung im Quelltext) oder in den Properties ein "Special Char" drinnen ist (z.B. äöü€ß, ...), kann es mit der (noch nicht fertigen) neuen Version zu Problemem kommen. Im Quelltext ist das ganze nicht so schlimm, da dort ein einfaches erneutes Kompilieren reicht. Problematischer werden ihr die String-Eigenschaften in den Komponenten. Bei den Pfaden habt ich nicht so das Problem, eher bei den Properties "Caption", "Text" und "Hint". Bei allen von mir bis dahin veröffentlichen Widgets werde ich mich um die Konvertierung persönlich kümmern, jedoch kann ich das bei euren eigenen Widgets nicht mehr machen. Wenn ihr nur normale Zeichen in euen Strings habt (A..Z, a..z, 0..9, +.*#., ...), wird es keine Probleme geben. Ich möchte euch einfach nur so früh wie möglich vorwarnen - es kann auch sein, dass ich noch eine gute Lösung für das Problem finde.

Aber um nicht immer negativ zu sein, hab ich mal den Screenshot, bei dem man die Unicode-Variante schon sehen kann

Grüße
Dave
Miniaturansicht angehängter Grafiken
zwischenablage02_204.png   zwischenablage01_627.png  
  Mit Zitat antworten Zitat
Dbof
 
#199
  Alt 17. Nov 2008, 20:51
@Sir Rufo: Wow, echt schön gemacht

@littleDave: Danke für deine Antwort, doch ich bekomme es nicht hin...

Das ist mein Aufruf beim Klicken auf ein Element:
doch weder das:
MediaPlayer.OpenURL('C:\testdata.mp3') noch das:
MediaPlayer.OpenURL('C:\WINDOWS\Media\Windows XP-Start.wav') oder das

MediaPlayer.OpenURL('C:\test.m3u') scheint zu funktionieren. Was mache ich falsch? Habe auch das Beispiel aus deinem Internet Radio genommen, und da holt sich das Radio die Daten aus dem Internet teilweise aus einer m3u Datei.


Dennoch, echt tolles Programm, und habe ich auch immer bei mir
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#200
  Alt 17. Nov 2008, 21:04
Damit das überhaupt funktionieren kann, musst du dem Widget erlauben, auf lokale Dateien zugreifen zu dürfen. Dafür muss zum einen in den Einstellungen (im Hauptfenster einfach [Strg] + [F12] drücken) im Tab "Widgeteinstellungen" den Punkt "Widgets können auf lokale Dateien zugreifen" auswählen.

Wenn du das gemacht hast, musst du dem Widget persönlich das nochmal erlauben. Dafür startest du das Widget, klickst mit der rechten Maustaste auf das Widget und wählst den Eintrag "Sicherheitseinstellungen". Dort musst du den Eintrag "Lokale Dateien lesen" auswählen. Wenn du das gemacht hast, sollte es funktionieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 20 von 26   « Erste     10181920 2122     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:07 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