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 22 von 26   « Erste     12202122 2324     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
 
#211
  Alt 19. Nov 2008, 16:03
Version 0.7 ist online!

ACHTUNG ACHTUNG:
Widgets, die mit einer früheren Version als 0.7 erstellt wurden, funktionieren NICHT mehr!!!!!

Aufgrund der Umstellung zu Unicode hat sich intern so viel getan, dass ich diesen Schritt gehen musste. Alle bereits auf der Website veröffentlichen Widgets sind bereits mit Version 0.7 kompatiblel.

Wenn ihr ein komplettes Update machen wollt, solltet ihr folgendes tun:
  • Die neue Version herunterladen
  • Programm ausführen und auf "Widget hinzufügen" klicken
  • Dann unten den Knopf Widgets herunterladen auswählen
  • Dann die endsprechenden Widgets auswählen (mehrfachauswahl möglich, Strg+A für alle) und auf öffnen klicken
  • Fertig!

So, nun aber zum eigendlichen Thema: Widgets sind jetzt komplett Unicode-fähig. Dafür habe ich sehr viele Standardfunktionen wie Copy, Length, usw. um eine WideString und um eine UTF8-Variante erweitert. Für die UTF8-Variante steht am Ende der Funktion jeweils ein U, für die WideString-Variante ein W.

Ihr müsst euch keine Sorgen um die hin-und her-Konvertierung machen - das macht der Kompiler alles automatisch. Jedoch solltet ihr wissen, dass eine Zuweisung von einem WideString zu einem String sachen verlohren gehen können (liegt ja an der begrentzen Möglichkeit von string).

Weil die Widgets jetzt Unicode-Fähig sind, können sie jetzt natürlich auch Übersetzt werden. Dafür habe ich einen Übersetzungsmanager eingebaut. Den Quelltext müsst ihr dafür aber auch anpassen.

Um einen String aus der Sprach-Datei zu laden, gebt ihr folgendes ein
Delphi-Quellcode:
var s: string;
begin
  s := Language.Lang('Identifier', 'Default');
end;
'Identifier' ist dabei ein der Name des Strings in der Sprachdatei. 'Default' ist der Wert, der zurückgegeben wird, falls 'Identifier' nicht gefunden wurde. Nichtgefunden Einträge werden automatisch gespeichert.

Wenn ihr jetzt eure Strings mit diesem Ausdruck [Language.Lang(...)] ersetzt habt, führt ihr euer im Editor aus. Dann wird automatisch die erste Sprachdatei erstellt. Dann schließt ihr euer Widget wieder und öffnet im Editor den Übersetzungsmanager (unter "Ansicht"). Dort wählt in dann im Punkt "Sprache" den Punkt "Vom letzen ausführen Importieren" - und schon füllt sich der Editor. Jetzt könnt ihr alle Einträge beliebig bearbeiten.

ACHTUNG: es werden nur die Sprach-Strings übernommen, die bei der Ausführung per Language.Lang() aufgerufen wurden. Falls sich der Ausdurck "Language.Lang" in einem Code-Stück befindet, der nicht erreicht wurde, wird der String nicht übernommen (da er ja nicht vorhanden ist).

Die Umstellung auf Unicode hat sehr viel mit sich gezogen - ich würde ich wirklich empfehlen, mal kurz den ChangeLog zu Version 0.7 durchzulesen.

@Sherlock: Man bist du schnell - ich schreibe gerade, was sich alles verändert hat und schon kommt der nächste Eintrag
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

 
Delphi 10 Seattle Enterprise
 
#212
  Alt 19. Nov 2008, 16:04
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHH HHHHHHHHH .... meine Fische, meine Kuh ....

sie schwimmen ... bzw. sie frisst wieder ... Dr. Compiler hat es wieder geheilt ...
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

 
Delphi 7 Enterprise
 
#213
  Alt 19. Nov 2008, 16:10
Hallo,

hatte mir gestern mal die Version 0.69 runtergeladen und einige Widgets getestet..bei einigen..Wetter..CPU..gabs beim anklicken in der Sidebar..Schutzverletzung. Heute auf die Version 0.7 upgedatet..Fehler iss raus .

Ein Lob fuer die Entwicklung und das Design!
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#214
  Alt 19. Nov 2008, 16:33
So, jetzt hab ich die letzten Sachen erneuert, nun kann ich auch eure Posts eingehen

Zitat von Sherlock:
1a) Aber: Das Benachrichtigungsfenster ist etwas wenig aussagekräftig, da weiss man nicht unbedingt, welche Anwendung denn da "Hallo" sagt.
Ok, werd ich ändern

Zitat von Sherlock:
1b) Eingestellt ist eigentlich, eine automatische Prüfung auf Updates alle 7 Tage. Ich glaub nicht, daß die zufällig genau jetzt rum sind, oder?
Hab ich gerade selber im Quelltext gesehen, da steht leider in <= statt einem >=. Daher wird leider alle 5 Minuten nachgeschaut . Werd ich in der neuen Version beheben. So schlimm ist es jetzt hoffentlich nicht, da man jetzt die automatische Update-Suche ja deaktivieren kann.

Zitat von Sherlock:
c) Die alten Widgets sind noch da, aber wohl unsichtbar, die Listbox mit den installierten Widgets ist mit entsprechend falsch dimensionierten Scrollbars ausgestattet.
Danke für den Hinweis, werd ich mir gleich aufschreiben und in der nächsten Version ändern.

Zitat von Sherlock:
Aber ansonsten lief das Update reibungslos
da bin ich ja froh

Zitat von Sir Rufo:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHH HHHHHHHHH .... meine Fische, meine Kuh ....

sie schwimmen ... bzw. sie frisst wieder ... Dr. Compiler hat es wieder geheilt ...
Für die Umstellung sollte es bei den meisten Widgets reichen, sie neu zu kompilieren. Da es aber bei manchen noch Anpassungen gemacht werden müssen (z.B. bei Umlauten in den Captions), musst ich die Widgets füherer Versionen leider ausschließen. Wie gesagt - einfach im Editor öffnen und neu kompilieren ("Projekt erstellen"). Dann sollten die meisten Sachen behoben sein.

Zitat von Der.Kaktus:
hatte mir gestern mal die Version 0.69 runtergeladen und einige Widgets getestet..bei einigen..Wetter..CPU..gabs beim anklicken in der Sidebar..Schutzverletzung. Heute auf die Version 0.7 upgedatet..Fehler iss raus
Ich hab das bei mir nur einmal festgestellt und dann auch sofort behoben. Aber dass das öfter vorkam -

Zitat von Der.Kaktus:
Ein Lob fuer die Entwicklung und das Design!
Danke für das Lob!!!! Sowas freut einen immer wieder
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

 
Delphi 10 Seattle Enterprise
 
#215
  Alt 19. Nov 2008, 16:35
@littledave:
einen klitzekleinen Änderungswunsch hätte ich da wohl
Wäre es nicht möglich, den Widget-Datei-Browser im Widget-Editor über einen Button im Menü aufzurufen?

Oder habe ich da was übersehen ... ?

cu

Oliver
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#216
  Alt 19. Nov 2008, 16:39
Zitat von Sir Rufo:
@littledave:
einen klitzekleinen Änderungswunsch hätte ich da wohl
Wäre es nicht möglich, den Widget-Datei-Browser im Widget-Editor über einen Button im Menü aufzurufen?

Oder habe ich da was übersehen ... ?

cu

Oliver
Das ist schon länger geplant, jedoch habe ich bei der Unicode-Version sehr Druck machen müssen. Ich wollt ja nicht, dass jetzt massig neue Widgets kommen, die alle nicht kompatibel sind .

Wie gesagt, einen Resource-Explorer für die Widgets ist bereits geplant - jedoch muss das geplante noch umgesetzt werden. Jedoch dauert das wahrscheinlich etwas länger, da ich die nächsten Tage kaum Zeit habe (zwei Vorstellungsgespräche, Fr und Mo). Wenn dann der größte Stress wieder vorbei ist, werd ich mich sicher wieder drann setzen.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

 
Delphi 10 Seattle Enterprise
 
#217
  Alt 19. Nov 2008, 16:43
Der Res-Explorer ist ja im Prinzip schon da ... nur der Umweg z.B. über ein Image ist umständlich ...
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

 
Delphi 7 Enterprise
 
#218
  Alt 19. Nov 2008, 16:48
ups..gerade noch etwas gefunden...Rechte Maustaste auf ein Widget in der Sidebar...bei der Analoguhr! geht das nicht.
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

 
Delphi 2006 Enterprise
 
#219
  Alt 20. Nov 2008, 12:36
Hi!
Hab' noch ein kleines Widget erstellt:
Eine schwarze Analog-Uhr mit Alarm-Funktion

Viel Spaß damit
Chris
Miniaturansicht angehängter Grafiken
alarmclock_455.png  
Angehängte Dateien
Dateityp: zip alarmclock_-_analog_black_103.zip (527,4 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
kaiser1401

 
Delphi 7 Professional
 
#220
  Alt 20. Nov 2008, 14:58
Hi zunächst mal schöne Engine

Was ich mir noch wünschen würde wäre, dass man die Sidebar nicht nur links und rechts, sondern auch horizontal oben und unten ausrichten kann. Ich hätte sie z.b. gerne am unteren rand meines 2. hochkant gedrehten Monitors.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 22 von 26   « Erste     12202122 2324     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 10:45 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