![]() |
Re: Desktop Widget Engine (v0.64)
Zitat:
Werd mir das für die nächste Version aber vornehmen. |
Re: Desktop Widget Engine (v0.64)
Ich finde dein Programm echt wunderbar und nutze es auch. Nun kam ich gestern auf ein ähnliches Programm und war davon sinnlich begeistert. Dieses Programm nennt sich
![]() |
Re: Desktop Widget Engine (v0.64)
Du weisst ja schon was die andere Sidebar kann...sags doch bitte. Ich komme bei den unübersichtlichen Seiten nicht so ganz zu Potte.
Sherlock |
Re: Desktop Widget Engine (v0.64)
Liste der Anhänge anzeigen (Anzahl: 2)
Na schön, also:
Soll jetzt keine Werbung sein, nur zum Vergleich :-D |
Re: Desktop Widget Engine (v0.64)
Achso ja bei den Icons ist eine License.txt dabei wo drin steht dass du sie frei verwenden darfst ABER ein Verweis auf den Entwickler geben musst. Hast du das?
|
Re: Desktop Widget Engine (v0.64)
Zitat:
Diese "Thoosje Sidebar" ist speziell als Vista-Sidebar-Ersatz gedacht. Wenn ich mich nicht irre ist die sogar beim Vistamizer mit drin. MFG |
Re: Desktop Widget Engine (v0.64)
Zitat:
Aber ich möchte mich mal kurz verteidigen: das Programm heißt ja explizit Thoosje Sidebar :zwinker:. Naja, ist aber keine Ausrede - ich werd mal schauen, was ich von der Liste alles einbauen kann. Vorallem die Punkte "die Gadgets ziehen mit" (ich hab mich immer noch nicht überwinden können, das einzubauen :oops:) und "Ein- und Ausblenden" der SideBar mit Gadgets" find ich sehr gut. Die Schatten find ich persönlich noch nicht so wichtig - und zu den Uhrenskins: man kann ja die bereits vorhandene Uhr leicht erweitern ;-). Zitat:
|
Re: Desktop Widget Engine (v0.65)
Version 0.65 online!
Diesmal hab ich kaum Changes drinnen, es ist also eher eine 0.64a, aber ein paar Sachen sind doch neu: Ich hab ein paar kleine Fehlerchen in der deutschen Sprachdatei behoben. Außerdem hab ich ein paar kleine Übersetzungen verändert. Zudem war in den Optionen die Einträge in Tab "Themes" zu kurz, die hab ich nun länger gemacht. Das erste, was beim Start auffallen sollte ist, dass die Widgets beim Start jetzt einfaden und nicht einfach aufpoppen. Ich hoffe, dass das Fading funktioniert - falls nicht bzw. falls ihr es blöd findet, könnt ihr es auch in den Optionen deaktivieren. Außerdem hab ich mir mal die Thoosje Sidebar angeschaut und muss ehrlich sagen: die ist extrem eingeschränkt: man kann keine neuen Widgets erstellen bzw. bereits vorhandene bearbeiten. Das ist wirklich eine extreme Einschränkung. Aber ich hab schon einen Punkt von der Liste mit eingebaut: Wenn man jetzt die SideBar woanders positioniert, werden die angedockten Widgets (jetzt endlich) mit verschoben. Das wollt ich eigendlich schon viel früher einbauen, jedoch hab ich mich erst jetzt dazu überwinden können. (Download sowie ChangeLog im ersten Post) Grüße Dave |
Re: Desktop Widget Engine (v0.65)
Fade-in funktioniert und sieht schön aus.
SideBar nimmt die Widgets ebenfalls mit, perfekt. Weiter so! Ich hab gestern mal probiert ein Widget für den RSS-Feed von heise online zu basteln, aber leider erfolglos. Mein ambitionierteres Projekt, nämlich eine Börsenticker scheint damit in weite Ferne zu rücken :( Aber ich probiers heute Abend nochmal, XML ist halt für mich noch relativ neu. Sherlock |
Re: Desktop Widget Engine (v0.65)
Zitat:
Zitat:
Zitat:
Also als erstes Frage ich natürlich den RSS-Feed mit einer wgHTTP-Komponente ab:
Delphi-Quellcode:
Im OnDone-Ereigniss lese ich dann den Inhalt aus und lassen ihn mit dem JvSimpleXML parsen:
wgHTTP1.GetURL('http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml');
Delphi-Quellcode:
So, jetzt ist die Funktion "ParseContent" nicht der XML-Parser, sondern ich füge den relevanten Inhalt in ein neues XML-Element ein. Zusätzlich berechne ich noch die Texthöhe von jedem Eintrag in der Funktion.
procedure wgHTTP1Done(Sender: TObject; Content: string; ResponseCode: integer);
var pXML : TJclSimpleXML; begin pXML := pXML.Create; try pXML.LoadFromString(Content); ParseContent(pXML); finally pXML.Free; end; end; Dafür gehe ich in der "ParseContent" - Routine durch alle Einträge durch:
Delphi-Quellcode:
So, wenn jetzt "Item.Name = 'item'" ist, füge ich einen neuen Eintrag in das interne XML-File ein:
for i:=0 to Root.Items.Count-1 do
begin // Unterelement Nummer "i" abrufen Item := Root.Items.Item(i); // das sollte eigendlich nie passieren, aber sicher ist sicher if Item = nil then continue; // in dem RSS-Feed werden zuerst ein paar Zusatzinformationen // mitgesendet. Diese haben alle einen anderen Namen als "item" // Da diese für den Inhalt des Feeds erstmal nicht relevant sind // überspringen wir diese Einträge if Item.Name <> 'item' then continue;
Delphi-Quellcode:
Jetzt berechne ich die Höhe des zukünftigen Eintrags und füge diesen ebenfalls zu "newItem" hinzu.
newItem := XML.Root.Items.Add('data'); // ein neuer Eintrag
newItem.Items.AddS('msg', Item.Items.ItemNamed('title').Value); // die Überschrift des Feed-Items newItem.Items.AddS('url', Item.Items.ItemNamed('link').Value); // der Link des Feed-Items
Delphi-Quellcode:
So, nun stehen im internen XML-File die Daten, die wirklich wichtig sind. Um genau zu sehen, wie die Sachen gespeichert werden, kannst du am Ende der "ParseContent"-Methode vor dem finally folgendes Einfügen:
Rec := Rect(0, 0, tmpBMP.Width - 11, tmpBMP.Height);
tmpBMP.Font.SetName('MS Sans Serif'); tmpBMP.Font.SetSize(8); // imgLogo, da dies eine "Graphic" - Komponente enthällt. // für die "Graphic" - Komponente hab ich die DrawText-Methode // verbessert imgLogo.Graphic.DrawText(tmpBMP, newItem.Items.Value('msg', ''), Rec, DT_LEFT or DT_CALCRECT or DT_WORDBREAK or DT_NOPREFIX, 0, 0); // jetzt hab ich die Höhe des eintrags und speichere sie in das interne XML-File height := Rec.Bottom + 7; // noch etwas Pufferabstand: 7 pixel newItem.Items.AddI('height', height);
Delphi-Quellcode:
(ACHTUNG: die MessageBox wird sehr lang, zum schließen dann einfach "Enter" drücken)
ShowMessage(XML.SaveToString);
Jetzt ist noch die OnMeasureItem-Methode der ListBox interessant. Da ich ja in der ParseContent-Methode die Höhe eines Eintrags berechnet habe, kann ich diesen einfach aus dem internen XML-File auslesen:
Delphi-Quellcode:
Du solltest dir noch das OnDraw-Event anschauen, jedoch ist da nicht viel neues dabei.
procedure wgListBox1MeasureItem(Sender: TObject; Target: TBitmap32; Index: integer; var Height: integer);
var Item: TJclSimpleXMLElem; begin // Eintrag Nummer "index" auslesen Item := XML.Root.Items.Item(index); // Falls dieser Vorhanden ist if Item <> nil then // Die Höhe aus dem Eintrag "height" zurückgeben // 13 ist dabei der Default-Wert, falls "height" nicht vorhanden ist Height := Item.Items.IntValue('height', 13); end; Ich hoffe, ich konnte dir etwas helfen. |
Re: Desktop Widget Engine (v0.66)
Version 0.66 ist online!
Neue Website: ![]() Die erste Version der Website ist jetzt online. Auf der Website könnt ihr eure Widgets und eure PlugIns hochladen und diese natürlich auch Downloaden. Durch die Website hab ich das Download-Prozedere komplett geändert. Im Download-Paket sind jetzt nur noch 2 Widgets vorhanden. Somit muss man sich jetzt nicht mehr Widgets herunterladen, die man garnicht haben will. Sonst gibt es nicht viele Änderungen, ein paar Probleme mit dem Ausfaden hab ich noch behoben. Ach ja, noch was: ich hab im SideBar-Code noch ein Fehler mit [Win]+[D] behoben - falls bei euch die SideBar wieder nicht mehr angezeigt wird - sofort sagen, dann mach ich das wieder rückgängig. Grüße Dave |
Re: Desktop Widget Engine (v0.66)
Zitat:
Ansonsten alles super (nach wie vor :mrgreen:)! Schön, dass du die Vorschläge zu den Icons berücksichtigt hast. |
Re: Desktop Widget Engine (v0.66)
Zitat:
Zitat:
|
Re: Desktop Widget Engine (v0.66)
Gratz zur Website und danke für das heise-widget...muss ichs nimmer machen, ich seh auch gleich was ich falsch gemacht habe, Du hast einfach das Root gleich gelassen und nicht ein anderes genommen.
Am Wochenende schau ich mal nach Börsentickern...mal sehen ob ich das hinbekomme. Sherlock |
Re: Desktop Widget Engine (v0.66)
Also erstmal, ich bin henni aus dem Delphi-Forum.
Zur Thoosje Sidebar: Könnte es sein, das du das Uhrenskin davon abkopiert hast? |
Re: Desktop Widget Engine (v0.66)
Zitat:
Zitat:
Zitat:
![]() |
Re: Desktop Widget Engine (v0.66)
Hi!
Wirklich tolles Programm. Läuft seit gestern dauerhaft bei mir (Autostart) :thumb: Ich hätte noch ein paar Punkte, die mir das Leben erleichtern würden ;):
Liebe Grüße, Chris |
Re: Desktop Widget Engine (v0.66)
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Also im Moment bin ich sehr beschäftigt und komme nicht mehr zum programmieren. Bisher ging ja alles sehr schnell, doch ich muss mich gerade um wichtigere Sachen kümmern. Werd die Vorschläge aber auf keinen Fall vergessen! Wie gesagt, dauert noch etwas Grüße Dave |
Re: Desktop Widget Engine (v0.67)
Ich habe gerade Version 0.67 hochgeladen.
So, ich hab jetzt die Möglichkeit eingebaut, direkt "Sounddateien" in den Widgets speichern zu können und sie auch direkt abspielen zu können. Dafür gibt es jetzt einen neue, ganz simple Komponente: TwgSound. Unterstützt werden alle Soundtypen, mit der die BASS.dll umgehen kann. Zudem speichert jetzt die SideBar, ob sie auf die Maus reagieren soll oder nicht. An der ScriptEngine hat sich jetzt auch einiges getan: sie unterstützt jetzt auch WideString und PChar. Somit kann man jetzt mit strings, UTF8Strings, WideStrings und mit PChars arbeiten - ohne lästige Konvertierungsroutinen - das passiert alles intern per Compiler-Magic. Durch die Benutzung von WideStrings ist es jetzt auch für PlugIns möglich, strings als Funktionsergebniss für eine Funktion anzugeben - dabei muss das Funktionsergebnis WideStrings sein. Ich habe die PlugIn-API dafür aktualisiert und auch ein Beispiel für einer Funktion mit WideString als Funktionsergebniss eingebaut. An der API an sich hat sich nichts geändert - somit sind auch ältere PlugIns weiterhin kompatibel. Im Moment arbeite ich an einem Konzept, wie ich am besten eine Multi-Language-Fähigkeit für die Widgets bereitstellen kann. Dies dauert aber noch etwas. Auf meiner Roadmap bis Version 0.7 steht, dass die Widgets komplett in Unicode laufen sollen - mal schauen, ob ich das schaffe. Den Download-Links gibts im ersten Post oder ![]() ![]() Grüße Dave |
Re: Desktop Widget Engine (v0.67)
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank für das Update!
Im Anhang ist mein kleiner Countdown. Vielleicht gefällt er dir ja und du willst ihn auf deine Seite packen (hab' nur noch nicht herausgefunden, wie man ein Vorschaubild erstellen kann). Liebe Grüße, Chris |
Re: Desktop Widget Engine (v0.67)
Das ist ja mal ganz praktisch :)
Also die Vorschau zu erstellen ist ganz einfach: Widget im Editor öffnen, ausführen und dann unter "Projekt" den untersten Eintrag: "Widget-Screenshot erstellen" wählen. Dann speichern und fertig. Ich hab das für dein Widget schon mal gemacht und auch schon auf die Website hochgeladen :) Vielen Dank für das wirklich gute Widget Grüße Dave |
Re: Desktop Widget Engine (v0.67)
Könnte man denn die TwgSound - Komponente so erweitern, dass damit der Zugriff auf die Dateien auf der Festplatte möglich ist? Das würde eine Möglichkeit ergeben, einen kleinen Musik-Player zu machen.
Mfg, Dbof |
Re: Desktop Widget Engine (v0.67)
Dafür ist der TwgNetworkPlayer gedacht. Der kann Internet-Streams und lokale Dateien wiedergeben ;-). Der Name ist zwar etwas verwirrend, ich gebs ja zu. Am Anfang war er nur dafür gedacht, jedoch hab ich ihn noch erweitert so dass er jetzt lokale Dateien wiedergeben kann (wenn die Sicherheitseinstellungen das erlauben ;-))
|
Re: Desktop Widget Engine (v0.67)
Oh, OK :thumb: Klasse :zwinker:
Gleich mal anschauen... |
Re: Desktop Widget Engine (v0.67)
@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? Sherlock |
Re: Desktop Widget Engine (v0.67)
Zitat:
|
Re: Desktop Widget Engine (v0.67)
Zitat:
WICHTIG Ich habe gerade eine neue Version hochgeladen. Es hat sich leider ein Bug in die Security-Settings eingeschlichen, den ich in der Version jetzt behoben habe. Download-Link ist im ersten Post. Ich hab mich gestern mal hingesetzt und ein Widget für eine ToDo-Liste erstellt. In den Widget können die ToDo-Listen in verschiedene Kategorien sortiert werden. Das Widget kann ![]() |
Re: Desktop Widget Engine (v0.68)
Liste der Anhänge anzeigen (Anzahl: 2)
Ich weiss nicht, ob das schon irgendwo als Wunsch steht, aber ich finde es eigentlich ziemlich cool, wie die Vista-Widgets unterschiedlich aussehen, je nachdem ob sie auf der Sidebar liegen, oder nicht.
Ich nutze die Sidebar, damit ich trotz geöffneter Fenster die Widgets im Blick habe. Und da ist dann zum Beispiel das ToDo-Widget viel zu breit dafür. Sherlock |
Re: Desktop Widget Engine (v0.68)
Zitat:
|
Re: Desktop Widget Engine (v0.68)
Niedrige Prio...ich probier das selber mal...mit der ToDo-Light-Version.
Sherlock |
Re: Desktop Widget Engine (v0.67)
Zitat:
Ja, das mit den Edits ist eine Einschränkung durch die Script-Engine. Aber ich finde, man kann damit einigermaßen leben... :stupid: Chris |
Re: Desktop Widget Engine (v0.69)
Version 0.69 ist online.
Ich habe es nun endlich geschafft, die auf der ![]() 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 ![]() Grüße Dave |
Re: Desktop Widget Engine (v0.69)
Danke für die neuen Funktionen :thumb: :thumb:
Werde bei Gelegenheit die neuen Funktionen ausprobieren und ein Feedback schreiben. |
Re: Desktop Widget Engine (v0.69)
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!" :mrgreen: cu Oliver |
Re: Desktop Widget Engine (v0.69)
Zitat:
Zitat:
Zitat:
|
Re: Desktop Widget Engine (v0.69)
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 :mrgreen: 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 |
Re: Desktop Widget Engine (v0.69)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Desktop Widget Engine (v0.69)
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat:
@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 :mrgreen: - 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 :D Grüße Dave |
Re: Desktop Widget Engine (v0.69)
@Sir Rufo: Wow, echt schön gemacht :thumb:
@littleDave: Danke für deine Antwort, doch ich bekomme es nicht hin... Das ist mein Aufruf beim Klicken auf ein Element: doch weder das:
Delphi-Quellcode:
noch das:
MediaPlayer.OpenURL('C:\testdata.mp3')
Delphi-Quellcode:
oder das
MediaPlayer.OpenURL('C:\WINDOWS\Media\Windows XP-Start.wav')
Delphi-Quellcode:
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.
MediaPlayer.OpenURL('C:\test.m3u')
Dennoch, echt tolles Programm, und habe ich auch immer bei mir :thumb: |
Re: Desktop Widget Engine (v0.69)
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz