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 7 von 26   « Erste     567 8917     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 jokerfacehro
jokerfacehro

 
Delphi 7 Enterprise
 
#61
  Alt 15. Sep 2008, 20:34
alles klar, werds morgen mal nachtesten obs mit delphi klappt

mit dem timer funzt es, aber sehr krückig.
ich wollte grad die wgTimer2Timer(Sender); von hand aufrufen, da meint er, existiert nicht
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#62
  Alt 16. Sep 2008, 15:55
Die Timer-Funktion kann natürlich nur aufgerufen werden, wenn sie vorher bereits deklariert wurde. Ich versuche gerade die ScriptEngine zu erweitern, so dass man Funktionen zuerst auch als "Forward" deklarieren kann. Wie lange das dauert, weiß ich noch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

 
Delphi 7 Enterprise
 
#63
  Alt 16. Sep 2008, 19:41
hast ja noch en bischen was zu basteln
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#64
  Alt 17. Sep 2008, 02:37
Zitat von jokerfacehro:
hast ja noch en bischen was zu basteln
Auch deswegen ist es ja erst Version 0.32
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#65
  Alt 19. Sep 2008, 16:15
Sodala, Version 0.4 ist jetzt online. Seit dem letzen Release hat sich intern einiges getan.

Zum einen Besitzt jedes Widget einen Security-Layer. Über diesen Layer kann jedem Widget individuell bestimmte Aktionen verboten werden. Z.b. kann man jetzt einzelnen Widgets den Zugang zum Internet verbieten. Per Standard kann jedes Widget grundsätzlich eine Verbindung zum Internet/Netzwerk aufbauen, jedoch wird vor jeder Verbindung ein Dialog angezeigt, ob man das wirklich möchte.

Die Sicherheitseinstellungen können über das Popup-Menü des jeweiligen Widgets eingesehen und bearbeitet werden. Es sind zwar noch nicht all zu viele Einstellungen, aber vielleicht kommen die ja noch

Zusätzlich kann man jetzt global Einstellen, ob überhaupt Zugriff zum Netzwerk/Internet erlaubt sein soll. Zudem kann man jedem Widget individuell sagen, welche Rechte es auf dem Dateisystem hat. Der Zugriff auf das Dateisystem kann auch global deaktiviert werden.

Bisher sind ja noch alle Widgets von mir und enthalten keinen Schad-Code. Jedoch ist das zukünftig bei externen Programmen nicht mehr so sicher - somit hab ich jetzt schon mal diesen Layer eingebaut.

Der Download sowie den ChangeLog findet ihr, wie immer , im ersten Post

Grüße
Dave

PS: @jokerfacehro:
ich hab es noch nicht geschafft, dass man Funktionen als "forward" deklarieren kann. Dauert daher noch etwas
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#66
  Alt 19. Sep 2008, 17:51
Hallo Dave

Du hast eine tolle Arbeit geleistet

Anbei noch einige Bemerkungen & Vorschläge, vor allem was das GUI & Standards betrifft.
  • PopUp Menu der Widgets:
    Neben dem "Close Widget" sollte es vielleicht zusätzlich noch ein Menu "Hide Widget" geben.
    Manchmal möchte man ein Widget nur temporär ausblenden aber nicht ganz entfernen.
  • Fenster "Desktop Widget Engine":
    • Schaue mal z.B in Delphi wie die Menübezeichnungen aussehen.
      -> Wann steht hiner einem Menuitem ein "..." und wann nicht?
      -> Ich würde wie Delphi und die meisten Anwendungen Nomen mit Großbuchstaben anfangen
      (auch im Englischen) Also z.B anstatt "Program settings" -> "Program Settings"
    • Die Bezeichnung "Close Widget" schließt ein Widget nicht nur sondern entfernt es.
      Ich würde darum die Bezeichnung in "Remove Widget" umbenennen.
    • Unter dem Menü "Editor" könntest du noch ein Menüitem "Edit Selected Widget" hinzufügen.
    • Menü "Widgets": Anstatt "Form type" würde ich "Form Style" schreiben. (so wie Delphi)
    • Receive Mouse ist nicht unbedingt verständlich was damit gemeint ist.
      Vielleicht könnte man "Enable Mouse Events" schreiben.
    • Öffnen Dialog Titel: Anstatt "Öffnen" könntest du "Load Theme" als Titel nehmen.
      Analog beim Speichern Dialog.
  • Settings Dialog: "Ok" Button in "OK" Button umbenennen.
  • Widget Editor:
    • Für die Menübezeichnungen gilt gleiches wie schon oben beschrieben.
    • Menü Edit: "UnDo" in die übliche Schreibweise "Undo" umbenennen. Auch "ReDo" -> "Redo"
    • Menü Search: "Search..." in "Find..." umbenennen.
      "Search Next" in "Search Again" umbenennen.
  • Tray Icon PopupMenü: "Show Main Window" resp. "Hide Main Window" sind nicht immer synchron mit
    dem tatsächlichen Status (sichtbar / unsichtbar) des Fensters.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

 
Delphi 7 Enterprise
 
#67
  Alt 19. Sep 2008, 19:18
Zitat:
Tray Icon PopupMenü: "Show Main Window" resp. "Hide Main Window" sind nicht immer synchron mit
dem tatsächlichen Status (sichtbar / unsichtbar) des Fensters.
jop


hab aber noch nicht weiter getestet, hab grad kein bock wegn meiner verletzung muss ich mich schonen :/
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#68
  Alt 19. Sep 2008, 20:37
Zitat von toms:
Hallo Dave

Du hast eine tolle Arbeit geleistet
Danke für dein Feedback, sowas hört man gerne

Zitat von toms:
Anbei noch einige Bemerkungen & Vorschläge, vor allem was das GUI & Standards betrifft.
Die werd ich mir auf jeden Fall zu Herzen nehmen.

Zitat von toms:
PopUp Menu der Widgets:
Neben dem "Close Widget" sollte es vielleicht zusätzlich noch ein Menu "Hide Widget" geben.
Manchmal möchte man ein Widget nur temporär ausblenden aber nicht ganz entfernen.
Das werd ich auf jeden Fall einbauen, mal schauen, wie ich das am beste löse.

Zitat von toms:
Fenster "Desktop Widget Engine":
Schaue mal z.B in Delphi wie die Menübezeichnungen aussehen.
-> Wann steht hiner einem Menuitem ein "..." und wann nicht?
-> Ich würde wie Delphi und die meisten Anwendungen Nomen mit Großbuchstaben anfangen
(auch im Englischen) Also z.B anstatt "Program settings" -> "Program Settings"
Danke für den Hinweis , daran hab ich bisher noch nicht gedacht. Werd die Menüs auf jeden Fall anpassen.

Zitat von toms:
  • Fenster "Desktop Widget Engine":
    • Die Bezeichnung "Close Widget" schließt ein Widget nicht nur sondern entfernt es. Ich würde darum die Bezeichnung in "Remove Widget" umbenennen.
    • Unter dem Menü "Editor" könntest du noch ein Menüitem "Edit Selected Widget" hinzufügen.
    • Menü "Widgets": Anstatt "Form type" würde ich "Form Style" schreiben. (so wie Delphi)
    • Receive Mouse ist nicht unbedingt verständlich was damit gemeint ist.
      Vielleicht könnte man "Enable Mouse Events" schreiben.
    • Öffnen Dialog Titel: Anstatt "Öffnen" könntest du "Load Theme" als Titel nehmen.
      Analog beim Speichern Dialog.
  • Settings Dialog: "Ok" Button in "OK" Button umbenennen.
  • Widget Editor:
    • Für die Menübezeichnungen gilt gleiches wie schon oben beschrieben.
    • Menü Edit: "UnDo" in die übliche Schreibweise "Undo" umbenennen. Auch "ReDo" -> "Redo"
    • Menü Search: "Search..." in "Find..." umbenennen.
      "Search Next" in "Search Again" umbenennen.
Sind alles wunderbare Vorschläge - jetzt hab ich mal ne Liste, die ich abarbeiten kann. Danke dir für deine Mühe - das ist mal wirklich ein extrem konstruktives Feedback. Sorry dass ich nicht auf jeden Punkt eingehe, aber ich denke, es ist so etwas übersichtlicher.

Zitat von toms:
Tray Icon PopupMenü: "Show Main Window" resp. "Hide Main Window" sind nicht immer synchron mit
Das hab ich auch schon beobachtet - jedoch noch nicht behoben - werds aber noch verbessern.
dem tatsächlichen Status (sichtbar / unsichtbar) des Fensters.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#69
  Alt 23. Sep 2008, 20:16
Ich mal wieder, Version 0.41 ist jetzt online.

Ich hab die vielen Vorschläge von toms bereits angepasst - fertig bin ich noch nicht, jedoch hab ich bereits fast alles umgesetzt. Warum ich jetzt schon eine neue Version hochlade hat den Grund, dass ich einen Memory-Leak in der Script-Sprache behoben habe. Dieser Memory-Leak betrifft viele Operationen mit Records. Da diese Sachen relativ häuftig aufgerufen werden können, würden die Systemresourcen schnell in den Keller gehen können. Daher der vorzeitige Release.

Ich hab jetzt auch noch ein neues Widget hinzugefügt: nen Goldfisch - EWeiss' Project fand ich total super - natürlich hab ich vorher per PM um Erlaubniss gefragt.

Da das Packet jetzt jedoch selbst mit 7zip mehr als 3 MB hat, hab ich das Packet aufgesplittet. Das Hauptprogramm gibts jetzt mit 6 Widgets. Zusätzlich gibt es jetzt noch ein weiteres Download-Packet, in dem nur weitere Widgets untergebracht sind. Beide Packete befinden sich im ersten Post (genauso wie der ChangeLog)

Grüße
Dave
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#70
  Alt 23. Sep 2008, 20:31
Hi,

hab ja heir schon länger nichts mehr geschrieben. IMO hat sich das Programm schön entwickelt - Die Widgets und das Haupfenster sehen jetzt noch besser aus, und der Ressourcenverbrauch hat sich auch verbessert (in den letzten Versionen war mir ja noch aufgefallen, wie der Speicherverbracuh mit der Zeit erheblich anstieg).

Leider konnte ich das netzwerktrafficwidget und die überarbeiteten Wetter- und Shputbox-widgets nicht testen, weil sich dein "Firewall"-Dialogfeld nicht wegklicken lässt. Ich klicke auf Allow, aber nichts passiert... (bei Not Allow passiert auch nichts).

Edit: was mir grade noch auffällt: Der Rand des Textes im Firewall-Fenster ist teilweise Transparent. Wird wohl an den verwendeten Graphics32 liegen, weil ich mich an dieses Problem noch von einem eigenen Projekt erinnere.

Edit2: das Programm ließ sich leider nur über den taskmanager beenden. Lag wahrscheinlich an den noch geöffneten "Firewall"-Fenstern (?)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 26   « Erste     567 8917     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:30 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