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 12 von 26   « Erste     2101112 131422     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 Matze
Matze

 
Turbo Delphi für Win32
 
#111
  Alt 5. Okt 2008, 08:59
Ich habe es in einer PN bereits erwähnt: Klasse Idee, mir gefällt dieses Tool.

Ich bin ja Fan von Emils Goldfish. Deine Umsetzung ist natürlich spitze, da der Fisch auf die Maus reagiert. Nun hat Emil hier einen Screenshot veröffentlicht, der zeigt, wie schön man sich so ein "Aquarium" einrichten kann.
Wenn es bei deinem Widget die Möglichkeit gäbe, andere Fische und auch mehrere zu wählen, würde ich mich sehr darüber freuen.

Zu dem Sidebar-Wetter-Widget hätte ich eine Frage: Wie kann man denn da den Ort ändern? Im Source steht zwar das hier:

Delphi-Quellcode:
procedure DoUpdateWeatherCity(Sender: TObject);
var s: string;
begin
  if InputQuery('Enter city', 'Please enter your city (example: Berlin,Germany)', s) then
  begin
     s := StringReplace(s, ' ', '%20', True, False);
     wgHTTP2.GetURL(SearchURL + s);
  end;
end;
Aber ich habe nicht herausbekommen, wie man das per Mausklick ändern kann.

Ich weiß nicht, ob es bereits genannt wurde, aber es ist etwas nervig, wenn man bei jedem Hinzufügen eines Widgets erst einmal warten muss, bis die Thumbnails geladen sind.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#112
  Alt 5. Okt 2008, 09:03
Zitat von Matze:
Ich weiß nicht, ob es bereits genannt wurde, aber es ist etwas nervig, wenn man bei jedem Hinzufügen eines Widgets erst einmal warten muss, bis die Thumbnails geladen sind.
Wahrscheinlich dauert es so lange, bis die Thumbnails erstellt sind?
Du könntest ja wie Windows eine Thumbnail Datei anlegen.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#113
  Alt 5. Okt 2008, 09:19
Ja genau, daher dachte ich auch an eine Art Caching.

Edit: Da fällt mir noch etwas ein: Es wäre nicht schlecht, wenn man über das Tray-Icon auch alle Widges deaktivieren könnte. Bei rechenlastigen Anwendungen (Spiele, CAD, ...) könnte man so vorübergehend mehr Ressourcen zur Verfügung stellen.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#114
  Alt 5. Okt 2008, 13:05
Zitat von toms:
  • Vor dem Laden eines neuen Themes sollte eine Abfrage kommen, ob das aktuelle Theme gespeichert werden soll (wenn dieses verändert wurde)
Das find ich gut. Darauf bin ich noch nicht gekommen. Welche Sachen sollen den zum Ändern eines Themes zählen? Nur das Hinzufügen/Löschen von Widgets (nicht schwer) oder auch das verschieben (etwas aufwendiger)?

Zitat von toms:
  • Der Name des aktuellen Themes sollte irgendwo ersichtlich sein
Ich werds als Überschrift über die Liste der Widgets machen.

Zitat von toms:
  • Bei "Edit selected Widget" fehlt noch ein "..." (Menu + Popup)
  • Bei "Security Settings" fehlt auch noch ein "...."
irgendwie vergess ich die Punkte immer *arg*

Zitat von toms:
  • 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.
Hm, da muss ich mir was einfallen lassen. Das mit der Taskleiste würd ich nicht so gerne machen, das TNA-Icon sollte eigendlich das einzige Symbol in der Startleiste sein. Mal schauen, wie ich das anstelle. Wahrscheinlich werd ich vor das File | Close noch einen Punkt "Minimize" einbauen. Wäre das schon intuitiver?

Zitat von toms:
  • Settings Fenster: ESC sollte das Fenster schließen.
Erledigt, wird in der neuen Version mit dabei sein

Zitat von Matze:
Ich habe es in einer PN bereits erwähnt: Klasse Idee, mir gefällt dieses Tool.
Danke, das freut mich

Zitat von Matze:
Ich bin ja Fan von Emils Goldfish. Deine Umsetzung ist natürlich spitze, da der Fisch auf die Maus reagiert. Nun hat Emil hier einen Screenshot veröffentlicht, der zeigt, wie schön man sich so ein "Aquarium" einrichten kann.
Wenn es bei deinem Widget die Möglichkeit gäbe, andere Fische und auch mehrere zu wählen, würde ich mich sehr darüber freuen.
Klar, die Möglichkeit gäbe es schon, jedoch bräucht ich dafür mehr Fische. Ich hab nur die beiden, die EWeiss bei sich benutzt (hat). Den zweiten kann ich ja mal mit einbauen, aber mehr habe ich nicht.

Zitat von Matze:
Zu dem Sidebar-Wetter-Widget hätte ich eine Frage: Wie kann man denn da den Ort ändern? Im Source steht zwar das hier:

Delphi-Quellcode:
procedure DoUpdateWeatherCity(Sender: TObject);
var s: string;
begin
  if InputQuery('Enter city', 'Please enter your city (example: Berlin,Germany)', s) then
  begin
     s := StringReplace(s, ' ', '%20', True, False);
     wgHTTP2.GetURL(SearchURL + s);
  end;
end;
Aber ich habe nicht herausbekommen, wie man das per Mausklick ändern kann.
Huch, das ist ja noch ne alte Version, in der neuen existiert diese Funktion nicht mehr. Aber um den Ort zu ändern, musst du einfach mit der Maus auf den Namen des aktuellen Ortes klicken. Dann erscheit der InputQuery-Dialog, in den du dann den Ort eingeben kannst. Wenn der Ort, den du eingegeben hast, nicht gefunden wurde, dann erscheint eine Fehlermeldung. Aber ich würd dir raten, die neuste Version herunterzuladen und auch die Widgets zu überschreiben.

Zitat von Matze:
Ich weiß nicht, ob es bereits genannt wurde, aber es ist etwas nervig, wenn man bei jedem Hinzufügen eines Widgets erst einmal warten muss, bis die Thumbnails geladen sind.
Zitat von toms:
Wahrscheinlich dauert es so lange, bis die Thumbnails erstellt sind?
Du könntest ja wie Windows eine Thumbnail Datei anlegen.
Zitat von Matze:
Ja genau, daher dachte ich auch an eine Art Caching.
Ok, da werd ich mir was einfallen lassen müssen, wahrscheinlich eine Art thumbs.db, wie toms bereits vorgeschlagen hat. Jedoch weiß ich noch nicht, wie ich es anstellen soll, dass das Programm weiß, ob die Thumbnail-Datei im Widget selber neuer ist als die in der Cache-Datei. Da werd ich mir irgendwas überlegen müssen.

Zitat von Matze:
Edit: Da fällt mir noch etwas ein: Es wäre nicht schlecht, wenn man über das Tray-Icon auch alle Widges deaktivieren könnte. Bei rechenlastigen Anwendungen (Spiele, CAD, ...) könnte man so vorübergehend mehr Ressourcen zur Verfügung stellen.
Ok, ich werd das TrayIcon-Popup etwas erweitern. Zum einen die Möglichkeit, die Widgets zu entfernen und zum anderen werd ich alle Themes, die gefunden wurden, in das Popup-Menü selber mit einbauen - damit man nicht immer erst den OpenDialog öffnen muss.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#115
  Alt 5. Okt 2008, 13:12
Ja die Version, die ich gerade nutze, ist nicht die aktuelle, doch mir ging's ja nur darum, wie man den Ort ändern kann.

Auch wäre es schöner, wenn du den bekannten Hand-Cursor nutzen würdest und nicht diesen von Delphi, denn der ist schrecklich.

Edit: Also den Ort zu ändern funktioniert aber nur sehr sporadisch. Der Klick wird nicht überall beim Ortsnamen akzeptiert, sondern nur an bestimmten Stellen. Und schöner wäre es, wenn man Namen wählen könnte, denn ich weiß nicht, welcher verfügbare Ort in meiner Nähe ist.

Edit 2: Und wenn die ganzen Widgets in dem Sidebar-Widget "einrasten" würden, wäre es noch schöner.
Aber nun schaue ich mal die aktuelle Version an.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#116
  Alt 5. Okt 2008, 13:23
Zitat von Matze:
Auch wäre es schöner, wenn du den bekannten Hand-Cursor nutzen würdest und nicht diesen von Delphi, denn der ist schrecklich.
Ok, ich werd schauen, dass ich den von Windows nehme

Zitat von Matze:
Edit: Also den Ort zu ändern funktioniert aber nur sehr sporadisch. Der Klick wird nicht überall beim Ortsnamen akzeptiert, sondern nur an bestimmten Stellen. Und schöner wäre es, wenn man Namen wählen könnte, denn ich weiß nicht, welcher verfügbare Ort in meiner Nähe ist.
Ich weiß zwar nicht, welche Version du im Moment benutzt, jedoch weiß ich, dass ich in der aktuellen da was geändert habe. In der neuen Version sucht man zuerst einen Ort und dann kann man den gewünschten in einer ComboBox auswählen.

Zitat von Matze:
Edit 2: Und wenn die ganzen Widgets in dem Sidebar-Widget "einrasten" würden, wäre es noch schöner.
Aber nun schaue ich mal die aktuelle Version an.
Da bin ich im Moment dran, jedoch funktioniert das noch nicht so wie ich es will
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#117
  Alt 5. Okt 2008, 13:26
Ok in der aktuellen scheint die Ortswahl besser zu funktionieren, doch bei der Eingabe von "Stuttgart,Germany" kommen Temperaturen jenseits von Gut und Böse. Der Sommer kehrt zurück.

Edit: Irgendwie sind die bei jedem Ort zu hoch ...
Edit 2 (zum Beitrag unter diesem): Achso! Das muss einem aber auch gesagt werden.
Miniaturansicht angehängter Grafiken
hitze_186.png  
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#118
  Alt 5. Okt 2008, 13:28
Zitat von Matze:
Ok in der aktuellen scheint die Ortswahl besser zu funktionieren, doch bei der Eingabe von "Stuttgart,Germany" kommen Temperaturen jenseits von Gut und Böse. Der Sommer kehrt zurück.
Da bist du wohl auf die Temperatur gekommen. Dann wechselt man zwischen Celsius und Fahreinheit
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#119
  Alt 5. Okt 2008, 14:06
Zitat von littleDave:
Das find ich gut. Darauf bin ich noch nicht gekommen. Welche Sachen sollen den zum Ändern eines Themes zählen? Nur das Hinzufügen/Löschen von Widgets (nicht schwer) oder auch das verschieben (etwas aufwendiger)?
Sicher mal nach dem Hinzufügen/Löschen von Widgets.
Wie kann man denn Widgets verschieben?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#120
  Alt 5. Okt 2008, 14:11
Zitat von toms:
Zitat von littleDave:
Das find ich gut. Darauf bin ich noch nicht gekommen. Welche Sachen sollen den zum Ändern eines Themes zählen? Nur das Hinzufügen/Löschen von Widgets (nicht schwer) oder auch das verschieben (etwas aufwendiger)?
Sicher mal nach dem Hinzufügen/Löschen von Widgets.
Wie kann man denn Widgets verschieben?
Mit dem Verschieben meinte ich das Verschieben der Fensterposition der Widgets.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 12 von 26   « Erste     2101112 131422     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 01:00 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