Entwickler-Ecke

Freeware Projekte - Desktop Widget Engine (v0.72)


littleDave - So 28.09.08 22:19
Titel: Desktop Widget Engine (v0.72)
Hallo :wave:

ich hab mal wieder ein Projekt, welches ich hier veröffentlichen will: Eine ...
[url=http://widgets.godlikesoft.de]user defined image[/url]
Desktop Widget Engine


Downloads


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
[url=http://widgets.godlikesoft.de/program/screenshots/Desktop001.jpg]user defined image[/url] [url=http://widgets.godlikesoft.de/program/screenshots/Desktop002.jpg]user defined image[/url] [url=http://widgets.godlikesoft.de/program/screenshots/Desktop006.jpg]user defined image[/url]
Der Editor
[url=http://widgets.godlikesoft.de/program/screenshots/Desktop003.jpg]user defined image[/url] [url=http://widgets.godlikesoft.de/program/screenshots/Desktop004.jpg]user defined image[/url]
Die Widget-Auswahl
[url=http://widgets.godlikesoft.de/program/screenshots/Desktop005.jpg]user defined image[/url]

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 [http://www.delphipraxis.net/topic136654.html]. 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 [http://widgets.godlikesoft.de]. 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


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 [http://widgets.godlikesoft.de]. 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) [http://www.godlikesoft.de/downloads1/WidgetEngine-APIReference.zip]

Noch ein paar Hinweise



littleDave - Mo 29.09.08 16:04

Sorry das ich mich nochmal melde, aber ich hab gerade eine neue Version hochgeladen, da es in der alten Version einen Fehler gab, der den Editor fast unbenutzbar machte. Die Entf-Taste wurde als Hotkey vom Hauptfenster angesehen und funktionierte so im Editor nicht. Das ist jetzt behoben.

Da man an dem Screenshot vor mir noch nicht so gut erkennen kann, was das Programm eigendlich macht, hab ich nochmal nen Screenshot erstellt. Ich denke, der ist etwas aussagekräftiger:

Im Hintergrund ist das Desktophintergrund und darauf befinden sich die einzelnen Widgets. Ich denke, dass ist doch etwas aussagekräftiger als die Widgets an sich.


littleDave - Sa 04.10.08 20:17

Schade, dass sich bisher keiner dazu überwunden hat, was zu schreiben :(. Ist das Programm so schlecht/so gut, dass nichts mehr zu retten ist/dass nichts mehr verändert werden muss? :nixweiss:
Liegt es an der Beschreibung? Zu lang, zu kurz, man weiß trotzdem nicht so genau, worum es geht?

Naja, an die, die es vielleicht doch interessiert, ich hab gerade eine neue Version hochgeladen. Diesmal sind noch weitere Widgets hinzugekommen und die Komponenten-Palette hab ich wiedermal erweitert.

Der komplette ChangeLog sowie der Download ist im 1. Post zu finden
Grüße
Dave


Hidden - Sa 04.10.08 20:24

Hi,

Also ich muss sagen: Mit der Beschreibung im Hauptpost konnte ich nciht so viel anfangen. Mit dem Screenshot schon mehr =)

Ich lad's mal runter. Sieht schonmal vielversprechend aus ;)

E: Wow, mein Computer funktioniert ohne Energie :lol: zumindest laut dem Batterieanzeige-Wicked ;) Nene, ist für die Laptopbatterie. Dachte irgendwie für's bios^^.

mfG,

E: *Tusch* proudly presents:
Clipboard Manager Version 1.55
[*]Jetzt mit EE-Farben, viel schöner als der alte Farbton :)


littleDave - Sa 04.10.08 20:51

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hi,

Also ich muss sagen: Mit der Beschreibung im Hauptpost konnte ich nciht so viel anfangen. Mit dem Screenshot schon mehr =)

Hm, mal schauen ob mir noch ne bessere Beschreibung einfällt ...

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Wow, mein Computer funktioniert ohne Energie :lol: zumindest laut dem Batterieanzeige-Wicked ;) Nene, ist für die Laptopbatterie. Dachte irgendwie für's bios

Leider konnte ich die Batterieanzeige noch nicht ausgiebig testen, da ich keinen Laptop habe. Da bräuchte ich mal Feedback :zwinker:


Hidden - Sa 04.10.08 20:59

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Leider konnte ich die Batterieanzeige noch nicht ausgiebig testen, da ich keinen Laptop habe. Da bräuchte ich mal Feedback :zwinker:

Hmm.. Mal weiterempfehlen *g*

Erster Eindruck: :zustimm:

Zwei kleine Vorschläge:

E: Ach so, eventuell noch ein Menüpunkt, um sich in Autostart einzutragen.

mfG,


littleDave - Sa 04.10.08 21:17

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Leider konnte ich die Batterieanzeige noch nicht ausgiebig testen, da ich keinen Laptop habe. Da bräuchte ich mal Feedback :zwinker:

Hmm.. Mal weiterempfehlen *g*

Ja, sehr gut :)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Erster Eindruck: :zustimm:

Wunderbar *freu*

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
  • Wickets standardmäßig wie normale Fenster in der Größe verstellbar machen

Naja, an sich gehen tut das schon, doch warum? Das sind ja keine normalen Fenster, zudem würde man beim Verstellen der Größe nur einzelne Bereiche der Widgets "abschneiden".

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
  • unbedingt ein Wicket für die SB hier, eventuell da dann auch die Suche gleich mit integrieren.

Gibt es denn einen XML-Feed für die Shoutbox? In der DP gibt es einen, hier hab ich aber noch keinen gefunden.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Ach so, eventuell noch ein Menüpunkt, um sich in Autostart einzutragen.

Den gibts doch schon: unter Settings -> Program Settings... (bzw. Strg+F12 im Hauptprogramm)

PS: die einzelnen Progrämmchen nennen sich Widgets, nicht Wickets :zwinker:


Hidden - Sa 04.10.08 21:28

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
PS: die einzelnen Progrämmchen nennen sich Widgets, nicht Wickets :zwinker:

Und siehe da: Das oberflächliche Lesen hat nur Vorteile: Man ist schneller fertig, man hat immer 'was zu lachen.. :lol:

Also irgendwo habe ich doch schonmal ein Programm gesehen, das die SB drin hatte.. sollte das etwa mit Indy-Komponenten aus dem Seitenquelltext extrahiert sein :?:

Also Größenverstellbarkeit wäre für mich so ziemlich Pflichtprogramm, da sich die widgets gut in die Desktop-Umgebung integrieren lassen müssen.

Könnte man nicht das Bild neu Skalieren, dann? Kann ich mir ehrlichgesagt nicht vorstellen, dass das unmöglich ist :zwinker:

mfG,


littleDave - Sa 04.10.08 22:00

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Also irgendwo habe ich doch schonmal ein Programm gesehen, das die SB drin hatte.. sollte das etwa mit Indy-Komponenten aus dem Seitenquelltext extrahiert sein :?:

Klar, möglich ist das schon. Kannst ja selbst ein Widget erstellen, dafür ist der Editor ja da. Ich bin nicht so der Fan von Quelltext auslesen.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Also Größenverstellbarkeit wäre für mich so ziemlich Pflichtprogramm, da sich die widgets gut in die Desktop-Umgebung integrieren lassen müssen.

Könnte man nicht das Bild neu Skalieren, dann? Kann ich mir ehrlichgesagt nicht vorstellen, dass das unmöglich ist :zwinker:

Ich ich kenne keine andere Widget Engine, wo sowas geht.
Im Prinzip ist das schon möglich, jedoch ist es ein etwas größerer Aufwand. Zum einen haben die Widgets keinen Rahmen und die Widgets sind auch nicht über einen einfaches "Transparent-Color" realisiert - sonst hätt ich keine "Halbtransparenz". Also müsst ich extra ein kleines Fenster erstellen, in dem man das jeweilige Widget verkleinern/vergrößern kann. Das bedeutet extrem viel Aufwand und die meisten würden das wahscheinlich nicht benutzen.
Das mit dem Bild im nachhinein verkleinern/vergrößern ist wirklich das geringste Problem, auch von Realisierung der Skalierung her (MouseEvent-Koordinaten umrechnen usw) ist auch nur ein round(x*ScaleX), jedoch das Drummherum ist für extrem aufwendig und den Kosten-Nutzen-Faktor find ich jetzt noch nicht so dolle.

Ich werds mir mal aufschreiben, vielleicht fällt mir noch eine gute Möglichkeit ein.


Hidden - Sa 04.10.08 22:30

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Ich werds mir mal aufschreiben, vielleicht fällt mir noch eine gute Möglichkeit ein.

Gut, danke :)

E: Wollte dich damit nicht auffordern, das über den Seitenquelltext zu machen ;) Hab' nur laut gedacht.

E2: Ich hab' mal Gegooglet. Gibt es eine bestimmte Kategorie von Widges, mit denen dein Programm kompatibel ist?

Was dürfen Widges alles mit deinem Scipt? Sind ja Open Source, insofern droht da weniger Gefahr. Aber könnte ein Widge(ist das die Einzahl?^^), dem ich einmal Zugriff aufs Internet gestattet habe, beliebige Systemdaten versenden oder sogar als Keylogger fungieren?

Eine Funktion, die ich nicht gefunden habe, ist, wenn ich einem Widge einmal generell Zugriff auf's Internet gestattet habe, ihm diese Rechte wieder wegzunehmen ;)

E3: Ich habe jetzt die Beschreibung im Hauptpost gelesen und auf den zweiten Blick ist es doch etwas verständlicher ;)

mfG,


littleDave - So 05.10.08 12:39

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E2: Ich hab' mal Gegooglet. Gibt es eine bestimmte Kategorie von Widges, mit denen dein Programm kompatibel ist?

Also die anderen sind nicht zu meiner Kompatibel, da diese Java als Script-Sprache benutzen. Somit müsst ich noch einen Java-Compiler sowie einen Java-Interpretor bastelt.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Was dürfen Widges alles mit deinem Scipt? Sind ja Open Source, insofern droht da weniger Gefahr. Aber könnte ein Widge(ist das die Einzahl?^^), dem ich einmal Zugriff aufs Internet gestattet habe, beliebige Systemdaten versenden oder sogar als Keylogger fungieren?

Also mit Hilfe der ScriptEngine sind die Widgets an sich schon extrem eingeschränkt. Man kann nicht einfach mal "uses Windows" hinschreiben und dann hoffen, dass alle Windows-API-Befehle funktionieren. Somit ist eine Art KeyLogger schon mal extrem schwer (ich glaub es ist überhaupt nicht möglich) zu realisieren. Zudem kann man jedem Widget individuell Sachen erlauben/verbieten. Wie du das machst, erklär ich dir im nächsten Quote ;-)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Eine Funktion, die ich nicht gefunden habe, ist, wenn ich einem Widge einmal generell Zugriff auf's Internet gestattet habe, ihm diese Rechte wieder wegzunehmen ;)

Das ist nicht schwer. Wenn du das Popup-Menü des Widgets öffnest (Widget mit der linken Maustaste auswählen, Strg + Rechte Maustaste drückst und dann im Popup-Menü den Eintrag Security Settings auswählst, kannst du die Rechte des ausgewählten Widgets einsehen/ändern.


Hidden - So 05.10.08 13:08

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Das ist nicht schwer. Wenn du das Popup-Menü des Widgets öffnest (Widget mit der linken Maustaste auswählen, Strg + Rechte Maustaste drückst und dann im Popup-Menü den Eintrag Security Settings auswählst, kannst du die Rechte des ausgewählten Widgets einsehen/ändern.

Entweder ich bin blind oder es gibt 'ne neue Version ;) Ich schau' mal..

Aso, wer lesen kann ist klar im Vorteil :) Hatte im Menü des Hauptfensters den Widget-Eintrag genommen^^ Sollte aber imho dort auch nochmal möglich sein :zwinker:

mfG,


Fighter#1 - So 05.10.08 13:15

Hallo =)
mir gefällt das ganze schonmal ziemlich gut =) !!! *g*
Aber ich hab ein riesen Problem! =(
Wenn ich die Widgets auf immer im Hintergrund hab und dann mit [Windowstaste] + [D] zum Desktop komme verschwinden die Widgets.
Das tun sie nicht wenn ich die Widgets auf immer im Vordergrund setze... aber ich möchte sie als Desktop Widgets zu nutzen =/
Wie soll ich das machen?


littleDave - So 05.10.08 13:27

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Aso, wer lesen kann ist klar im Vorteil :) Hatte im Menü des Hauptfensters den Widget-Eintrag genommen^^ Sollte aber imho dort auch nochmal möglich sein :zwinker:

Ich werd das Menü im Hauptprogramm noch mit dem Popup-Menü synchronisieren


user profile iconFighter#1 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo =)
mir gefällt das ganze schonmal ziemlich gut =) !!! *g*

Das freut mich :)

user profile iconFighter#1 hat folgendes geschrieben Zum zitierten Posting springen:
Aber ich hab ein riesen Problem! =(
Wenn ich die Widgets auf immer im Hintergrund hab und dann mit [Windowstaste] + [D] zum Desktop komme verschwinden die Widgets.
Das tun sie nicht wenn ich die Widgets auf immer im Vordergrund setze... aber ich möchte sie als Desktop Widgets zu nutzen =/
Wie soll ich das machen?

Ich bin ständig am suchen und machen: mit den SetWindowsLong-Konstanten rumspielen oder auf bestimmte Events reagieren, jedoch hab ich es noch nicht geschafft :(. Ich werd aber weitersuchen, irgendwie muss das möglich sein ;-)


Hidden - So 05.10.08 13:39

Hi,

@Fighter#1: Kann ich bestätigen. Ist aber auch praktisch(*g*), dann kann man sich glatt den ganzen Desktop vollpflastern und trotzdem noch per Win_D ales normal erreichen :mrgreen: (Scherz, wird wohl niemand machen ;))

PS: Könntest du das Syntax-Highlighting in deiner IDE einstellbar zu machen? Das finde ich immer sehr schön, wenn man z.B. einstellen kann, was für die IDE Keywords sind(if, while, ..) und, welche Farbe und welchen Style(bolt, kursiv, ..) Chars, Strings, Schlüsselwörter, Kommentare, etc. haben. Sry, wenn cih Blindfisch mal wider übersehen haben sollte, dass es dieses Feature schon wieder bereits gibt XD

mfG,


littleDave - So 05.10.08 13:55

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
PS: Könntest du das Syntax-Highlighting in deiner IDE einstellbar zu machen? Das finde ich immer sehr schön, wenn man z.B. einstellen kann, was für die IDE Keywords sind(if, while, ..) und, welche Farbe und welchen Style(bolt, kursiv, ..) Chars, Strings, Schlüsselwörter, Kommentare, etc. haben. Sry, wenn cih Blindfisch mal wider übersehen haben sollte, dass es dieses Feature schon wieder bereits gibt XD

Nein, dass hast du diesmal nicht übersehen, da es dieses Feature noch nicht gibt ;-). Das wird noch kommen, ganz sicher. Jedoch weiß ich noch nicht, wann.


Hidden - So 05.10.08 14:56

wie machst du das eig. mit dem Startup-Delay?

E: Wäre schön, wenn bei neuen Wickeds erst einmal ein Standard-Hintergrund da wäre :) Soweit ich das jetzt sehen kann könnte das ja über "Stretched" bei jeder Größe funktionieren.

E2: Hast du mal 'neDoku zu deinen Klassen, z.B. TwgEdit? Ich hab' vieles probiert:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure edClpiboardChanged(Sender: TObject);
begin
  //(Sender as TwgEdit).CopyToClipboard;  //"end" expected, but found ( instead
  //TwgEdit(Sender).CopyToClipboard;  //unknown Identifer "TwgEdit"
  edClipboard.CopyToClipboard;
end;

procedure tmrRefreshEditTimer(Sender: TObject);
begin
  //edClipboard.SelectAll;  //unknown class procedure
  //edClipboard.Clear;  //unknown class procedure
  //edClipboard.Text := '';  //"end" expected, but found := instead
  //eig. soll ja nur danach der Clipboardtext im Edit stehen.. Aber so wird er immer wieder aneinandergereiht :( (statt 'test' 'testtesttestttest..')
  edClipboard.PasteFromClipboard;
end;


E3: Du compillierst die Datei ja, oder(zumindest kann sie weder vom Borland Developer Studio noch von HxD sinnvoll gelesen werden..)?

mfG,


littleDave - So 05.10.08 18:58

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
wie machst du das eig. mit dem Startup-Delay?

Mit Sleep(x) :zwinker:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Wäre schön, wenn bei neuen Wickeds erst einmal ein Standard-Hintergrund da wäre :) Soweit ich das jetzt sehen kann könnte das ja über "Stretched" bei jeder Größe funktionieren.

:lol: schon wieder Wickeds, diesmal aber mit d
Nen Standard-Hintergrund wäre fatal, weil dadurch nicht mehr genügend Flexibilität vorhanden wäre. Ich denke, dass man so jetzt schon relativ schnell ein Widget erstellen kann

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E2: Hast du mal 'neDoku zu deinen Klassen, z.B. TwgEdit? Ich hab' vieles probiert:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure edClpiboardChanged(Sender: TObject);
begin
  //(Sender as TwgEdit).CopyToClipboard;  //"end" expected, but found ( instead
  //TwgEdit(Sender).CopyToClipboard;  //unknown Identifer "TwgEdit"
  edClipboard.CopyToClipboard;
end;

procedure tmrRefreshEditTimer(Sender: TObject);
begin
  //edClipboard.SelectAll;  //unknown class procedure
  //edClipboard.Clear;  //unknown class procedure
  //edClipboard.Text := '';  //"end" expected, but found := instead
  //eig. soll ja nur danach der Clipboardtext im Edit stehen.. Aber so wird er immer wieder aneinandergereiht :( (statt 'test' 'testtesttestttest..')
  edClipboard.PasteFromClipboard;
end;

Ne Doku ist geplant, jedoch schaff ich so viel nicht in kurzer Zeit. Meine Script-Engine kann zwar schon viel, jedoch so Sachen wie (Sender as Tirgendwas) funktioniert noch nicht. Das ganze geht am besten über eine lokale Variable:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure edClpiboardChanged(Sender: TObject);
var aEdit : TwgEdit;
begin
  aEdit := Sender;
  aEdit.CopyToClipboard;
end;

Properties kann die ScriptEngine leider noch nicht, deswegen wird edClipboard.Text := ''; nicht funktionieren. Das geht nur über den Umweg edClipboard.SetText('');

Was aber immer eine große Hilfe ist: die CodeCompletion: Strg + Leertaste.
Noch kurz wegen den Properties: wenn ich in der ScriptEngine eine Property zur Verfügung stelle, dann ist sie immer so deklariert:

Delphi-Quelltext
1:
2:
3:
4:
 // diese Property
property [Name]: [Typ]  read F[Name] write F[Name]
// wird in der ScriptEngine zu
function [Name]: [Typ];   procedure Set[Name](value: [Typ]);


user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E3: Du compillierst die Datei ja, oder(zumindest kann sie weder vom Borland Developer Studio noch von HxD sinnvoll gelesen werden..)?

Jep, der Quelltext wird von meinem selbst geschriebenen Compiler in ByteCode übersetzt, der dann von meinem Interpretor ausgeführt wird.


Hidden - So 05.10.08 19:51

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
:lol: schon wieder Wickeds, diesmal aber mit d

Ich habe Talent ;)

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Nen Standard-Hintergrund wäre fatal, weil dadurch nicht mehr genügend Flexibilität vorhanden wäre.

Aber man könnte dieses Standard-Bild doch jederzeit ersetzen :?:

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
CodeCompletion: Strg + Leertaste

Aso :shock: hab' mich schon gewundert, warum die nach'm Punkt nicht automatisch aufgeht^^[/quote]

E: Habe jetzt die Übersicht durchgelesen.. Gibt es etwa kein SelectAll? :shock:
E2: Kann es etwa sein, dass dieses Edit noch ncihtmal markiert werden kann?^^ also manuell mit der Maus hab' ich's nicht geschafft. Das wär' ja aber ein dicker Hund -.-

E3: So, fertig :) Da das hier so gut in den Thread passt, will ich hier mal gleich mein neustes Projekt vorstellen, ein Widget zur Steuerung des Clipboard-Inhalts(ausschließlich als String).

Das ganze ist Open Source und basiert auf der "Desktop Widget Engine" von littleDave, vielen Dank :D

Ich habe erstmal noch keine Bilder reingeladen, werde ich bei Gelegenheit nachholen :)

E4: Sollte es wirklich keine andere Möglichkeit geben, an das Clipboard zu kommen als mit einem TwgEdit :?:

E5: Upload entfernt, unten die neue Version angehängt.

mfG,


littleDave - So 05.10.08 22:09

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Habe jetzt die Übersicht durchgelesen.. Gibt es etwa kein SelectAll? :shock:
E2: Kann es etwa sein, dass dieses Edit noch ncihtmal markiert werden kann?^^ also manuell mit der Maus hab' ich's nicht geschafft. Das wär' ja aber ein dicker Hund -.-

Leider nein, mein Edit unterstützt selektierten Text noch nicht. Aber das Nachrüsten ist für mich nicht schwer. Steht schon auf meiner Liste

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E3: So, fertig :) Da das hier so gut in den Thread passt, will ich hier mal gleich mein neustes Projekt vorstellen, ein Widget zur Steuerung des Clipboard-Inhalts(ausschließlich als String).
Das ganze ist Open Source und basiert auf der "Desktop Widget Engine" von littleDave, vielen Dank :D
Ich habe erstmal noch keine Bilder reingeladen, werde ich bei Gelegenheit nachholen :)

Ui *freu* das erste externe Widget *g*. Hab ich gleich mal runtergeladen und angeschaut - funktioniert prima, doch nen Hintergrund wäre doch relativ wünschenswert. Wenn du mir es erlaubst, erweitere ich das Widget von dir noch.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E4: Sollte es wirklich keine andere Möglichkeit geben, an das Clipboard zu kommen als mit einem TwgEdit :?:

Nein, leider gibt es noch keine andere Möglichkeit an das Clipboard razukommen. Mal schauen, was sich da noch machen lässt ;-)

@All:
Ich habe gerade eine neue Version hochgeladen.

Es gibt jetzt einen neuen Widget-Form-Style: Desktop-Icon. Wenn dies aktiviert ist, ist das Widget immer im Hintergrund, minimiert sich bei einem Druck auf Win + D nicht. Somit wäre schon mal Fighters Problem behoben ;-)

Download sowie der komplette ChangeLog befindet sich im ersten Post
Grüße
Dave


Hidden - So 05.10.08 22:40

Hi,

Und auch ich habe eine neue Version online :lol: Damit man im Edit navigieren kann, hatte ich den Refresh-Timer ausgeschaltet, während es den Fokus hat.

Manchmal hat das Edit allerdings nicht registriert, dass es den Fokus verloren hatte und somit konnte man kopieren, ohne, dass es aktualisiert wurde.

Habe das jetzt gelöst, indem ich zunächst mit einem unsichtbaren Edit den Clipboardtext bekomme und dann mit dem aktuellen vergleiche. Das Edit wird dann nur bei Änderungen neu beschrieben.

Bei Eingaben ins Edit kopiere ich direkt auch in meinen Clipboardvergleich, somit passiert nichts und es kann problemlos getippt werden(Sonst würde durch .SetText(''); .PasteFromClipboard die SelPos verloren gehen).

ToDo: Hint des Edits mit clipboard-Format(.bmp, ..) füllen. Mal schauen, ob ich irgendwie ans Format als String komme..

E: Die Labels Clear und Freeze lassen sich nicht richtig anklicken. Dort wären dann Images gut, wenn sich das nicht ändern lässt.

E2: Der Timer kann vielleicht noch 'n Tacken vertragen ;)

E3: Neue Version: HandPoint bei den Labels, Timer von 3000 auf 500. Jetzt lad' ich mal deine neue Version :)

E4:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du mir es erlaubst, erweitere ich das Widget von dir noch.

Jop. Lad' dir aber vorher die neue version runter, sonst entsteht ein Baum statt einer Kette :lol: Kannst es auch ruhig dann ins Standard-Set packen

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Nein, leider gibt es noch keine andere Möglichkeit an das Clipboard razukommen. Mal schauen, was sich da noch machen lässt ;-)


Falls du erst Suchen Müsstest: Unit ClipBrd, Methode Clipboard.AsText;

E6: Ich vermisse ehrlichgesagt RichEdit, bzw. zumindest Memo stark. Wäre das ein sehr großer Aufwand, das hinzuzufügen?

E7: Anhang entfernt.

mfG,


Hidden - Mo 06.10.08 20:46

Hi,

Ich nehme mal eher einen Push in Anspruch, ehe du jetzt noch weiter dran schreibst: Ich hatte heute eine Idee und habe das ganze neu aufgesetzt. Es sind nun mehrere Clipboard-Plätze(10) verfügbar. Damit entfällt auch der Freeze-Button.

E: Die Konstanten crDafault und crHandPoint fehlen übrigens ;)

Kannst du nochmal erläutern, warum ein Standardhintergrund die Flexibilität reduzieren würde? Ich meinte ausschließlich, dass sich zu Beginn auf der Form ein Image befindet, in das ein neutraler, halbtransparenter Hintergrund geladen ist. Den könnte man dann ja auch entfernen oder einen anderen reinladen.

Btw: Könntest du es einrichten, dass man von Websites auch Bilder und nicht nur Strings bekommen kann? Ich würde gerne so eine Art Newspaper-Sammel-Widget schreiben, wo ich auch immer den neusten xkcd [http://xkcd.com/] platzieren möchte.

E2: Source entfernt, interessiert nach genauerer Betrachtung doch nicht(:lol:). Und ist ja außerdem beim Download dabei.

mfG,


littleDave - Di 07.10.08 01:17

Sorry erstmal für die späte Antwort, hab im Moment viel zu tun

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Falls du erst Suchen Müsstest: Unit ClipBrd, Methode Clipboard.AsText;

Das ist ja mal nen Service :). In der nächsten Version wird die Unit ClipBrd zusammen mit dem Clipboard-Objekt verfügbar sein.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E6: Ich vermisse ehrlichgesagt RichEdit, bzw. zumindest Memo stark. Wäre das ein sehr großer Aufwand, das hinzuzufügen?

Ja, das ist leider sehr schwer, da ich die - genau wie mein Edit oder meine ComboBox - komplett selbst erstellen muss. Die Methode, die ich benutze, unterstützt leider keine Controls, also auch keine Buttons und auch keine Memos. Aber ich schau mal, vielleicht kann ich mit TWinControl.PaintTo mal etwas rumspielen. Werd aber schauen müssen.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Die Konstanten crDafault und crHandPoint fehlen übrigens ;)

Danke für den Hinweis - wird in der nächsten Version hinzugefügt sein.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich nehme mal eher einen Push in Anspruch, ehe du jetzt noch weiter dran schreibst: Ich hatte heute eine Idee und habe das ganze neu aufgesetzt. Es sind nun mehrere Clipboard-Plätze(10) verfügbar. Damit entfällt auch der Freeze-Button.

Das ist kein Problem, ich hab mich sowieso noch nicht hingesetzt - hab im Moment sehr viel zu tun. Kannst dir also ruhig Zeit lassen ;-)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du nochmal erläutern, warum ein Standardhintergrund die Flexibilität reduzieren würde? Ich meinte ausschließlich, dass sich zu Beginn auf der Form ein Image befindet, in das ein neutraler, halbtransparenter Hintergrund geladen ist. Den könnte man dann ja auch entfernen oder einen anderen reinladen.

Na gut, langsam hast du mich wirklich überzeugt. Ich werd mal schauen, wie ich das am besten mache. Ob es in der nächsten Version schon so sein wird, kann ich leider nicht garantieren.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Btw: Könntest du es einrichten, dass man von Websites auch Bilder und nicht nur Strings bekommen kann? Ich würde gerne so eine Art Newspaper-Sammel-Widget schreiben, wo ich auch immer den neusten xkcd [http://xkcd.com/] platzieren möchte.

Hab ich gerade gemacht, nur etwas anders. Ich hab das TwgGraphic-Objekt um zwei Funktionen erweitert: LoadFromString und LoadFromStream. Die erste Variante wird genau das richtige für dich sein. In der nächsten Version kannst du dann ganz einfach ein Bild in das Widget mit folgendem Code und einem TwgHTTP laden und anzeigen. Die beiden neuen Methoden sind Funktionen, die False zurückliefern, falls es nicht funktioniert hat.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure wgImage1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  wgHTTP1.GetURL('http://imgs.xkcd.com/comics/tfd_nataliedee.png');
end;

procedure wgHTTP1Done(Sender: TObject; Content: string; ResponseCode: integer);
begin
  wgImage1.Graphic.LoadFromString(Content);
  mainform.RenderForm;
end;


Ich werd mich mit der neuen Version extrem beeilen, damit du schnell neue Widgets machen kannst ;-)


Hidden - Di 07.10.08 10:55

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Ich werd mich mit der neuen Version extrem beeilen, damit du schnell neue Widgets machen kannst ;-)

Danke :!: ;)

E: Könntest du es so einrichten, dass ein externes Programm über Die Widget Engine einem Widget Daten senden kann?

Damit ließen sich relativ einfach Widgets für bestimmte Zwecke erstellen(Schachprogramm sendet Bildausschnitt, empfängt retour Mauseingaben relativ zum Bild(22%x, 33%y).

Plotter empfängt Eingabe, sendet Bild des geplotteten Graphen. Widget wird größer und zeigt Graphen an).

Dazu könntest du eine fertige Unit zur Widget-Kommunikation bereitstellen, sodass es unglaublich einfach würde, eine Widget-Schnittstelle zu einem z.B. im Tray-icon befindlichen Programm aufzubauen.

Nachdem sich das Programm beim Widget registriert hat, müsste es dem Widget auch möglich sein, ihm Nachrichten zu senden(damit das Programm nicht ständig nachfragen muss, ob geklickt wurde, etc.).

mfG,


littleDave - Di 07.10.08 14:36

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Könntest du es so einrichten, dass ein externes Programm über Die Widget Engine einem Widget Daten senden kann?
  • Unter angabe des Widget-Namens
  • Das Widget sollte antworten können(Nachricht verarbeitet, ein Integer-Wert oder auch ein String).
  • Einfach eine zusätzliche wg-Komponente mit Prozedur zur Verarbeitung
  • Wenn das Widget nicht geladen ist oder keine Komponente zur Verarbeitung von Nachrichten hat, sollte deine Engine eine Antwort im Sinne von DoesNoExist zurückgeben.


Damit ließen sich relativ einfach Widgets für bestimmte Zwecke erstellen(Schachprogramm sendet Bildausschnitt, empfängt retour Mauseingaben relativ zum Bild(22%x, 33%y).

Plotter empfängt Eingabe, sendet Bild des geplotteten Graphen. Widget wird größer und zeigt Graphen an).

Dazu könntest du eine fertige Unit zur Widget-Kommunikation bereitstellen, sodass es unglaublich einfach würde, eine Widget-Schnittstelle zu einem z.B. im Tray-icon befindlichen Programm aufzubauen.

Nachdem sich das Programm beim Widget registriert hat, müsste es dem Widget auch möglich sein, ihm Nachrichten zu senden(damit das Programm nicht ständig nachfragen muss, ob geklickt wurde, etc.).

mfG,

Wie stellst du dir den die Kommunikation vor? Über Named Pipes oder über Messages? Oder über ein PlugIn-System? Eigendlich ist die Kommunikationsrichtung, die du vorschlägst, nicht die richtige (würd ich sagen). Wenn dann sollte sich das Widget zu einem Programm verbinden und nicht das Programm zu einem Widget. Also so ganz versteh ich das bei dir noch nicht.

Ich hab mir schon eine Art PlugIn-System ausgedacht, jedoch bin ich mir über die Implementierung noch nicht sicher. Ich wollt es so machen, dass ein DLL-PlugIn einfach eine eigene Unit zur Verfügung stellt, in der dann alle Funktionen der Script-Engine zur Verfügung gestellt werden. Jedoch steht dies System noch auf keinem Papier sondern bisher nur in meinem Kopf.


Hidden - Di 07.10.08 17:44

Hi,

Programm -> Widget dachte ich, weil die Widgets ja proforma nicht die nötigen Rechte haben, um Widget -> Programm umzusetzen.

Eigentlich hatte ich schon etwas im Messages-Style im Kopf. Aber, wenn du schon ein Konzept hast..

E: Verdammt, dein Wetter-Widget muss weg :P zerstört völlig meine ignorant-positive Einstellung :(

mfG,


littleDave - Di 07.10.08 18:38

Ich hab gerade die Version 0.56 hochgeladen. Diesmal nicht mehr als Anhang, da die 2-MB-Grenze geknackt wurde

Downloadlink sowie der ChangeLog befindet sich im ersten Post


Hidden - Do 09.10.08 18:47

Hi,

Könntest du das getestete Projekt in einem getrennten Thread laufen lassen? Ich hab' z.B. eine Endlosscheife mit ShowMessage und bekomme den Fokus nicht auf die Engine zurück, um abzuspeichern :(

Ist man ja von anderen IDEs gewöhnt, dass man per Windowstaste auf die IDE zurückkommt, um das Programm zurückzusetzen.

mfG,


littleDave - Do 09.10.08 19:10

Ich kenn das Problem und ich Arbeite gerade an einer Lösung. Ich hab in der nächsten Version schon sowas eingebaut, jedoch funktioniert das mit MessageBoxes dann auch noch nicht perfekt (aber es funktioniert dann).

Über die Sache mit den Threads mach ich mir schon länger gedanken, bei der Realisierung hapers bei mir noch. Aber in der nächsten Version wird Strg+F2 jedenfalls schon besser funktionieren.


Hidden - Do 09.10.08 21:47

Hi,

Ich glaube wir denken ständig das gleiche :lol:

Wieauchimmer, ich habe beim Clipboardmanager noch eingestellt, dass mehrere Sachen am Stück kopiert werden können und automatisch ins nächste Clipboard geschrieben wird. Nun muss das Clipboard beim Kopieren mehrerer Sachen nichtmehr manuell gewechselt werden.

Wird später noch an- und abschaltbar gemacht. Dazu muss ich mich allerdings erstmal mit deiner Speicherung auseinandersetzen(scheint ja irgendwie Registry-Artig zu sein :)).

Aktuelle Version 1.40 in meinem ersten Post [http://www.delphi-forum.de/viewtopic.php?p=526917#526917] :D

E:Kannst du Exceptions in Widgets im Engine-Hauptfenster loggen?

mfG,


littleDave - Fr 10.10.08 00:00

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich glaube wir denken ständig das gleiche :lol:

Jep, manchmal ist das so ;-)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Wieauchimmer, ich habe beim Clipboardmanager noch eingestellt, dass mehrere Sachen am Stück kopiert werden können und automatisch ins nächste Clipboard geschrieben wird. Nun muss das Clipboard beim Kopieren mehrerer Sachen nichtmehr manuell gewechselt werden.

Ich finds super, dass du an dem Widget weiter machst. Mir ist gerade was aufgefallen: bevor du das Widget speicherst und es hochlädst, solltest du immer im Editor unter Project den Punkt Create Project wählen. Sonst wird dein aktueller Code nicht in den ByteCode kompiliert. Er wird zwar beim Drücken auf Run erstellt, jedoch speichert diese Funktion den ByteCode nicht in der Datei - das macht der Menüpunkt. Hab ich ganz vergessen zu erwähnen :oops:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Wird später noch an- und abschaltbar gemacht. Dazu muss ich mich allerdings erstmal mit deiner Speicherung auseinandersetzen(scheint ja irgendwie Registry-Artig zu sein :)).

Das Speichern wird über eine Datenbank geregelt. Du kannst dabei Tabellen, Spalten und Einträge erstellen. Am besten schaust du dir mal beispielhaft die Funktionen procedure LoadLocalID; und procedure SaveLocalID; im Wetter-Widget an. Dort kannst du mal den einfachen Aufbau sehen.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E:Kannst du Exceptions in Widgets im Engine-Hauptfenster loggen?

Kann ich machen, ist kein Problem. Muss dafür nur ein Logfenster erstellen ;-). Der Rest ist ja schon eingebaut. ;-)


Version 0.57 ist jetzt bereit für euren Download.

Die größte Neuerung ist, dass man jetzt im Editor mehrere Units erstellen und benutzen kann. Somit kann man nun seinen Code besser sortieren. Außerdem ist das ein wichtiger Schritt für den Einbau von mehreren Forms.

Der komplette ChangeLog sowie der Download-Link befindet sich im ersten Post [http://www.delphi-forum.de/viewtopic.php?p=525743#525743].

Grüße
David


Hidden - Fr 10.10.08 14:35

Hi,

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Mir ist gerade was aufgefallen: bevor du das Widget speicherst und es hochlädst, solltest du immer im Editor unter Project den Punkt Create Project wählen. Sonst wird dein aktueller Code nicht in den ByteCode kompiliert. Er wird zwar beim Drücken auf Run erstellt, jedoch speichert diese Funktion den ByteCode nicht in der Datei - das macht der Menüpunkt.

Habe ich auch gestern noch bemerkt wäre heute mein erster Edit gewesen. Wird denn jetzt der Byte-Code abgespeichert?

Die compillierte Version 1.4 ist dann jetzt online.

E: Ich habe gerade ein neues projekt erstellt. Kann es sein, dass der Design-Teil fehlt :?: Ich komme jedenfalls überhaupt nicht rein und der Reiter unten fehlt :(

E2: Über den Proxy-Server werden alle Widget-Anfragen ins Internet geleitet? Also sind z.B. Anfragen an Google "gefahrlos"?^^

mfG,


littleDave - Fr 10.10.08 21:19

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Habe ich auch gestern noch bemerkt wäre heute mein erster Edit gewesen. Wird denn jetzt der Byte-Code abgespeichert?

Jep, Projekt erstellen und dann speichern. Dann wird der aktuelle ByteCode gespeichert

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Ich habe gerade ein neues projekt erstellt. Kann es sein, dass der Design-Teil fehlt :?: Ich komme jedenfalls überhaupt nicht rein und der Reiter unten fehlt :(

Oh, danke für den Hinweis. Das ist ein Bug, den ich nicht bemerkt habe. Hm, hilft es denn was, ein neues Widget zu erstellen, dann speichern, Editor schließen und dann nochmal das Widget in einem neuen Editor öffnen? Ich komm diese Woche nicht mehr dazu, das zu beheben, daher kann ich nur hoffen, dass es so funktioniert :oops:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E2: Über den Proxy-Server werden alle Widget-Anfragen ins Internet geleitet? Also sind z.B. Anfragen an Google "gefahrlos"?^^

Jep, es werden dann alle Verbindungen über den Proxy geleitet. Jedenfalls für alle Protokolle, die einen Proxy unterstützen. Jedoch hab ich noch kein Protokoll eingebaut, welches keinen Proxy unterstützen ;-)


Hidden - Fr 10.10.08 22:09

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Jep, Projekt erstellen und dann speichern. Dann wird der aktuelle ByteCode gespeichert

Meinte, jetzt automatisch beim Abspeichern auch der Bytecode neu generiert wird.

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Hilft es denn was, ein neues Widget zu erstellen, dann speichern, Editor schließen und dann nochmal das Widget in einem neuen Editor öffnen?

Nein. Ich lade einfach mal hier den alten Editor hoch, falls du nichtmehr dazu kommst.

E: Version 1.5 in meinem Ersten Post. Zwei Bugfixes
E2: Geht wieder, habe die Stable-Version entfernt.

mfG,


littleDave - Mo 13.10.08 02:43

Erstmal sorry das es solange gedauert hat mit dem Update - war nicht daheim und konnte somit den Bug nicht beheben.

Nun hab ich aber endlich einen neuen Version hochgeladen, mit der das Problem mit dem deaktivierten Formulardesigner bei neuen Widgets nicht mehr auftreten sollte.

Grüße
Dave

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Meinte, jetzt automatisch beim Abspeichern auch der Bytecode neu generiert wird.

Nein, beim speichern wird der ByteCode nicht neu generiert. Nur beim klick auf Create Project


Hidden - Mo 13.10.08 05:27

Hi,

Ich habe jetzt live über Skype ein paar Mal den ersten Eindruck deines Programms beobachten können. Und ich muss sagen: Wenn das Programm nicht aus dem AutoStart gestartet wird, sollte es nicht direkt ins TrayIcon verschwinden.

Habe kurz überlegt und man könnte das eventuell über GetTickCount < X regeln.

E: Könntest du das Hauptprogramm seperat zum Download anbieten und für die Widgets immer posten, wenn sich etwas verändert hat? Ich muss meine kleinen Änderungen an den Widgetsjedes Mal komplett neu machen :(

mfG,


littleDave - Mo 13.10.08 13:55

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe jetzt live über Skype ein paar Mal den ersten Eindruck deines Programms beobachten können. Und ich muss sagen: Wenn das Programm nicht aus dem AutoStart gestartet wird, sollte es nicht direkt ins TrayIcon verschwinden.

Hm, dafür hab ich doch den Startparameter -normal mit eingebaut. Damit startet das Programm ganz normal und nicht im TNA. Aber vielleicht sollte ich noch eine Option in den Programmeinstellungen hinzufügen, mit der man einstellen kann, ob das Programm im TNA oder normal gestartet werden soll. Diese Option wird standardmäßig auf "normal starten" gesetzt und kann dann von jedem eingestellt werden. Zusätzlich wird es dann noch eine Option für den Autostart geben, die das Programm "zwingt", minimiert zu starten. Wäre das eine Lösung, die ok wäre?

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Habe kurz überlegt und man könnte das eventuell über GetTickCount < X regeln.

Das würd ich eher über einen weiteren Startparameter machen, also z.B. -autostart. Außerdem ist das eine nicht so gute Idee, denn ich glaub wenn man sich als Benutzer abmeldet und später wieder anmeldet, wird GetTickCount nicht zurückgesetzt.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Könntest du das Hauptprogramm seperat zum Download anbieten und für die Widgets immer posten, wenn sich etwas verändert hat? Ich muss meine kleinen Änderungen an den Widgetsjedes Mal komplett neu machen :(

Also das Programm noch extra ohne Widgets anzubieten ist möglich, jedoch als Zusatzdownload - dann ein paar Widgets sollten beim ersten Download schon mit dabei sein ;-)


Hidden - Mo 13.10.08 19:11

Hi,

Zu Punkt eins: Also beim ersten Start auf einem unberührten Rechner verschwindet die Engine direkt ohne Widgets ins Tray. Unerfahrene waren merklich verwirrt.

Demnach würde ich sagen beim AStart kanns drekt ins Tray, beim manuellen sollte dann Startparameter -normal übergeben werden. ließe sich das realisieren?

E: Köntest du es so einrichten, dass ein FormStyle\AlwaysOnTop beim Testlauf(F9) auch wirklich über anderen Fenstern bleibt? Im Moment rutscht das Widget in den Hintergrund, sobald das Engine-Fenster den Fokus verliert.

mfG,


littleDave - Di 14.10.08 11:29

Nun hat es auch Version 0.58 ins Netz geschafft :D - Download (wie immer) im ersten Post
langsam gehen mir die "Neue Version"-Sprüche aus

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Zu Punkt eins: Also beim ersten Start auf einem unberührten Rechner verschwindet die Engine direkt ohne Widgets ins Tray. Unerfahrene waren merklich verwirrt.

Demnach würde ich sagen beim AStart kanns drekt ins Tray, beim manuellen sollte dann Startparameter -normal übergeben werden. ließe sich das realisieren?

Ok, ich hab mir das "Starten" nochmal angeschaut und jetzt auch geändert. Ob das Programm jetzt minimiert oder normal startet kann man jetzt in den Einstellungen einstellen. Die Standardeinstellung ist dabei "Normal". Der Autostart hat zusätzlich noch eine weitere Einstellung, mit dem man dies speziell für den Autostart einstellen kann

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Köntest du es so einrichten, dass ein FormStyle\AlwaysOnTop beim Testlauf(F9) auch wirklich über anderen Fenstern bleibt? Im Moment rutscht das Widget in den Hintergrund, sobald das Engine-Fenster den Fokus verliert.

Ok, das hab ich nun auch geändert.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Könntest du das Hauptprogramm seperat zum Download anbieten und für die Widgets immer posten, wenn sich etwas verändert hat? Ich muss meine kleinen Änderungen an den Widgetsjedes Mal komplett neu machen :(

So, hab jetzt extra für dich noch ein Download-Paket gemacht, in dem NUR das Programm ohne ein Widget drinnen ist


Hidden - Di 14.10.08 12:47

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
So, hab jetzt extra für dich noch ein Download-Paket gemacht, in dem NUR das Programm ohne ein Widget drinnen ist
Danke, du bist der Beste :D


passiv - Di 14.10.08 14:54

*räusper* bug gefunden: meine batterie-anzeige stimmt definitif nicht ... denn so lange hält mein akku sicherlich nicht ;)

technische daten des lappis:
glaub alles andere is komplett irrelevant

dann noch: ich versuch grad die spiegel-rss auf [url]derStandard.at[/url] umzuschreiben, aber es hapert mit sonderzeichen, glaub ich. bin aber beim durchschauen noch nicht soweit, dass ich die textausgabe gefunden hätte ... naja, meld dann obs geht.

aber sonst: wow, das sieht cool aus und ist eigentlich voll einfach zu verstehen. wenn man delphi kann halt :roll: .


Hidden - Di 14.10.08 14:59

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
aber sonst: wow, das sieht cool aus und ist eigentlich voll einfach zu verstehen. wenn man delphi kann halt :roll: .
Finde auch: viel zu wenig Resonanz in diesem Thread :!: Super Sache, das Ganze :)

Und *Tata* Premiere: erster Screenshot [http://www.delphi-forum.de/download.php?id=9771] eines anderen Programms mit Widgets drauf :lol:

mfG,


littleDave - Di 14.10.08 16:18

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
*räusper* bug gefunden: meine batterie-anzeige stimmt definitif nicht ... denn so lange hält mein akku sicherlich nicht ;)

Danke für den Bug-Report. Da ich kein Laptop habe, kann ich die Batterieanzeige nicht wirklich testen. Ich hab gerade mal den Quelltext der Batterieanzeige verändert und im Anhang ne Testversion hochgeladen. Wäre sehr nett von dir, wenn du die mal testen könntest

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
dann noch: ich versuch grad die spiegel-rss auf [url]derStandard.at[/url] umzuschreiben, aber es hapert mit sonderzeichen, glaub ich. bin aber beim durchschauen noch nicht soweit, dass ich die textausgabe gefunden hätte ... naja, meld dann obs geht.

Ich versuch bis Version 0.7 die komplette Engine auf Unicode umzustellen - ich hoffe das ich das schaffe. Bis dahin wird es wahrscheinlich noch das ein oder andere Problem mit Sonderzeichen geben.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
aber sonst: wow, das sieht cool aus und ist eigentlich voll einfach zu verstehen. wenn man delphi kann halt :roll: .

Danke, das freut mich :).

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Finde auch: viel zu wenig Resonanz in diesem Thread :!: Super Sache, das Ganze :)

Würd mich auch über mehr Feedback freuen, aber wenn sonst keiner will kann ich auch nicht viel machen :zwinker:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Und *Tata* Premiere: erster Screenshot [http://www.delphi-forum.de/download.php?id=9771] eines anderen Programms mit Widgets drauf :lol:

:lol:


Fighter#1 - Di 14.10.08 19:17

Hi,
also die neue Version ist SUPER! =)
Ich benutze dieses Programm auf jeden Fall und werde es auch weiterhin benutzen =)
Richtig schön *G*
Is eins der wenigen dekstop widget Programme die bei Win+D nicht versagen *g*
supi =) thx!
und ja, was soll man sagn, die kleine IDE is supi =)
denk ich schreib bald nen Mail Client =) hehe *g*

Echt gut gemacht!


littleDave - Di 14.10.08 20:19

user profile iconFighter#1 hat folgendes geschrieben Zum zitierten Posting springen:
Hi,
also die neue Version ist SUPER! =)
Ich benutze dieses Programm auf jeden Fall und werde es auch weiterhin benutzen =)
Richtig schön *G*

Vielen dank für die Blumen *freu*

user profile iconFighter#1 hat folgendes geschrieben Zum zitierten Posting springen:
Is eins der wenigen dekstop widget Programme die bei Win+D nicht versagen *g*
supi =) thx!

Seid dem ich es eingebaut habe, find ich diese Option auch extrem gut - Win+D kann ruhig kommen :zwinker:

user profile iconFighter#1 hat folgendes geschrieben Zum zitierten Posting springen:
und ja, was soll man sagn, die kleine IDE is supi =)
denk ich schreib bald nen Mail Client =) hehe *g*

Dann dann - happy coding ;-)


Kroko - Di 14.10.08 21:14

Klasse Programm!

2 Probleme
(a) der Fisch hat ein Problem mit 2 Monitoren, einfach mal testen *wenn möglich*
(b) wie stellt man den Radiosender ein ? ?


littleDave - Di 14.10.08 21:32

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
Klasse Programm!

Kann mich da nur wiederholen: vielen Dank :)

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(a) der Fisch hat ein Problem mit 2 Monitoren, einfach mal testen *wenn möglich*

Kann ich leider nicht testen, da ich nur einen Monitor habe. Aber ich werd den Quelltext mal anpassen, vielleicht funktionierts ja ;-)

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(b) wie stellt man den Radiosender ein ? ?

Das ist leider (noch) nicht so einfach möglich. Im Moment nur über den Widget-Quelltext (den du ja bearbeiten kannst). Sobald die Widgets mehrere Forms unterstützen, werd ich eine Radio-Sender-Suche mit einbauen. Jedoch brauch ich dafür noch etwas, da ich bei der Implementierung in die Widget-Scripts noch Probleme habe. Ich versuch es aber bis Version 0.6 geschafft zu haben.


Hidden - Di 14.10.08 21:46

Hi,

Um die Frage zu beantworten(ich hab' das primär mal generell verstanden: den, nicht einen neuen): Widget-Optionsmenü. Dann dort Widget\Set Station.

Per Defqault wird das Menü mit Strg+Rechtsklick geöffnet. Ich hab' das für mich unter Settings auf einen einfachen Rechtsklick umgestellt ;)

mfG,


passiv - Di 14.10.08 23:17

das ist jetzt das neue nebst dem alten. links der neue. und 2 bilder, weil ich entdeckt hab, dass sich die zahlen nicht ändern ... seltsam. aber ich geh jetzt ins bett :roll:


littleDave - Mi 15.10.08 22:01

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
das ist jetzt das neue nebst dem alten. links der neue. und 2 bilder, weil ich entdeckt hab, dass sich die zahlen nicht ändern ... seltsam. aber ich geh jetzt ins bett :roll:

Die Zahlen sind so hoch, da die von Windows zurückgegebene Restlaufzeit gleich $FFFFFFFF ist, was soviel bedeutet wie: Restlaufzeit konnte nicht bestimmt werden. Das Problem liegt jetzt in der ScriptEngine, die mit dem cardinal falsch umgeht. In der aktuellen Version hoffe ich, dass dies jetzt nicht mehr vorkommt.

Version 0.59 ist nun Verfügbar!

Diesmal hat sich extrem viel intern geändert. Wie man am ChangeLog im ersten Post sehen kann, hab ich ziemlich viele Fehler, die mit der Script-Engine zusammenhängen, ausgebessert. Jedoch ist es bei einer ScriptEngine schwer, alle Möglichkeiten zu testen. Falls euch irgendwas ausfällt (eine If-Abfrage gibt False zurück, obwohl sie True sein sollte oder sowas), dann schickt mir das zusammen mit dem Problem-Quelltext - dann hab ich die Möglichkeit das noch weiter auszubessern.

Da ich nun eine etwas veränderte Script-Engine eingebaut habe, ist es sinnvoll, dass ihr eure eigenen Widgets nochmal neu kompiliert und abspeichert. Dies hab ich bereits bei allen mitgelieferten Widgets gemacht. Der alte kompilierte ByteCode funktioniert auch weiterhin so wie gehabt, da ich den Interpretor nicht verändert habe.

Auch die Anzeige der aktiven Widgets im Hauptfenster hab ich überarbeitet. Sie schaut nun etwas schicker aus und enthällt nun auch den Autor des Widgets.

Der komplette ChangeLog sowie die Download-Links sind im ersten Post zu finden.
Grüße
Dave


passiv - Do 16.10.08 08:27

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
In der aktuellen Version hoffe ich, dass dies jetzt nicht mehr vorkommt.
naja, die beiden versionen sind sich jetzt zumindest mit den zahlen einig. aber es kommt trotzdem nichts verständliches raus ...
weiters ist mir erst gestern abend aufgefallen, dass, wenn strom angesteckt ist, sollte die anzeige (glaub ich) auf grün umstellen, was sie nicht tut.

und hier noch eine besonders knifflige aufgabe: die widgets könnten sich gegenseitig andocken. das wär noch was :P .
und weils so schön ist: wieso machst du bei der retro-digi-clock pro ziffer 2 images? reicht da nicht, die ganze zahl (1,2,3,4,...) in ein png zu speichern und dann in ein image zu laden?

mfg
Passiv


littleDave - Do 16.10.08 14:51

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
In der aktuellen Version hoffe ich, dass dies jetzt nicht mehr vorkommt.
naja, die beiden versionen sind sich jetzt zumindest mit den zahlen einig. aber es kommt trotzdem nichts verständliches raus ...
weiters ist mir erst gestern abend aufgefallen, dass, wenn strom angesteckt ist, sollte die anzeige (glaub ich) auf grün umstellen, was sie nicht tut.

Also die Anzeige wird nur alle 60 Sekunden refreshed, vielleicht hilft es was, wenn du im Editor den Timer auswählst und im Intervall einfach mal 1000 eingibst.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
und hier noch eine besonders knifflige aufgabe: die widgets könnten sich gegenseitig andocken. das wär noch was :P .

Naja, so knifflig ist die Sache dann auch wieder nicht (:mrgreen:), jedoch wollt ich das eigendlich nicht so machen wegen dem Handling. Wenn das Widget die ganze Zeit beim Verschieben irgendwo hängen bleibt, wäre das sicher nicht so dolle. Ich kann es ja mal testweise bei mir einbauen und schauen, ob angebracht ist bzw. ob sich dadurch das Handling verbessert. Wenn nicht, kann ich den Code ja wieder auskommentieren.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
und weils so schön ist: wieso machst du bei der retro-digi-clock pro ziffer 2 images? reicht da nicht, die ganze zahl (1,2,3,4,...) in ein png zu speichern und dann in ein image zu laden?

Das hatte ich am Anfang auch schon, jedoch ist das gesammte PNG für eine Ziffer größer als die Summe der beiden Einzelteile. Das Widget hatte damals eine Größe von 43 KB, im Moment sind es 19 KB.


passiv - Do 16.10.08 15:27

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
In der aktuellen Version hoffe ich, dass dies jetzt nicht mehr vorkommt.
naja, die beiden versionen sind sich jetzt zumindest mit den zahlen einig. aber es kommt trotzdem nichts verständliches raus ...
weiters ist mir erst gestern abend aufgefallen, dass, wenn strom angesteckt ist, sollte die anzeige (glaub ich) auf grün umstellen, was sie nicht tut.

Also die Anzeige wird nur alle 60 Sekunden refreshed, vielleicht hilft es was, wenn du im Editor den Timer auswählst und im Intervall einfach mal 1000 eingibst.
nene, falsch verstanden: er stellt eh um, und zeigt an, dass er aufgeladen wird, nur die farbe der "prozentanzeige" wechselt nicht von gelb auf grün. dh auch, dass er, wenn er leer ist, bei rot anfängt und dann gelb und dann (wenn er voll ist) grün wird. ich hab mir aber die bilder angesehen und schließe daraus, dass, wenn strom angesteckt ist, auf jeden fall grün sein sollte ...
mir ist grad was eingefallen: meine stromanzeige in der taskleiste zeigt auch keine restzeit an, aber zb acer-notebooks schon. und das bei gleichem bs. kann das daran liegen, dass die hardware das einfach nicht liefert?

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Naja, so knifflig ist die Sache dann auch wieder nicht (:mrgreen:), jedoch wollt ich das eigendlich nicht so machen wegen dem Handling. Wenn das Widget die ganze Zeit beim Verschieben irgendwo hängen bleibt, wäre das sicher nicht so dolle. Ich kann es ja mal testweise bei mir einbauen und schauen, ob angebracht ist bzw. ob sich dadurch das Handling verbessert. Wenn nicht, kann ich den Code ja wieder auskommentieren.
naja, so voll ist der desktop is ja nicht so voll, dass man da nicht mehr vorankommt. ggf kannst es ja als eine checkbox in den einstellungen den user entscheiden lasse :wink: . und der [url=http://www.rainlendar.net]rainlendar[/url] machts auch so.

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Das hatte ich am Anfang auch schon, jedoch ist das gesammte PNG für eine Ziffer größer als die Summe der beiden Einzelteile. Das Widget hatte damals eine Größe von 43 KB, im Moment sind es 19 KB.
also das versteh ich jetzt nicht ... :roll:

mfg
Passiv


littleDave - Do 16.10.08 15:43

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
In der aktuellen Version hoffe ich, dass dies jetzt nicht mehr vorkommt.
naja, die beiden versionen sind sich jetzt zumindest mit den zahlen einig. aber es kommt trotzdem nichts verständliches raus ...
weiters ist mir erst gestern abend aufgefallen, dass, wenn strom angesteckt ist, sollte die anzeige (glaub ich) auf grün umstellen, was sie nicht tut.

Also die Anzeige wird nur alle 60 Sekunden refreshed, vielleicht hilft es was, wenn du im Editor den Timer auswählst und im Intervall einfach mal 1000 eingibst.
nene, falsch verstanden: er stellt eh um, und zeigt an, dass er aufgeladen wird, nur die farbe der "prozentanzeige" wechselt nicht von gelb auf grün. dh auch, dass er, wenn er leer ist, bei rot anfängt und dann gelb und dann (wenn er voll ist) grün wird. ich hab mir aber die bilder angesehen und schließe daraus, dass, wenn strom angesteckt ist, auf jeden fall grün sein sollte ...
mir ist grad was eingefallen: meine stromanzeige in der taskleiste zeigt auch keine restzeit an, aber zb acer-notebooks schon. und das bei gleichem bs. kann das daran liegen, dass die hardware das einfach nicht liefert?

Also wenn der Wert "SecondsRemaing" gleich $FFFFFFFF ist, dann gibt es keine Informationen über die Restzeit. Ob das jetzt von der Hardware/vom Treiber oder von Windows so übergeben wird, weiß ich nicht - ich kann ja nur die Sachen auslesen, die mir Windows übergibt.
Das mit den Farben werd ich mir mal anschauen

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Naja, so knifflig ist die Sache dann auch wieder nicht (:mrgreen:), jedoch wollt ich das eigendlich nicht so machen wegen dem Handling. Wenn das Widget die ganze Zeit beim Verschieben irgendwo hängen bleibt, wäre das sicher nicht so dolle. Ich kann es ja mal testweise bei mir einbauen und schauen, ob angebracht ist bzw. ob sich dadurch das Handling verbessert. Wenn nicht, kann ich den Code ja wieder auskommentieren.
naja, so voll ist der desktop is ja nicht so voll, dass man da nicht mehr vorankommt. ggf kannst es ja als eine checkbox in den einstellungen den user entscheiden lasse :wink: . und der [url=http://www.rainlendar.net]rainlendar[/url] machts auch so.

Ich werds wie gesagt mal einbauen. Eine Zusatzoption in den Einstellungen ist natürlich doch eine weitere gute Möglichkeit. Jedoch arbeite ich gerade an einer anderen Ecke, daher weiß ich nicht, wie lange ich dafür brauche

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Das hatte ich am Anfang auch schon, jedoch ist das gesammte PNG für eine Ziffer größer als die Summe der beiden Einzelteile. Das Widget hatte damals eine Größe von 43 KB, im Moment sind es 19 KB.
also das versteh ich jetzt nicht ... :roll:

Irgendwie waren da meine Finger langsamer als der Kopf :roll:. Ich meinte: Ich habe die Ziffer 1, die besteht aus zwei PNGs. Die beiden PNGs haben jeweils ca. 0.7 KB. Wenn ich jetzt die beiden PNGs in ein größeres PNG zusammenbringe, hat das resultierende PNG eine Größe von ca. 4 KB. Somit verdoppelt sich die Dateigröße, was natürlich nicht gerade toll ist.


Hidden - Do 16.10.08 18:05

Hi,

Mir wurde folgende Frage gestellt. Ist relativ grenzwertig, da es nicht direkt mit der Engine zu tun hat, sondern eher mit den betreffenden Messangern. Geht ja aber dabei auch um Realisierbarkeit von Programmkommunikation.

Insofern: "kann ich aus Skype, MSN und ICQ auch ein Widget machen?".

MSN kenne ich nicht. ICQ sollte gehen, wenn man sich tiefer damit beschäftigt. Aber Skype geht wohl ausschließlich über das Skype-Fenster(was ja lediglich Sinn hätte, wenn dadurch das interface transparenter wird).

mfG,


littleDave - Do 16.10.08 20:13

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hi,

Mir wurde folgende Frage gestellt. Ist relativ grenzwertig, da es nicht direkt mit der Engine zu tun hat, sondern eher mit den betreffenden Messangern. Geht ja aber dabei auch um Realisierbarkeit von Programmkommunikation.

Insofern: "kann ich aus Skype, MSN und ICQ auch ein Widget machen?".

MSN kenne ich nicht. ICQ sollte gehen, wenn man sich tiefer damit beschäftigt. Aber Skype geht wohl ausschließlich über das Skype-Fenster(was ja lediglich Sinn hätte, wenn dadurch das interface transparenter wird).

mfG,

Also bisher kann man aus einem Widget heraus nicht mit anderen Programmen kommunizieren. Daher kann man auch nicht auf ICQ zugreifen. Natürlich könnte ich für alles eine Komponente schreiben, die den Zugriff als Wrapper zur Verfügung stellt - doch das wäre nicht so ganz der Sinn der Sache und zudem noch extrems unflexibel

Woran ich bereits Arbeite ist ein PlugIn-System. Dabei wird es einfach so sein: Das Programm sucht in einem Ordner nach PlugIns. Wenn eins gefunden wurde, fragt das Programm nach Quelltext. Das Plugin überträgt dann den Quelltext des Headers. Im Header sind dann alle Funktionen, die das PlugIn zur Verfügung stellt, drinnen. Der Header ist dabei eine ganz normale Pascal-Datei. Das Programm compiliert dann die Unit und stellt dann die Funktionen der Script-Engine zur Verfügung. Das klingt jetzt nicht sehr einfach, aber das ist es aber ;-).

Hier mal ein Beispiel: Also, ein PlugIn soll jetzt einfach nur MessageBoxen anzeigen. Somit schickt das DLL jetzt folgenden Quelltext an das Hauptprogramm:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
unit MyPlugIn;

procedure ShowMessage(aMsg: string); external;
function  InputQuery(aQuery: stringvar Target: string): boolean; external;

begin end.


Jetzt kann man in den Widgets einfach den Quelltext benutzen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
program MainForm;

uses
  { ... bla bla bla ... }, MyPlugIn;

procedure IrgendWas;
begin
  if 2 > 1 then
     ShowMessage('Das ist ein Test');
end;

function WasLos: string;
begin
  if not InputQuery('Hihi', result) then
     ShowMessage('Wirklich?');
end;


Bevor das Widget jetzt ausgeführt wird, fragt das Programm das PlugIn, wo sich denn die eigendliche Funktion zu "MessageBox" befindet. Das PlugIn übergibt dann den Pointer der Funktion an das Hauptprogramm. Beim Aufruf von "ShowMessage" wird dann die Funktion im PlugIn ausgeführt.

Sobald dann das alles funktioniert, kann man die Widgets mit Hilfe der PlugIns beliebig erweitern. Mann kann dann z.B. ICQ oder MSN den Widgets zur Verfügung stellen.


Kroko - Do 16.10.08 20:52

(a) Spitzenteil, nach wie vor,
(b) der Fisch funzt jetzt
(c) hat schon jemand eigene Widget, vielleicht stellt man sie als Download hier mit rein!
(d) die Scroll-Balken in Select Widget sollte man mal überarbeiten!


Hidden - Do 16.10.08 21:00

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
[vieles, das sehr vielversprechend klingt]
Das klingt doch schonmal spitze :D Ich glaube ich programmiere bald mehr Widget language als Pascal :mrgreen:

@(c): Schau' mal in meinem ersten Post [http://www.delphi-forum.de/viewtopic.php?t=86878#526917] ;)

*Entwurf anleg mit dem Link drin* Nochmal tipp' ich den nicht :mrgreen:

mfG,


Boldar - Do 16.10.08 21:13

?? Hat der Doppelpost irgendeinen SInn oder war das ein versehen??

Ich verfolge dieses Thema nun schon lange und muss sagen: sehr schönes Programm!!


Fabian E. - Do 16.10.08 21:54

Ich habs gerade auch mal ausprobiert und ich muss sagen, ich bin begeistert :)
Deine Sidebar klappt jetzt besser als die von Vista :beer:
Batterieanzeige funktioniert bei mir prima ;)


Hidden - Do 16.10.08 22:00

Hi,

Ich hab' gerade ein Script umgeschrieben und ein neues Widget kreiert, basiert aber noch auf dem alten. Und jetzt seh' ich gerad', dass es kein Speichern unter gibt :(

Wenn ich das Widget beende(läuft), wird der Source zurückgesetzt. Sieht so aus, als könnte ich meine Änderungen nur als String rauskopieren und später wieder einfügen..

PS: @Boldar: Danke für den Hinweis =) Hatte den Edit-Button mit dem Quote-Button verwechelt, sry :)

mfG,


littleDave - Do 16.10.08 22:38

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(a) Spitzenteil, nach wie vor,

Das freut mich :)
user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(b) der Fisch funzt jetzt

Endlich *puh* - geschafft :)
user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(c) hat schon jemand eigene Widget, vielleicht stellt man sie als Download hier mit rein!

Bisher hat nur user profile iconHidden eins gemacht.
user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(d) die Scroll-Balken in Select Widget sollte man mal überarbeiten!

Was stimmt denn bei der nicht? Hab mich doch so sehr bemüht - vorallem mit dem sche** TScrollbar.PageSize.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
[vieles, das sehr vielversprechend klingt]
Das klingt doch schonmal spitze :D Ich glaube ich programmiere bald mehr Widget language als Pascal :mrgreen:

:mrgreen:

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Ich habs gerade auch mal ausprobiert und ich muss sagen, ich bin begeistert :)
Deine Sidebar klappt jetzt besser als die von Vista :beer:
Batterieanzeige funktioniert bei mir prima ;)

:dance2: :dance2: :party: Danke für das Lob - sowas motiviert so enorm :) - *große Klappe := True;* und was MS kann, kann ich schon lange :mrgreen: *große Klappe := False*

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab' gerade ein Script umgeschrieben und ein neues Widget kreiert, basiert aber noch auf dem alten. Und jetzt seh' ich gerad', dass es kein Speichern unter gibt :(

Ja, das stimmt - und das lässt sich auch nicht so einfach realisieren. Beim nächsten machst du am besten eine Kopie - dann kannst du das Widget beliebig verändern.

@All: Ich arbeite gerade an einem PlugIn-System, welches im Moment sehr gut vorran geht. In der nächsten Version werd ich die PlugIns mal aktivieren und ein kleines Beispiel-PlugIn als API-Reference erstellen.


Kroko - Fr 17.10.08 10:07

Es wäre nicht schlecht, wenn die Sidebar
(a) auch auf 2 Monitoren funktionieren würde
(b) auch Widgets aufnehmen würde bzw. man diese andocken könnte!


Fabian E. - Fr 17.10.08 12:44

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre nicht schlecht, wenn die Sidebar
(b) auch Widgets aufnehmen würde bzw. man diese andocken könnte!

Kann sie doch oder?
Mach dir mal das Widget "Sidebar" dazu das kommt dann wie bei Vista ganz nach rechts. Dort kannst du dann deine Widgets andocken.


littleDave - Fr 17.10.08 13:23

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre nicht schlecht, wenn die Sidebar
(a) auch auf 2 Monitoren funktionieren würde

Ich denke, viele wollen die SideBar auf dem Hauptmonitor. Daher hab ich die SideBar auf den Monitor beschränkt. Ich werd aber in der nächsten Version eine Einstellung einbauen, mit der man sagen kann, auf welchem Monitor sich die SideBar befinden soll.

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(b) auch Widgets aufnehmen würde bzw. man diese andocken könnte!

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre nicht schlecht, wenn die Sidebar
(b) auch Widgets aufnehmen würde bzw. man diese andocken könnte!

Kann sie doch oder?
Mach dir mal das Widget "Sidebar" dazu das kommt dann wie bei Vista ganz nach rechts. Dort kannst du dann deine Widgets andocken.

Das dacht ich auch, dass das funktioniert :gruebel:

Gerade hab ich Version 0.5.10 hochgeladen!

Diesmal hab ich die erste Alpha-Version des PlugIn-Systems mit dabei. Mit Hilfe des PlugIn-Systems könnt ihr die Funktionalität von Widgets mit Hilfe von DLLs erweitern - somit gibt es jetzt fast keine Grenzen mehr *g*.

Bisher ist das PlugIn-System noch im Alpha-Stadium : manche Sachen funktionieren noch nicht so ganz: Ein PlugIn kann zwar generell von mehreren Widgets gleichzeitig benutzt werden - doch das funktioniert nur solange ihr keine Script-Funktionen aus dem PlugIn heraus aufruft (z.B. ein Event). Das funktioniert nur wenn das PlugIn nur von einem Widget geladen wird. Ich werd mir da noch was überlegen müssen und ich weiß noch nicht, ob ich dafür den API-Header anpassen muss. Aber ich werd alle Änderungen natürlich genau dokumentieren. Diese Aussage mit den Events ist seit der neuen Version obsolet und veraltet.
Die API-Reference findet ihr ebenfalls im ersten Post im Abschnitt "Downloads"

Ebenfalls neu ist die Palette im Editor. Die alte hat mir nicht mehr gefallen, daher hab ich eine neue gemacht.

Der Download sowie der komplette ChangeLog befinden sich im ersten Post.
Grüße
Dave

Wichtiges Update
Ich hab gerade eine neue PlugIn-API sowie eine neue Version hochgeladen. Die alte Version hatte einen Bug, der jetzt nicht mehr auftreten sollte. An alle, die bereits die aktuellste Version heruntergeladen habe - sorry, aber ihr solltet nochmal kurz die aktuellste Version herunterladen.
In der neuen Version ist das von mir angesprochene Problem mit den Events bereits behoben - das ist ab sofort kein Problem mehr


henni - Fr 17.10.08 15:55

Das Programm ist einfach nur genial!!
Bitte tue mir nur einen Gefallen: mache es auf gar keinen Fall zu einer Shareware!
Also, es ist bisher das beste Sidebar-Programm, das ich jemals gesehen habe!
Unendlich mal besser als die von Google und Vista zusammen!! Sowas habe ich schon immer gesucht.
Es gibt zwar momentan noch sehr wenige Widgets, aber das tolle an Deiner Software ist ja die Kompatibelität mit der Pascal-Sprache! Also einfach nur Klasse!
Weiter so!

Nur folgendes wäre noch Super:
- Sprachpakete, sodass man die Deutsche Sprache einstellen kann. Oder gibts das schon?
- Und die ScrollBar im Select Widget sieht ein bisschen komisch aus, wie Kroko es sagte. Also ich glaub die PageSize Eigenschaft ist da irgendwie falsch.

Es hat ein enormes Potential! Vor allem der Editor! (Ich wollte bei der Google-Sidebar mal ein neues Widget kreieren - erfolgslos)
Nur bitte, bitte mach es nicht zu einer Shareware, denn sonst muss ich es mir ja noch kaufen ;)
Aus diesem Programm kann Microsoft vieeel lernen!

//Edit:
Ich habe noch eine Idee:
Könnte man das auch zu einer Portablen Version machen?
Wie z.b. Firefox?


Kroko - Fr 17.10.08 16:33

(a)also die Sidebar nimmt schom die Widgets auf, nur wenn ich die Position von rechts nach links nehme, bleiben diese alle rechts
(b) bei mir liegt auf dem Hauptmonitor eine Vollbild-Anwendung, da kann ich keine Einschränkung durch eine Sidbar gebrauchen, danke für euer Verständnis

(c) Spitzen Programm!
(d) need more fishes, :D


littleDave - Fr 17.10.08 16:36

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Das Programm ist einfach nur genial!!
[...]
Also, es ist bisher das beste Sidebar-Programm, das ich jemals gesehen habe!
Unendlich mal besser als die von Google und Vista zusammen!! Sowas habe ich schon immer gesucht.
Es gibt zwar momentan noch sehr wenige Widgets, aber das tolle an Deiner Software ist ja die Kompatibelität mit der Pascal-Sprache! Also einfach nur Klasse!
Weiter so!
[...]
Es hat ein enormes Potential! Vor allem der Editor!

:shock: also bei soviel Lob muss ich mich erstmal zurücklehnen ... Vielen dank :party: :party:. Solche Kommentare tuen beim lesen so gut - wahnsinn :D

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Bitte tue mir nur einen Gefallen: mache es auf gar keinen Fall zu einer Shareware![...]
Nur bitte, bitte mach es nicht zu einer Shareware, denn sonst muss ich es mir ja noch kaufen ;)

:twisted: dann hab ich ja schonmal einen Kunden :mrgreen:. Nein, Spaß beiseite. Ich habe nicht vor, dass Programm als Shareware zu vertreiben. Für die Zukunft kann ich zwar nichts garantieren (wer kann das schon), jedoch hatte ich bisher nicht mal im entferntesten daran gedacht, dass Ding als Shareware anzubieten - und das ist jetzt auch immernoch so. Vieleicht werd ich das Programm mal als Donation-Ware (freiwillige Bezahlung) vertreiben. Sogar OpenSource ist für mich nicht 100%ig ausgeschlossen. Aber Shareware ist für mich im Moment ausgeschlossen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Nur folgendes wäre noch Super:
- Sprachpakete, sodass man die Deutsche Sprache einstellen kann. Oder gibts das schon?

Also Multi-Language-Fähigkeit ist in der aktuellen Roadmap relativ weit unten, da es noch ein paar wichtige Features gibt, die unbedingt noch mit reinkommen müssen (z.B. mehrere Forms in einem Widget ermöglichen). Aber MultiLanguage wird es geben - jedoch nicht sehr bald (außer ich überwinde mich bzw. hab keine Lust etwas komplexeres zu machen :P)

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
- Und die ScrollBar im Select Widget sieht ein bisschen komisch aus, wie Kroko es sagte. Also ich glaub die PageSize Eigenschaft ist da irgendwie falsch.

Kannst du mir einen Screenshot anhängen, bei dem du Verdeutlichst, wie es dargestellt wird und wie es deiner Meinung nach dargestellt werden soll?

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
(Ich wollte bei der Google-Sidebar mal ein neues Widget kreieren - erfolgslos)

Also das Google-Ding kommt mir nicht auf die Festplatte. Daher weiß ich nicht, wie die das gelöst haben. Kann man sich bei Google-Desktop auch nen Editor runterladen? Wenn ja, hat der besondere Features (ein bisschen Abkupfern will :mrgreen: )

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Aus diesem Programm kann Microsoft vieeel lernen!

:mrgreen:

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe noch eine Idee:
Könnte man das auch zu einer Portablen Version machen?
Wie z.b. Firefox?

An sich ist es kein Problem das Programm Portabel zu machen. Muss dafür sogar nur eine Variable umändern *g*. Das größere Problem ist: wie stellt das Programm fest, ob es jetzt im "portable Mode" läuft oder nicht? Per Startparameter wollt ich das eigendlich nicht machen. Und im Programmverzeichnis nach einer Datei suchen ist auch nicht so der Hit (wenn man als User ausversehen gerade die Datei/Ordner im Programmverzeichnis hat, die das Programm sucht und der User keine Schreibrechte in dem Ordner hat, dann wundert er sich, warum seine Einstellungen beim beenden nicht gespeichert werden) - hm. Hat da wer ne gute Idee?

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(a)also die Sidebar nimmt schom die Widgets auf, nur wenn ich die Position von rechts nach links nehme, bleiben diese alle rechts

Ok, das werd ich noch einbauen. Danke für den Hinweis.

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(b) bei mir liegt auf dem Hauptmonitor eine Vollbild-Anwendung, da kann ich keine Einschränkung durch eine Sidbar gebrauchen, danke für euer Verständnis

Wie gesagt - ich werd so bald wie Möglich eine Option einbauen, mit der man den Monitor der SideBar bestimmen kann.

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(c) Spitzen Programm!

Bei soviel Lob werd ich langsam ganz Rot :oops:

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(d) need more fishes, :D

Ich hab leider keinen mehr - hab nur den einen


Kroko - Fr 17.10.08 16:47

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(d) need more fishes, :D

Ich hab leider keinen mehr - hab nur den einen

:cry:


Yogu - Fr 17.10.08 17:25

Ich habe diesen Thread jetzt schon seit einer Woche beobachtet, ohne hier etwas zu schreiben. :oops: Höchste Zeit...

Ich finde dein Programm ganz große Klasse, user profile iconlittleDave! Damit liegst du wirklich ziemlich weit vorne auf meiner Lieblinge der Forenuser-Projekte. (ganz knapp hinter Nemp - der ist erster :D).

Vor allem die Option "Desktop Icon" hat die Widget Engine für mich interessant gemacht - im Vordergrund stören sie mich. Aber heute habe ich mir die neuste Version runtergeladen, und seit dem schmücken die analoge Uhr und die Wettervorhersage meinen Desktop.

Ich habe bis jetzt keine Verbesserungsvorschläge, was wohl einzig und allein daran liegt, dass ich ziemlich überrumpelt mit den Features bin.
:zustimm: :zustimm:
(Für dich gibt's ausnahmsweise mal zwei ;))


Hidden - Fr 17.10.08 20:04

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(d) need more fishes, :D

Ich hab leider keinen mehr - hab nur den einen
Dann musst du ihn wohl oder übel kopieren und umbenennen ;) Kannst ja auch die Bilder umfärben für Vielfalt ;) Oder du suchst nach (Fisch-)Animationen im Internet.

Irgendwann braucht es dann aber ein Aquarium-Widget, um die ganzen Fische gut zu managen :lol:

Mir ist gerade etwas eingefallen: Wenn jemand irgendwann in ferner Zukunft ein Screensharing-Widget schreiben würde(aufbauend auf einem bestehenden Programm, man will's ja sicher ;)), wäre das :flehan: :flehan: :flehan:

mfG,


littleDave - Fr 17.10.08 20:15

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe diesen Thread jetzt schon seit einer Woche beobachtet, ohne hier etwas zu schreiben. :oops: Höchste Zeit...

Genau ;-) 8) (nicht ernst gemeint)

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich finde dein Programm ganz große Klasse, user profile iconlittleDave! Damit liegst du wirklich ziemlich weit vorne auf meiner Lieblinge der Forenuser-Projekte. (ganz knapp hinter Nemp - der ist erster :D).

Das freut micht sehr! Danke für dein Feedback :dance2: :dance2: :party: :party:

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Vor allem die Option "Desktop Icon" hat die Widget Engine für mich interessant gemacht - im Vordergrund stören sie mich. Aber heute habe ich mir die neuste Version runtergeladen, und seit dem schmücken die analoge Uhr und die Wettervorhersage meinen Desktop.

Das ist doch nicht schlecht - auch für mich, da du ja Windows 2000 benutzt.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe bis jetzt keine Verbesserungsvorschläge, was wohl einzig und allein daran liegt, dass ich ziemlich überrumpelt mit den Features bin.
:zustimm: :zustimm:
(Für dich gibt's ausnahmsweise mal zwei ;))

Was für eine Ehre :). Aber sobald dir was einfällt sagst du bescheid, oder? ;-)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
(d) need more fishes, :D

Ich hab leider keinen mehr - hab nur den einen
Dann musst du ihn wohl oder übel kopieren und umbenennen ;) Kannst ja auch die Bilder umfärben für Vielfalt ;) Oder du suchst nach (Fisch-)Animationen im Internet.

Wieso kopieren und umbenennen? Man kann doch ein Widget beliebig oft laden :gruebel:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Mir ist gerade etwas eingefallen: Wenn jemand irgendwann in ferner Zukunft ein Screensharing-Widget schreiben würde(aufbauend auf einem bestehenden Programm, man will's ja sicher ;)), wäre das :flehan: :flehan: :flehan:

Das ist jetzt sogar dank dem PlugIn-System möglich


Hidden - Fr 17.10.08 20:19

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Man kann doch ein Widget beliebig oft laden :gruebel:
Seit wann? :shock: :autsch:


littleDave - Fr 17.10.08 20:23

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Man kann doch ein Widget beliebig oft laden :gruebel:
Seit wann? :shock: :autsch:

Seit Version 0.1 ;-)


Yogu - Fr 17.10.08 21:22

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe bis jetzt keine Verbesserungsvorschläge, was wohl einzig und allein daran liegt, dass ich ziemlich überrumpelt mit den Features bin.
:zustimm: :zustimm:
(Für dich gibt's ausnahmsweise mal zwei ;))

Was für eine Ehre :). Aber sobald dir was einfällt sagst du bescheid, oder? ;-)

Wenn du das unbedingt willst, kann ich das gerne für dich machen. ;)

Wenn man zum Beispiel die Analoguhr hat, und dann das Fenster so weit an den Rand zieht, dass ein Teil der Uhr verdeckt ist, aber nicht die ganze Uhr, und man das Fenster anschließen wieder vollständig sichtbar macht, passiert der Bug aus dem Anhang (achte auf den Sekundenzeiger).

Da Windows denkt, es müsse nur die Hälfte neugezeichnet werden, macht die Widget Engine das eben. Aber in ein OnRepaint sollte lieber ein Invalidate (oder so etwas ähnliches :?) rein.

(Das jetzt nicht, weil es mich stört, sondern um einen Verbesserungsvorschlag zu melden. :mrgreen:)


littleDave - Fr 17.10.08 22:06

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe bis jetzt keine Verbesserungsvorschläge, was wohl einzig und allein daran liegt, dass ich ziemlich überrumpelt mit den Features bin.
:zustimm: :zustimm:
(Für dich gibt's ausnahmsweise mal zwei ;))

Was für eine Ehre :). Aber sobald dir was einfällt sagst du bescheid, oder? ;-)

Wenn du das unbedingt willst, kann ich das gerne für dich machen. ;)

Ja sehr gerne :-)

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn man zum Beispiel die Analoguhr hat, und dann das Fenster so weit an den Rand zieht, dass ein Teil der Uhr verdeckt ist, aber nicht die ganze Uhr, und man das Fenster anschließen wieder vollständig sichtbar macht, passiert der Bug aus dem Anhang (achte auf den Sekundenzeiger).

Da Windows denkt, es müsse nur die Hälfte neugezeichnet werden, macht die Widget Engine das eben. Aber in ein OnRepaint sollte lieber ein Invalidate (oder so etwas ähnliches :?) rein.

Die Liste ist eine ListBox mit der Eigenschaft OwnerDraw. Beim zeichnen halte ich mich dann an den übergebenen Parameter Rect: TRect. Anscheinend ist das Rect dann nicht so ganz Richtig :? - muss ich aber mal in ner Testanwendung ausprobieren. Falls das der Fall sein sollte, werd ich es natürlich beheben - muss dafür ja einfach nur Rect.Left und Rect.Right manuell anpassen.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
(Das jetzt nicht, weil es mich stört, sondern um einen Verbesserungsvorschlag zu melden. :mrgreen:)

Danke für deine Bemühungen :) - stören muss es ja nicht unbedingt, aber ein Fehler ist es trotzem. Aber nochmal danke für deine Bemühungen


Yogu - Fr 17.10.08 22:17

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Die Liste ist eine ListBox mit der Eigenschaft OwnerDraw. Beim zeichnen halte ich mich dann an den übergebenen Parameter Rect: TRect. Anscheinend ist das Rect dann nicht so ganz Richtig :?

Ich denke weniger, dass das Recht falsch gewählt ist, sondern vielmehr, dass Windows automatisch aussortiert. Das merkt man auch, wenn eine Anwendung hängt und ein anderes Fenster davor geschoben wird. Beim Entfernen dieses Fensters bleibt der nicht überschriebene Teil noch erhalten. Du müsstest Windows irgendwie mitteilen, dass sich da wirklich was geändert hat - so wie es Repaint macht.


littleDave - Fr 17.10.08 22:49

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Die Liste ist eine ListBox mit der Eigenschaft OwnerDraw. Beim zeichnen halte ich mich dann an den übergebenen Parameter Rect: TRect. Anscheinend ist das Rect dann nicht so ganz Richtig :?

Ich denke weniger, dass das Recht falsch gewählt ist, sondern vielmehr, dass Windows automatisch aussortiert. Das merkt man auch, wenn eine Anwendung hängt und ein anderes Fenster davor geschoben wird. Beim Entfernen dieses Fensters bleibt der nicht überschriebene Teil noch erhalten. Du müsstest Windows irgendwie mitteilen, dass sich da wirklich was geändert hat - so wie es Repaint macht.

Ich bin zwar gerade nicht zu Hause, jedoch hab ich gerade versucht das Problem irgendwie bei meiner Freundin am PC zu reproduzieren - keine Change. Ich habs nicht geschafft das so hinzubekommen, wie du es im Screenshot gezeigt hast. Ich denke mal, dass Windows XP sich in der Hinsicht etwas anders verhält als Windows 2000 :?


Fabian E. - Sa 18.10.08 00:38

Also dieser Fisch ist ja dermaßen geil :party:
Ich will auch mehr davon :)

Und ich überlege mir ganz ehrlich ob ich meine Vista Sidebar daheim in die Ecke treten soll für deine :)
Mach noch paar schöne Widgets und das Teil is dermaßen perfekt :)


littleDave - Sa 18.10.08 02:03

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Also dieser Fisch ist ja dermaßen geil :party:
Ich will auch mehr davon :)

Ich kann am Montag noch mal schauen, ob ich noch nen Fisch auf meiner Festplatte finde (erst Montag da ich am WE nicht daheim bin).

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Und ich überlege mir ganz ehrlich ob ich meine Vista Sidebar daheim in die Ecke treten soll für deine :)

Ich muss mal wirklich sagen: Ich find es echt super, dass ihr so nett und so super Feedback gebt. Das ist alles so schön zu lesen - da weiß ich meistens überhaupt nicht, wie ich drauf antworten soll. Ich hoffe, dass es dir reicht wenn ich auf deinen Post einfach nur Antworte: vielen vielen Dank! Das ist so schön zu hören.

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Mach noch paar schöne Widgets und das Teil is dermaßen perfekt :)

Ich würd gerne mal ein Widget für die EE-Shoutbox erstellen, jedoch wollt ich kein Widget schreiben, wo man sich erst einloggen soll. In der DelphiPraxis gibt es z.B. ein RSS-Feed für die Shoutbox (was natürlich für ein Widget extrem praktisch ist). Wenn es sowas geben würde, wäre schon längst ein Widget dafür entstanden. Aber das ist ja nur ein Beispiel. Was für Widgets würdest du dir denn wünschen bzw. was für Widgets würdest du als nützlich empfinden?


Fabian E. - Sa 18.10.08 02:10

Also was mir spontan einfällt was ich dahei noch habe, ist ein Wlan-Widget... Das zeigt die aktuelle Wlan-Empfangsstärke an.


Hidden - Sa 18.10.08 09:42

Moin, moin :D

Also ich wünsche mir ehrlichgesagt noch ein angewandtes Beispielprojekt für die Plugins. Da alles andere ziemlich speziell für ein anderes Programm wäre, könntest du ja ein Plugin-basiertes Widget für die Widget-Engine schreiben ;)

Als nächstes auf meiner Liste stände wohl das markieren von Text im Edit.

Btw: Bei meinem Clipboard-Manager kannst du folgenden winzigen Bug beobachten. Ich weiß nicht, inwieweit du da was ändern kannst, aber: wenn Text in ein Editfeld eingefügt wird(z.B., wenn man auf ein gefülltes Clipboard wechselt), ist von diesem nur das letzte Stück zu lesen :?. Werde gleich mal ein paar Screenshots machen.

E: So, hier ist der Screenshot(Ich seh' irgendwie alles doppelt, wenn ich transparente Widgets über Screenshots von Widgets habe :nut:). In dem Fall stört's jetzt nicht so aber manchmal wird nur ein Buchstabe oder so angezeigt, wenn man's genau trifft.. Das Edit wird halt allgemein nicht ausgenutzt.

mfG,


henni - Sa 18.10.08 10:12

Zur Scrollbar:
Siehe Anhang. Der "Greifer" der Scrollbar fällt ziemlich klein aus, aber so schlimm ist es wiederum auch nicht.

Und dann habe ich noch folgende Ideen / Verbesserungsvorschläge / Bugs gefunden:
* Wenn man ein neues Widget erstellt und dieses dann gleich startet, kommt etwas komisches heraus
(siehe Anhang). Das kommt auch, wenn man den Editor startet und ihn wieder minimiert.
* Man bräuchte noch eine große Textbox, also eine Memo Komponente für den Editor
* Zur Portable Version: Was spricht gegen einen Kommandozeilen Parameter?
Miranda macht das so, dass es eine Ini-Datei hat, wo die Pfade jeweils absolut oder relativ
angegeben werden können
* Es wäre toll, wenn jedes Widget eine Art Menü hätte, das sich dann einblendet, wenn man mit dem
Mauszeiger drüber fährt. Über dieses Menü kann man das Widget dann entfernen oder in die Optionen
des Widgets gelangen
* Außerdem wäre es toll, wenn es für einige Widgets ein Options-Formular gäbe. Darüber könnte man
dann z.b. bei dem Wetter-Widget einstellen, von welchem Ort das Wetter angezeigt werden soll.
* Verknüpfung der *.widget Datei mit deinem Programm, sodass man mit dem Browser per Download die
Widgets gleich installieren kann
* Verschiedene Skins der Uhr, obwohl, ich glaub das kriege ich selbst hin :)

Dann jetzt noch folgende Widget Ideen:
* Notizzettel
* ToDo-Liste
* Shutdown-Leiste, mit Standby, Ruhezustand oder ähnlichem
* Systeminfos, wie z.b. Laufzeit des Computers
* Laufwerks Eigenschaften, z.b. welche CDs gerade im Laufwerk sind und das man diese auswerfen und
wieder einfahren kann
* Schnellstart Leiste, wo man Verknüpfungen ablegen kann

HINWEIS: ich weiß, das sind viele Verbesserungsvorschläge. Wenn man die so liest, könnte man vielleicht auf die Idee kommen, dass ich das Programm momentan noch nicht so gut finde.
Irrtum: Ich finde das Programm so schon sehr sehr sehr gut, und kann mir sehr wohl vorstellen, was in diesem Projekt für eine Arbeit drinsteckt. Gratulation nochmals für diesen Erfolg!
Also meine Vorschläge sind wirklich nur als solche zu betrachten. Sie müssen keinesfalls umgesetzt werden, auch so finde ich das Programm schon top.

Ich wette, dein Programm kommt irgendwann mal in die Chip-Zeitschrift oder ähnliches :)

Und ich werde bald ein Archiv mit Bildern des Google-Desktops auf meine Homepage stellen, den Link gebe ich dann bescheid.

//Edit:
Nochwas: ich habe XP Prof. Der Style kommt vom UXTheme Multi-Patcher 6 mit dem Style VistaCG.
Es könnte sein, das der genannte Bug daher kommt.

//Edit2:
Mal ne Frage: Wie kann man die Resourcen aus der *.widget-Datei wieder extrahieren?


henni - Sa 18.10.08 16:02

So, im Anhang sind einige Bilder von der Google-Sidebar.
Aber dort heißen die Widgets Gadgets.
Am meisten hasse ich an der Google-Sidebar die Einstellungs-Oberfläche:
Sie wird über einen Browser konfiguriert.
Und dann finde ich das aufdringliche Suchfeld total blöd.
Darum bin ich froh, dass es jetzt deine Variante gibt.

Und noch eine Frage: wie kann ich bei deiner Sidebar den Style einstellen? (Vista / Longhorn etc.)
Im Quelltext steht irgendetwas von MainForm.AddPopUpMenu?? Irgendwie wird das nie angezeigt!


Hidden - Sa 18.10.08 16:22

Hi,

Default wird das Widget-Menü mit Strg+Rechtsklick geöffnet(da geht das). Kannst du aber im Settings-Menü ändern.

Würde mich an dieser Stelle übrigens für Rechtsklick default einsetzen, da das bei allen anderen Programmen so ist. So in Punkto intuitive Bedienbarkeit.

mfG,


littleDave - Sa 18.10.08 17:26

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Also was mir spontan einfällt was ich dahei noch habe, ist ein Wlan-Widget... Das zeigt die aktuelle Wlan-Empfangsstärke an.

Ok, da werd ich mal schauen, wie ich die Empfangsstärke am besten auslesen kann. Da ich ebenfalls kein WLan habe, wird es für mich relativ schwer. Wenn wer nen funktionierendes Beispiel mit Source hat - immer her damit *g*

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Also ich wünsche mir ehrlichgesagt noch ein angewandtes Beispielprojekt für die Plugins. Da alles andere ziemlich speziell für ein anderes Programm wäre, könntest du ja ein Plugin-basiertes Widget für die Widget-Engine schreiben ;)

Also bei der API-Reference ist ein Beispiel-PlugIn mit Quelltext dabei. Um dann das PlugIn zu benutzen, kann man in dem mitgelieferten Tool ein Script öffnen, mit dem man die Benutzung des PlugIns anhand eines Beispiels sehen kann. Ich der Readme.txt im Root-Ordner der Zip-Datei hab ich eine Step-By-Step-Anleitung geschrieben - hoffentlich hilft dir die ein wenig weiter.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Als nächstes auf meiner Liste stände wohl das markieren von Text im Edit.
[...]

Ja, die Edit-Komponente ist noch nicht so ganz ausgereift. Werd mir die nochmal komplett vornehmen

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Zur Scrollbar:
Siehe Anhang. Der "Greifer" der Scrollbar fällt ziemlich klein aus, aber so schlimm ist es wiederum auch nicht.

Ok, da werd ich die Formel für die PageSize noch anpassen. Danke für den Screenshot - jetzt weiß ich endlich, was an der Scrollbar falsch ist ;-). Ich dachte nähmlich zuerst, dass die Scrollbar irgendwie ganz komisch dargestellt wird - wusst ja nicht, dass es nur um die PageSize geht.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Wenn man ein neues Widget erstellt und dieses dann gleich startet, kommt etwas komisches heraus
(siehe Anhang). Das kommt auch, wenn man den Editor startet und ihn wieder minimiert.

Ok, hab ich mir aufgeschrieben und werd mir das Problem mal anschauen und werd es gegebenenfalls beheben. Ob das jetzt an einem Skin liegt, weiß ich nicht. Kann dir erst am Montag sagen, ob ich es reproduzieren konnte.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Man bräuchte noch eine große Textbox, also eine Memo Komponente für den Editor

An einer Memo-Komponente arbeite ich bereits. Jedoch erst in kleinen Schritten. Im Moment erstelle ich eine ScrollBar. Danach kommt eine ListBox-Komponente und dann kommt das Memo

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Zur Portable Version: Was spricht gegen einen Kommandozeilen Parameter?
Miranda macht das so, dass es eine Ini-Datei hat, wo die Pfade jeweils absolut oder relativ
angegeben werden können

Das Problem ist, wenn man den Parameter vergisst und die Daten dann nicht im Programmordner sondern im %APPDATA%-Ordner gespeichert werden. Das sollte in einer Portable-Version eigendlich nicht passieren.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Es wäre toll, wenn jedes Widget eine Art Menü hätte, das sich dann einblendet, wenn man mit dem
Mauszeiger drüber fährt. Über dieses Menü kann man das Widget dann entfernen oder in die Optionen
des Widgets gelangen

Ja, das Menü ist eine gute Idee. Jedoch dauert die Realisierung wahrscheinlich etwas. Aber eine wirklich tolle Idee :zustimm:

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Außerdem wäre es toll, wenn es für einige Widgets ein Options-Formular gäbe. Darüber könnte man
dann z.b. bei dem Wetter-Widget einstellen, von welchem Ort das Wetter angezeigt werden soll.

Das werd ich mir noch überlegen - vorallem wie ich es am besten Realisieren kann.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Verknüpfung der *.widget Datei mit deinem Programm, sodass man mit dem Browser per Download die
Widgets gleich installieren kann

Dafür muss ich erstmal die Startparameter-Verarbeitung erweitern. Sobald das dann funktioniert, werd ich die .widget-Dateien mit dem Programm optional verknüpfen lassen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Notizzettel

Kommt sobald die Memo-Komponente erstellt ist

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* ToDo-Liste

Kommt sobald die ListBox-Komponente erstellt ist

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Shutdown-Leiste, mit Standby, Ruhezustand oder ähnlichem

Ok, das ist auch noch eine gute Idee. Werd dafür noch eine weitere Unit einbauen müssen - sonst hat man per Widget keinen Zugriff darauf.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Systeminfos, wie z.b. Laufzeit des Computers

Das kann man je schnell selber machen - GetTickCount() ist im Widget bereits vorhanden ;-)

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Laufwerks Eigenschaften, z.b. welche CDs gerade im Laufwerk sind und das man diese auswerfen und
wieder einfahren kann

Also die Laufwerke lassen sich bereits auslesen (in die uses-Liste einfach die Unit "SystemInfo" einbinden). Das Auswerfen gibt es noch nicht, ist aber einer gute Idee. Werd die SystemInfo in der Hinsicht erweitern.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Schnellstart Leiste, wo man Verknüpfungen ablegen kann

Ok, dafür werd ich ein paar Sachen noch einbauen müssen (z.B. Icon aus Datei auslesen), aber an sich eine gute Idee.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
HINWEIS: ich weiß, das sind viele Verbesserungsvorschläge. Wenn man die so liest, könnte man vielleicht auf die Idee kommen, dass ich das Programm momentan noch nicht so gut finde.
Irrtum: Ich finde das Programm so schon sehr sehr sehr gut, und kann mir sehr wohl vorstellen, was in diesem Projekt für eine Arbeit drinsteckt. Gratulation nochmals für diesen Erfolg!
Also meine Vorschläge sind wirklich nur als solche zu betrachten. Sie müssen keinesfalls umgesetzt werden, auch so finde ich das Programm schon top.

Ich find eine Liste kann nicht lang genug sein, da hab ich wenigstens was, was ich abarbeiten kann ;-)

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Ich wette, dein Programm kommt irgendwann mal in die Chip-Zeitschrift oder ähnliches :)

Noch würd ich das nicht wollen, da dafür noch nicht genug vorhanden ist.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und ich werde bald ein Archiv mit Bildern des Google-Desktops auf meine Homepage stellen, den Link gebe ich dann bescheid.

Das ist ein super-Service. Werd ich mir am Montag mal ganz genau anschauen. Ich hab gerade mal kurz reingeschaut und find die Screenshots sehr gut und informativ. Vorallem das "Widget aus dem Internet laden" find ich sehr gut. Ich werd mich mal um ein php-Script auf meiner Website kümmern und dann sowas ähnliches auch einbauen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Mal ne Frage: Wie kann man die Resourcen aus der *.widget-Datei wieder extrahieren?

Das ist zwar prinzipiell möglich, jedoch noch nicht eingebaut. Ich werd mich mal hinsetzen und das noch mit einbauen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und noch eine Frage: wie kann ich bei deiner Sidebar den Style einstellen? (Vista / Longhorn etc.)
Im Quelltext steht irgendetwas von MainForm.AddPopUpMenu?? Irgendwie wird das nie angezeigt!

Per Standard ist das Popup-Menü von einem Widget per Strg + Rechtsklick geöffnet - wie Hidden bereits gesagt hat. Ich glaub ich werd den Default-Wert aber ändern - auf einen einfachen Rechtsklick

So, das war jetzt ein langer Post *schnauf*
PS @hidden: hab deinen Post gelesen und werd den Default wie gesagt auch ändern.


henni - Sa 18.10.08 17:44

Ah, ist ja schön, dass dir einige meiner Ideen gefallen!
Und noch viel besser, dass du diese evtl. umsetzen willst!!

So, jetzt habe ich mir auch schon ein Widget gebastelt: Shutdown.
Was es bringt könnte ihr euch selbst erraten :)
Doch das einzige, was noch fehlt, ist dass es den Computer wirklich herunterfährt :)
Im Anhang befindet sich das noch unnütze Widget und ein Screenshot.
Ich hoffe es funktioniert (jedenfalls die Knöpfe)!

Und dann fällt mir noch etwas ein, was ich bei dem Shutdown manuell machen musste:
Die Images haben zwar die Eigenschaft HoverGraphic, aber was noch fehlt ist sowas wie MouseDownGraphic.
Also dass wenn man mit der Maus darauf Klickt, das entsprechende Bild erscheint.
Das wäre recht praktisch!


Hidden - Sa 18.10.08 17:54

Hi,

@Widgets herunterladen:
E: Beantrage, '.widget' in die Liste der erlaubten Dateieendungen einzutragen :lol:
E2: Wtf? Wenn ich den Zeilenumbruch hinter dem '/list' wegmache, fehlt die Zeile komplett :shock:
E3: @Shutdown: Mach's ein stück kleiner und es wird eventuell ein "always on top" bei mir ;) Btw: Die Buttons sollten nur auf Rechtsklick reagieren

mfG,


littleDave - Sa 18.10.08 20:03

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Ah, ist ja schön, dass dir einige meiner Ideen gefallen!
Und noch viel besser, dass du diese evtl. umsetzen willst!!

So, jetzt habe ich mir auch schon ein Widget gebastelt: Shutdown.
Was es bringt könnte ihr euch selbst erraten :)
Doch das einzige, was noch fehlt, ist dass es den Computer wirklich herunterfährt :)
Im Anhang befindet sich das noch unnütze Widget und ein Screenshot.
Ich hoffe es funktioniert (jedenfalls die Knöpfe)!

Ich werd eine ShutDown-Komponete in der nächsten Version einbauen. Bis dahin kannst du ja mal ein PlugIn schreiben, damit es funktioniert :zwinker:

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und dann fällt mir noch etwas ein, was ich bei dem Shutdown manuell machen musste:
Die Images haben zwar die Eigenschaft HoverGraphic, aber was noch fehlt ist sowas wie MouseDownGraphic.
Also dass wenn man mit der Maus darauf Klickt, das entsprechende Bild erscheint.
Das wäre recht praktisch!

Klar, das ist kein Problem das einzubauen.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
@Widgets herunterladen:
  • Versions-Check
  • Automatische Benachtichtigung bei neuer Widget-Version

Das wird nicht so schnell möglich sein, da ich dafür erstmal eine Art Webservice erstellen muss. Aber sobald das dann funktioniert und eingebaut ist, wird ein Version-Check natürich mit dabei sein. Von automatischen Überprüfungen halte ich nicht viel, jedoch denke ich, dass man dann per Knopfdruck alle Widgets auf einmal überprüfen können wird.


henni - Sa 18.10.08 22:35

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Ich werd eine ShutDown-Komponete in der nächsten Version einbauen. Bis dahin kannst du ja mal ein PlugIn schreiben, damit es funktioniert :zwinker:


Ok, werde ich machen!
Das Plugin System ist richtig genial!!
Ich habe es sogar verstanden, wie es geht!!!


littleDave - Sa 18.10.08 23:31

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Ich werd eine ShutDown-Komponete in der nächsten Version einbauen. Bis dahin kannst du ja mal ein PlugIn schreiben, damit es funktioniert :zwinker:

Ok, werde ich machen!

Das freut mich, denn:

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Das Plugin System ist richtig genial!!
Ich habe es sogar verstanden, wie es geht!!!

ich würd gerne mal etwas Feedback zum PlugIn-System haben. Vor allem Probleme würd ich gerne schnell beheben. Auch würd ich gerne von dir wissen, wo du Probleme hast/hattest, denn ich will das PlugIn-System so einfach und trotzem so flexibel wie Möglich machen. Das mit dem flexibel hab ich (glaub ich jedenfalls) schon ganz gut hinbekommen.


Hidden - Sa 18.10.08 23:53

Hi,

Auch, wenn ich noch nicht die Zeit hatte, mich näher als einmal lesen mit dem Plugin-System zu beschäftigen: Eine Sache ist mir glaube ich schon einmal aufgefallen. Und zwar könntest du diesen code doch mit einem Tool in der Engine erzeugen lassen, oder?

Also insofern als, dass der Quelltext, der hier im Moment komplett aus Strings mit #13#10 angegeben ist, dem Tool als normaler Quelltext übergeben werden und das Tool die Unit ausgibt.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
const
  ASygScriptUnitName   : string = 'ExamplePlugIn';
  ASygScriptUnitSource : string = 
  'unit ExamplePlugIn;'+#13#10+
  #13#10+
  '// THIS IS VERY IMPORTANT !!!!!'+#13#10+
  '// YOU MUST NOT DELETE THIS LINE'+#13#10+
  '{$CALLCONVENTION STDCALL}'+#13#10+
  '// OTHERWISE THE GENERATED CODE'+#13#10+
  '// DOES NOT HAVE THE CALL-CONVENTION: stdcall'+#13#10+
  #13#10+
  'uses'+#13#10+
  '  Classes; // for TObject (TObject is not in the System.pas'+#13#10+
  '  '+#13#10+
  'type'+#13#10+
  '  // A sample class'+#13#10+
  '  TMyPluginClass = class(TObject)'+#13#10+
  '  public'+#13#10+
  '    // the script engine does not know constructors. '+#13#10+
  '    // So you can simple make a function which '+#13#10+
  '    // returns the new generated object'+#13#10+
  '    function  Create: TMyPluginClass;'+#13#10+
  '    // you do not have the publish the destructor if you'+#13#10+
  '    // create  decenent of TObject. '+#13#10+
  '    '+#13#10+
  '    // Here you can define functions and procedures'+#13#10+
  '    function  IntValue: integer;   '+#13#10+
  '    procedure SetIntValue(value: integer);'+#13#10+
  '    '+#13#10+
  '    // NOTE: YOU CAN NOT CREATE A FUNCTION WITCH RETURNS A STRING'+#13#10+
  '    //       IF YOU WANT TO RETURN A STRING, CREATE SOMETHING LIKE THIS:'+#13#10+
  '    //       '+#13#10+
  '    //          procedure GetString(var value: string);'+#13#10+
  '    //'+#13#10+
  '    // OnChange-Event'+#13#10+
  '    procedure GetOnBeforeChange(var s: string); '+#13#10+
  '    procedure SetOnBeforeChange(value: string);'+#13#10+
  '    // OnChanged-Event'+#13#10+
  '    procedure GetOnChanged(var s: string);'+#13#10+
  '    procedure SetOnChanged(value: string); '+#13#10+
  '  end;'+#13#10+
  '  '+#13#10+
  '// If you just want to add a simple function and not an object,'+#13#10+
  '// you have to add the key word "EXTERNAL" after the declaration'+#13#10+
  'procedure MyShowMessage(aMsg: string); external; '+#13#10+
  #13#10+
  #13#10+
  '// If you are done with the header, click on "File" -> "Open" and'+#13#10+
  '// open the file "FormatDelphiExportFunction.scs"'+#13#10+
  '//'+#13#10+
  '// Now change back to your header source and click on '+#13#10+
  '// "Project" -> "Export to Delphi Unit". Answer the dialog with "YES",'+#13#10+
  '// wait a few seconds and open the new tab'+#13#10+
  #13#10+
  'begin'+#13#10+
  '  '+#13#10+
  'end.'+#13#10;


Insgesammt könnten glaube ich alle .pas-Units mit einem kurzen Formular im "Plugin-Editor" und einem Memo für den Source hier oben von der Engine erzeugt werden.

Habe allerdings auch das Konzept noch nicht ganz verstanden, insofern ist es :?, dass ich jetzt schon Ratschläge gebe/Wünsche äußere, wo ich garnicht weiß, welche dieser Units jetzt wie häufig variiert werden müssen.

mfG,


henni - So 19.10.08 00:03

Ey, dieses Plugin System ist allein schon so richtig geil!!
Vor allem die Logik stimmt, sodass es eigentlich fast jeder kapieren müsste!
Es funktioniert einwandfrei! Es macht einfach nur Spaß, das es so funktioniert, wie man es sich denkt!!
Also ein Teil der Rest der Ferien werde ich jetzt erstmal Plugins programmieren...

Doch ich habe noch folgende Änderung an dem Beispiel vorgenommen:
Ich habe den SygScriptSource nicht direkt von dem konstanten String geladen (war mir zu unübersichtlich) sondern per Ressource.

Aber ansonsten:
Super Super Super!
Also das Plugin-System gefällt mir bisher am besten!

* Es sehr ist logisch aufgebaut. (Ich habe das Beispiel 2-3 mal durchgelesen und dann als Referenz
danaben gelegt. Ich hatte keine Probleme beim Verständnis. Vor allem: Ich habe davor noch so gut
wie nie mit Dlls gearbeitet!)
* Es ist super
* mir sind keine Macken / Fehler / Bugs aufgefallen.
* es ist 100% kompatibel mit eigenen Funktionen

Wenn Microsoft doch bloß nur annäherungsweise so gut wäre..
Dann, dann sähe die Welt anders aus...

Nur das ganze ergibt zwei Probleme:
Erstens:
Mein Widget benötigt jetzt das Plugin SystemTools Version 1.0.
Wenn das jetzt nicht da ist, oder irgendwie überschrieben wurde, funktioniert das Widget nicht mehr.
Es wäre toll, wenn ich bei meinem Widget einstellen könnte, welches Plugin inkl. Version es benötigt.

Zweitens:
Mein Plugin könnte jetzt ein ganz ganz böser Virus sein :twisted:
Nein, ist es natürlich nicht, der Quelltext ist ja dabei.
Aber es wäre ganz praktisch wenn man die Dlls irgendwie mit RSA oder ähnlichem Signieren könnte:
Jede DLL erhält die Public Keys des Herstellers, nur der Hersteller hat seinen Private Key.
Jetzt kann via RSA geprüft werden, ob die Public Keys richtig sind. So kann man den Hersteller validieren, sodass man nicht befürchten muss, dass es sich um einen Virus handelt.

//Edit:
@Hidden:
Mir war das auch zu unübersichtlich. Darum habe ich den ScriptQuelltext einfach in einer *.pas geschrieben, ihn mit Delphi editiert und ihn dann als Ressource in die DLL eingebunden.
Das war kein Problem.


littleDave - So 19.10.08 02:05

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Auch, wenn ich noch nicht die Zeit hatte, mich näher als einmal lesen mit dem Plugin-System zu beschäftigen: Eine Sache ist mir glaube ich schon einmal aufgefallen. Und zwar könntest du diesen code doch mit einem Tool in der Engine erzeugen lassen, oder?

Ich wollt eigendlich PlugIn-Editor und das Hauptprogramm getrennt lassen. Generell ist das zwar schon möglich, jedoch wollt ich mal eine Trennung einbauen. Denn wenn man für die Entwickung eines PlugIns immer wieder das komplette Programm neu starten muss ist es, denke ich jedenfalls, doch etwas nervig. Daher die Trennung.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Ey, dieses Plugin System ist allein schon so richtig geil!!
Vor allem die Logik stimmt, sodass es eigentlich fast jeder kapieren müsste!
Es funktioniert einwandfrei! Es macht einfach nur Spaß, das es so funktioniert, wie man es sich denkt!!
Also ein Teil der Rest der Ferien werde ich jetzt erstmal Plugins programmieren...

*grins* *freu* *freu* :D dann hoffe ich, dass es so positiv weitergeht mit den PlugIns :D

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Doch ich habe noch folgende Änderung an dem Beispiel vorgenommen:
Ich habe den SygScriptSource nicht direkt von dem konstanten String geladen (war mir zu unübersichtlich) sondern per Ressource.

Woher du die Header-Datei hast, ist dem Programm eigendlich egal, könntest sie theoretisch auch erst von der ISS runterladen ;-). Hauptsache ist, dass der Header richtig ankommt. Sobald der dann da ist, kann man das Widget (hoffentlich) problemlos kompilieren. Wenn ein Widget nur ausgeführt wird, dann wird der Header sogar überhaupt nicht benötigt.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Aber ansonsten:
Super Super Super!
Also das Plugin-System gefällt mir bisher am besten!

:party: :party: :dance2: :dance2:

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
* Es sehr ist logisch aufgebaut. (Ich habe das Beispiel 2-3 mal durchgelesen und dann als Referenz
danaben gelegt. Ich hatte keine Probleme beim Verständnis. Vor allem: Ich habe davor noch so gut
wie nie mit Dlls gearbeitet!)
* Es ist super
* mir sind keine Macken / Fehler / Bugs aufgefallen.
* es ist 100% kompatibel mit eigenen Funktionen

Dann hab ich ein Ziel ja schonmal erreicht: Einfache Einbindung ohne Komplikationen und extrem hohe Flexibilität

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Wenn Microsoft doch bloß nur annäherungsweise so gut wäre..
Dann, dann sähe die Welt anders aus...

Dein Lob in allen Ehren, doch ganz so hoch hinaus wollen wir doch (noch) nicht ;-)

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Nur das ganze ergibt zwei Probleme:
Erstens:
Mein Widget benötigt jetzt das Plugin SystemTools Version 1.0.
Wenn das jetzt nicht da ist, oder irgendwie überschrieben wurde, funktioniert das Widget nicht mehr.

Ja, das ist der Nachteil des PlugIn-Systems. Aber das lässt sich nicht so einfach ändern, da das Programm ja nicht wissen kann, wie wichtig das PlugIn für das Widget ist.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre toll, wenn ich bei meinem Widget einstellen könnte, welches Plugin inkl. Version es benötigt.

Auf die Idee mit der Version bin ich noch garnicht gekommen :oops: Hatte die erstmal nur als Zusatzinformation mit Angeben lassen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Zweitens:
Mein Plugin könnte jetzt ein ganz ganz böser Virus sein :twisted:
Nein, ist es natürlich nicht, der Quelltext ist ja dabei.
Aber es wäre ganz praktisch wenn man die Dlls irgendwie mit RSA oder ähnlichem Signieren könnte:
Jede DLL erhält die Public Keys des Herstellers, nur der Hersteller hat seinen Private Key.
Jetzt kann via RSA geprüft werden, ob die Public Keys richtig sind. So kann man den Hersteller validieren, sodass man nicht befürchten muss, dass es sich um einen Virus handelt.

Also wenn man ein Widget startet, welches ein PlugIn benötigt, dann wird vor dem allerersten Start ein Hinweis angezeigt, welche PlugIns das Widget benötigt und ob man es ausführen will. Da du dein Widget bereits vorher ohne PlugIn ausgeführt hast, kommt die Meldung natürlich nicht mehr. Also eine kleine Basissicherheit ist schon geschaffen, jedoch ist die noch Ausbaufähig.


passiv - So 19.10.08 15:26

achja, weil dus grad wieder erwähnt hast: man weiß nicht, welche units dass es bereits gibt und was die so bereitstellen. wär mal ganz nett, eine hilfe-datei oder was vergleichbares zu machen ...
um nicht manches doppelt zu schreiben :lol:

edit: und vor allem, wenn du jetzt anfängst und stetig mitschreibst istes weniger arbeit, als hintenach alles auf einmal machen zu müssen ;)


Hidden - So 19.10.08 19:01

Wollte ich auch gerade vorschlagen :lol:

Jetzt weiß ich endlich, warum ich ein Unterprogramm zum Plugins erstellen vermisst habe, ich habe einen Ordner komplett unterschlagen und nur die Units im Unterordner "Examples" angesehen :autsch:

Btw: Kann ein Widget eigentlich ohne Plugin globale Shortcuts verwenden? Sonst schreibe ich da mal ein Plugin.

mfG,


littleDave - So 19.10.08 19:12

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
achja, weil dus grad wieder erwähnt hast: man weiß nicht, welche units dass es bereits gibt und was die so bereitstellen. wär mal ganz nett, eine hilfe-datei oder was vergleichbares zu machen ...
um nicht manches doppelt zu schreiben :lol:

edit: und vor allem, wenn du jetzt anfängst und stetig mitschreibst istes weniger arbeit, als hintenach alles auf einmal machen zu müssen ;)

Ich habe bereits mehrere Dokumentationssysteme bei mir ausprobiert (z.B. pas2doc), jedoch war ich mit dem Ergebniss nicht ganz zufrieden. Daher muss ich wohl oder übel ein eigenes Dokumentationssystem erstellen. Sobald das funktioniert (wird wahrscheinlich nicht allzulange dauern, da der Pascal-Compiler ja schon vorhanden ist ;-)), wird es eine API-Reference geben.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Wollte ich auch gerade vorschlagen :lol:

Jetzt weiß ich endlich, warum ich ein Unterprogramm zum Plugins erstellen vermisst habe, ich habe einen Ordner komplett unterschlagen und nur die Units im Unterordner "Examples" angesehen :autsch:

Btw: Kann ein Widget eigentlich ohne Plugin globale Shortcuts verwenden? Sonst schreibe ich da mal ein Plugin.

mfG,

Nein, globale Shortcuts gibt es noch nicht und sind auch nicht geplant. Daher wäre das als PlugIn natürlich wunderbar :)


henni - So 19.10.08 23:52

Kann man eigentlich auch Plugins schreiben, die bspw. die IDE erweitern?
Oder das Hauptformular?

@Hidden: auf meiner Homepage gibts jetzt alle meine Selbst programmierten Widgets und Plugins.
Dort findest du auch das neu Shutdown Widget in kleiner Version, es benötigt aber das Plugin Systemtools.
Der Link ist Hier [http://www.henning.dieterichs.lg-bs.de/~henning.dieterichs/Desktop%20Widget%20Engine%20by%20little%20Dave/].


Hidden - Mo 20.10.08 00:34

Hi,

Teste ich dann gleich mal. Kann dann aber leider heute kein Feedback abgeben, da der PC im Erfolgsfall dann unten ist :lol:

mfG,


littleDave - Mo 20.10.08 08:17

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Kann man eigentlich auch Plugins schreiben, die bspw. die IDE erweitern?
Oder das Hauptformular?

Das geht leider noch nicht, jedoch hab ich bereits eine Idee, wie ich das Hauptformular erweiterbar machen will. Ich hab mir vorgenommen, eine einfache abstrakte Komponente zu erstellen, die dann von einem PlugIn abgeleitet werden kann.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
@Hidden: auf meiner Homepage gibts jetzt alle meine Selbst programmierten Widgets und Plugins.
Dort findest du auch das neu Shutdown Widget in kleiner Version, es benötigt aber das Plugin Systemtools.
Der Link ist [url=http://www.henning.dieterichs.lg-bs.de/~henning.dieterichs/Desktop%20Widget%20Engine%20by%20little%20Dave/]Hier[/url].

Ich hab das PlugIn bereits ausprobiert und es funktioniert perfekt :). Jetzt ist die Frage, ob ich trotzdem die Shutdown-Funktion fest in das Programm einbauen soll oder das PlugIn herhalten soll!?! Will ja dein PlugIn nicht unnötig machen


henni - Mo 20.10.08 11:32

Zu deiner Frage: Ist mir eigentlich egal. Den Quelltext habe ich ja gepostet, dann musst du die kleine Arbeit, die Funktionen zu suchen, nicht nochmal machen. Ich denke mal, dein System, um die Funktionen zu erweitern, ist so ähnlich wie die Plugins.

Aber: mit meinem Plugin kann jetzt jedes beliebige Widget den Rechner herunterfahren.
Ich fände es toll, wenn jedes Plugin die Möglichkeit hat, Sicherheitsrichtlinien zu erstellen.
Bspw. dass es eine weitere Kategorie im Formular "Security Settings" gibt, die den Namen des Plugins hat, und man dort einstellen kann, ob das Widget den Rechner herunterfahren darf.

In der Umsetztung könnte es dann bspw. so aussehen, dass es eine Funktion wie "MainGetUnitName" gibt, die bspw. "MainGetSecurityPolicies" heißt, wo das Plugin ein Array von Richtlinien übergeben kann.
Die Richtlinien könnten dann z.b. "Shutdown PC" und "Suspend PC" heißen. Später kann das Plugin über eine Funktion wie "GetSecurityPolicies" wieder darauf zurückgreifen, indem es einen Index angibt. In diesem Fall hätte "Shutdown PC" den Index 1, "Suspend PC" den Index 2. Die Funktion gibt dann zurück, ob das Widget, dass gerade diese PluginFunktion nutzt, diese Sicherheitsrichtlinie aktiviert hat.
(So in etwa würde ich mir das vorstellen, sofern es umgesetzt wird. Vllt. gibts da was besseres, es soll nur eine Idee darstellen)

Und noch etwas: Ich benutze das Tool Dexpot, mit dem man mehrere virtuelle Desktops erzeugen kann.
Allerdings werden die Widgets nur auf einem Desktop angezeigt, es sei denn, man aktiviert die Option "Desktop Icon". Wenn man aber jetzt auf Desktop 2 ein Widget hinzufügt, bleibt es auch auf Desktop 2.
Das ist soweit sehr gut.
Doch wenn man die Sidebar neustartet, ist das Widget von Desktop 2 wieder auf Desktop 1. Ich denke mal, dieses Problem zu lösen ist sehr schwer, aber ich glaube, es benutzen doch recht viele PC-Benutzer virtuelle Desktops.
Aber mit der "Desktop Icon" Funktion macht mir das erstmal wenig aus. Nur leider kann ich so nicht einstellen, dass z.b. ein Widget speziell nur auf einem Desktop bleibt.
Ansonsten gefällt mir das Programm nach wie vor einfach sehr sehr gut!
Richtige Fehler sind mir bisher noch gar nicht aufgefallen!


Yogu - Mo 20.10.08 15:55

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Jetzt ist die Frage, ob ich trotzdem die Shutdown-Funktion fest in das Programm einbauen soll oder das PlugIn herhalten soll!?! Will ja dein PlugIn nicht unnötig machen

Ich fände es besser, wenn das ein PlugIn bleibt. Widgets sollten "von Haus aus" nur ungefährliche Funktionen aufrufen dürfen. Das macht sie ja gerade so einfach - man muss den Source eigentlich gar nicht anschauen, weil ja nicht viel passieren kann. Ein Widget-Virus ist daher sehr schwierig zu programmieren. Solange systemeingreifende Prozeduren in PlugIns ausgelagert sind. :)


littleDave - Mo 20.10.08 16:16

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Aber: mit meinem Plugin kann jetzt jedes beliebige Widget den Rechner herunterfahren.
Ich fände es toll, wenn jedes Plugin die Möglichkeit hat, Sicherheitsrichtlinien zu erstellen.
Bspw. dass es eine weitere Kategorie im Formular "Security Settings" gibt, die den Namen des Plugins hat, und man dort einstellen kann, ob das Widget den Rechner herunterfahren darf.

In der Umsetztung könnte es dann bspw. so aussehen, dass es eine Funktion wie "MainGetUnitName" gibt, die bspw. "MainGetSecurityPolicies" heißt, wo das Plugin ein Array von Richtlinien übergeben kann.
Die Richtlinien könnten dann z.b. "Shutdown PC" und "Suspend PC" heißen. Später kann das Plugin über eine Funktion wie "GetSecurityPolicies" wieder darauf zurückgreifen, indem es einen Index angibt. In diesem Fall hätte "Shutdown PC" den Index 1, "Suspend PC" den Index 2. Die Funktion gibt dann zurück, ob das Widget, dass gerade diese PluginFunktion nutzt, diese Sicherheitsrichtlinie aktiviert hat.
(So in etwa würde ich mir das vorstellen, sofern es umgesetzt wird. Vllt. gibts da was besseres, es soll nur eine Idee darstellen)

Über die Sicherheitsrichtlinien von PlugIns denk ich schon ewig drüber nach, hab aber noch keine wirkliche Idee dazu gehabt. Und einem böswilligen PlugIn (darf man ja leider nie ausschließen) werden die Sicherheitseinstellungen egal sein. Aber ich muss mir deine Idee nochmal genauer durchlesen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und noch etwas: Ich benutze das Tool Dexpot, mit dem man mehrere virtuelle Desktops erzeugen kann.
Allerdings werden die Widgets nur auf einem Desktop angezeigt, es sei denn, man aktiviert die Option "Desktop Icon". Wenn man aber jetzt auf Desktop 2 ein Widget hinzufügt, bleibt es auch auf Desktop 2.
Das ist soweit sehr gut.
Doch wenn man die Sidebar neustartet, ist das Widget von Desktop 2 wieder auf Desktop 1. Ich denke mal, dieses Problem zu lösen ist sehr schwer, aber ich glaube, es benutzen doch recht viele PC-Benutzer virtuelle Desktops.
Aber mit der "Desktop Icon" Funktion macht mir das erstmal wenig aus. Nur leider kann ich so nicht einstellen, dass z.b. ein Widget speziell nur auf einem Desktop bleibt.
Ansonsten gefällt mir das Programm nach wie vor einfach sehr sehr gut!
Richtige Fehler sind mir bisher noch gar nicht aufgefallen!

Wie funktioniert denn Dexpot genau? Emuliert es einfach nur mehrere Monitore oder setzt es einfach nur Visible := False bzw. Visible := True ? Zweite Variante werd ich nicht beheben können, bei der ersten wirds wahrscheinlich schon einfacher.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Jetzt ist die Frage, ob ich trotzdem die Shutdown-Funktion fest in das Programm einbauen soll oder das PlugIn herhalten soll!?! Will ja dein PlugIn nicht unnötig machen

Ich fände es besser, wenn das ein PlugIn bleibt. Widgets sollten "von Haus aus" nur ungefährliche Funktionen aufrufen dürfen. Das macht sie ja gerade so einfach - man muss den Source eigentlich gar nicht anschauen, weil ja nicht viel passieren kann. Ein Widget-Virus ist daher sehr schwierig zu programmieren. Solange systemeingreifende Prozeduren in PlugIns ausgelagert sind. :)

Hm, jetzt hab ich die Funktionen aber schon in das Hauptprogramm integriert :(. Jedoch ist der Security-Layer noch davorgeschaltet, der per Default-Einstellung das Herunterfahren verbietet. Der Benutzer muss erst manuell dem Widget das Recht geben, den PC neu zu starten. Da dies ja sehr schnell geht (über die Security-Settings), sind die Funktionen relativ gut geschützt und trotzdem schnell aktivierbar.

PS: ich schau, dass ich heute noch eine neue Version hochlade, ist schon wieder sehr viel neues zusammengekommen ;)


Hidden - Mo 20.10.08 18:48

Hi,

So, wie du es jetzt beschrieben hast, ist es ja erstmal noch sicherer als mit der DLL :zustimm:

Wenn es viele Sicherheitsbestimmungen gibt, sollten imho erst einmal alle default auf etwas wie "ask me" gestellt sein. Wenn ein Widget das versucht, kann man es auf "without asking" oder "surpress" stellen - oder es erst einmal bei "ask me" belassen und nur dieses Mal erlauben.

Ist zwar der jetzigen Einstellung sehr ähnlich, jedoch ein entscheidender Unterschied: Der User muss sich erstmal garnicht mit den Security Settings beschäftigen. Im Moment disable ich Sachen wie "read local files" erst einmal grundsätzlich.

mfG,


littleDave - Mo 20.10.08 19:20

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
So, wie du es jetzt beschrieben hast, ist es ja erstmal noch sicherer als mit der DLL :zustimm:

Wenn es viele Sicherheitsbestimmungen gibt, sollten imho erst einmal alle default auf etwas wie "ask me" gestellt sein. Wenn ein Widget das versucht, kann man es auf "without asking" oder "surpress" stellen - oder es erst einmal bei "ask me" belassen und nur dieses Mal erlauben.
.
Ich muss mal schauen, wie ich das mit der Security löse. Bisher war ja alles durch den Security-Layer sehr sicher. Jedoch ist der bei durch die PlugIns hilflos. Daher muss ich mir was anderes ausdenken.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ist zwar der jetzigen Einstellung sehr ähnlich, jedoch ein entscheidender Unterschied: Der User muss sich erstmal garnicht mit den Security Settings beschäftigen. Im Moment disable ich Sachen wie "read local files" erst einmal grundsätzlich.

Das musst du übrigens nicht machen, da es dafür noch zusätzlich eine Option in den Einstellungen des Programms gibt ("Widgets can access local files" ;-)).

@ALL: vor wenigen Sekunden habe ich Version 0.5.11 hochgeladen :party:

Dank den tollen Vorschlägen von euch ist diesmal sehr viel neues dazukommen. Zum einen hab ich eine Toolbar im Editor hinzugefügt, wodurch man jetzt schnelleren Zugriff auf die einzelnen Funktionen hat.

Auch den "Add-Widget-Dialog" hab ich etwas verbessert. Zum einen hab ich die Scrollbar etwas verbessert (hoffentlich), zum anderen werden jetzt inkompatible Widgets (Widgets, die nur mit höheren Versionen laufen) ausgeblendet.

Da viele ja mit dem Popup-Menü der Widgets noch Probleme hatten (nicht gefunden), hab ich die Standardeinstellung von Strg+Rechtsklick auf einen einfachen Rechtsklick geändert. Natürlich könnt ihr die Tastenkombination weiterhin jederzeit umstellen.

Für Henni hab ich jetzt außerdem noch eine weitere Property in TwgImage und allen davon abgeleiteten Komponenten eingebaut: eine DownGraphic (linke Maustaste gedrückt).

Für Kroko hab ich auch was: ich hoffe, dass die SideBar jetzt auch auf verschiedenen Monitoren platziert werden kann. Zwar verschieben sich angedockte Widgets noch nicht mit der SideBar an die neue Position, jedoch sollte das mit den Monitoren jetzt hoffentlich klappen. Um die Sidebar auf einem anderen Monitor anzuzeigen, musst du das Popup-Menü der SideBar öffnen - im Unterpunkt "Widget" gibt es jetzt einen neuen Eintrag "Monitor".

Ich hab mich auch mal hingesetzt und ein PlugIn geschrieben, mit dem man (hoffentlich) den WLAN-Empfang auslesen kann. Das ist aber noch komplett ungetestet, da ich erstes nicht dazu gekommen bin ein Widget für das PlugIn zu schreiben und zweites weil ich daheim kein WLAN habe.

Mit der wirklich tollen Mithilfe von Henni hab ich jetzt die Shutdown/Reboot/... -Funktionen fest in das Hauptprogramm eingebaut. Per Default kann ein Widget diese jedoch nicht ausführen (ausführen schon, nur passiert nichts ;-)). Die Optionen müssen vom Benutzer erst in den Security-Settings aktiviert werden.

Apropos Security-Settings: diese hab ich nun auch um einen Punkt erweitert: in den Security-Settings kann man jetzt sehen, welche PlugIns ein Widget benutzt.

Auch neu ist der StartParameter "-portable", mit dem man dem Programm sagen kann, dass alle Konfigurationen im Programmordner gespeichert werden sollen. Falls der Parameter mit angegeben wird, werden alle Pfadnamen in den Theme-Dateien relativ zum Programmverzeichnis gespeichert.

Und für Hidden hab ich auch noch was ;-). Ich hab mal das Edit etwas verbessert. Zwar kann man noch keinen Text selektieren, jedoch sollte das Edit jetzt komplett ausgenutzt werden, falls der Text länger als das Edit ist.

Und noch was neues: Widgets docken sich jetzt auch gegenseitig an (naja, kein docken, ein einfacher ScreenSnap halt). Dieses verhalten kann aber global in den Einstellungen abgeschaltet werden.

So, den Rest könnt ihr euch im kompletten ChangeLog im ersten Post anschauen.
Grüße
Dave


henni - Mo 20.10.08 22:10

Also wirklich super!
Die Scrollbar beim Widget-Dialog stimmt jetzt und ich finde es klasse, dass du jetzt einen Parameter hinzugefügt hast, um das ganze Protable machen zu können! Super!
Und ich finde es ebenfalls sehr gut, dass du die SystemInfo Unit erweitert hast!
Auch die Eigenschaft DownGraphic ist super nützlich!!

So, und jetzt ist mir doch wieder eine neue Verbesserung aufgefallen, vllt. kann ich direkt im Plugin ausschalten:
Ich habe jetzt ein Plugin programmiert, welches Widgets ermöglicht, Formulare anzeigen zu können.
Doch diese Formulare haben, wenn sie angezeigt werden, alle einen Taskbar-Eintrag. Doch wie kann ich diese Taskbar-Einträge verstecken?


littleDave - Mo 20.10.08 23:06

Wenn du das Formular von TForm ableitest, geht das ganz einfach.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TMyForm = class(TForm)
  { ... }
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  { ... }

implementation

procedure TMyForm.CreateParams(var Params: TCreateParams); override;
begin
  inherited;
  Params.ExStyle := Params.ExStyle and not WS_EX_APPWINDOW;
end;


henni - Di 21.10.08 12:16

Leider funktioniert dies nicht. Das Formular wird nach wie vor in der Taskbar angezeigt.
Auch das WLAN-Plugin geht bei mir leider nicht :(
Aber ansonsten funktioniert nach wie vor immer noch alles!
Und ich habe jetzt auch herausgefunden, warum das Bild [http://www.delphi-forum.de/download.php?id=9807] so aussieht:
ich habe das Programm "Visual Task Tips" [http://www.visualtasktips.com/], welches Screenshots von den Programmen macht, um sie nachher wieder anzeigen zu können (wie bei Vista). Ich denke, sobald es ein Screenshot von deiner Engine macht, sich alle Widgets so färben. Diese Färbung geht aber auch erst nach dem nächsten Repaint wieder weg! Also die Uhr ist davon so gut wie gar nicht betroffen, da sie sich sofort wieder neuzeichnet. Auch die CPU Anzeige zeichnet sich wieder neu. Allerdings bleibt der Kalender so, da er übe keinen Timer verfügt, der ein Regelmäßiges neuzeichnen hervorruft.
Es wäre also gut, wenn man über F5 oder über irgendeine Option alle Widgets neu zeichnen lassen könnte.


Fabian E. - Di 21.10.08 13:14

Zum Neuchzeichnen würde ich vorschlagen, dass man in den Optionen einen Aktualisierungsintervall angeben kann. Wenn der abgelaufen ist wird jedes Widget benachrichtigt und kann eigene Methoden aufrufen. Dort könnte man dann auch einstellen wie oft z.B. die WLan-Stärke aktualisiert wird.


Hidden - Di 21.10.08 17:40

Toll, lade die neue Version direkt runter :) Das mit dem Edit klingt ja schonmal toll. Ich glaube das hat nichtmal Windows immer :mrgreen:

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ist zwar der jetzigen Einstellung sehr ähnlich, jedoch ein entscheidender Unterschied: Der User muss sich erstmal garnicht mit den Security Settings beschäftigen. Im Moment disable ich Sachen wie "read local files" erst einmal grundsätzlich.

Das musst du übrigens nicht machen, da es dafür noch zusätzlich eine Option in den Einstellungen des Programms gibt ("Widgets can access local files" ;-)).
Aber, sobald ich es einem Widget erlauben will, muss ich das ;)

mfG,


elundril - Di 21.10.08 17:45

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Zum Neuchzeichnen würde ich vorschlagen, dass man in den Optionen einen Aktualisierungsintervall angeben kann. Wenn der abgelaufen ist wird jedes Widget benachrichtigt und kann eigene Methoden aufrufen. Dort könnte man dann auch einstellen wie oft z.B. die WLan-Stärke aktualisiert wird.


kann man nicht die wm_paint message abfangen und das an die widgets weiterleiten und verarbeiten?!? müsst doch auch gehen oder?


littleDave - Di 21.10.08 18:01

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Auch das WLAN-Plugin geht bei mir leider nicht :(

Ich konnte das WLAN-PlugIn leider nicht testen - mangels vorhandener WLAN-Karte :?. Aber ich werd das PlugIn wahrscheinlich noch umschreiben.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Aber ansonsten funktioniert nach wie vor immer noch alles!

Das ist gut

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und ich habe jetzt auch herausgefunden, warum das Bild [http://www.delphi-forum.de/download.php?id=9807] so aussieht:
ich habe das Programm "Visual Task Tips" [http://www.visualtasktips.com/], welches Screenshots von den Programmen macht, um sie nachher wieder anzeigen zu können (wie bei Vista). Ich denke, sobald es ein Screenshot von deiner Engine macht, sich alle Widgets so färben. Diese Färbung geht aber auch erst nach dem nächsten Repaint wieder weg! Also die Uhr ist davon so gut wie gar nicht betroffen, da sie sich sofort wieder neuzeichnet. Auch die CPU Anzeige zeichnet sich wieder neu. Allerdings bleibt der Kalender so, da er übe keinen Timer verfügt, der ein Regelmäßiges neuzeichnen hervorruft.
Es wäre also gut, wenn man über F5 oder über irgendeine Option alle Widgets neu zeichnen lassen könnte.

Hm, da werd ich mal schauen, wie ich das lösen kann. Jedoch ist das ein spezielles Problem von dir, wodurch ich das leider auf eine etwas niedrigere Priorität setzen werden. Im Moment arbeite ich an einer Webpage, bei der ihr eure Widgets und PlugIns hochladen könnt. Jedoch hab ich damit erst gestern angefangen, wodurch das noch etwas dauert. Im Anhang hab ich mal nen Screenshot vom aktuellen Design. Danach kommt dann endlich, dass ein Widget mehrere Forms haben kann.

user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Zum Neuchzeichnen würde ich vorschlagen, dass man in den Optionen einen Aktualisierungsintervall angeben kann. Wenn der abgelaufen ist wird jedes Widget benachrichtigt und kann eigene Methoden aufrufen. Dort könnte man dann auch einstellen wie oft z.B. die WLan-Stärke aktualisiert wird.

Das find ich nicht so dolle, denn ich will, dass die Widgets so viel wie möglich eigenständig machen (müssen). Daher -> hm

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ist zwar der jetzigen Einstellung sehr ähnlich, jedoch ein entscheidender Unterschied: Der User muss sich erstmal garnicht mit den Security Settings beschäftigen. Im Moment disable ich Sachen wie "read local files" erst einmal grundsätzlich.

Das musst du übrigens nicht machen, da es dafür noch zusätzlich eine Option in den Einstellungen des Programms gibt ("Widgets can access local files" ;-)).
Aber, sobald ich es einem Widget erlauben will, muss ich das ;)

Ok, dann schon.

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFabian E. hat folgendes geschrieben Zum zitierten Posting springen:
Zum Neuchzeichnen würde ich vorschlagen, dass man in den Optionen einen Aktualisierungsintervall angeben kann. Wenn der abgelaufen ist wird jedes Widget benachrichtigt und kann eigene Methoden aufrufen. Dort könnte man dann auch einstellen wie oft z.B. die WLan-Stärke aktualisiert wird.


kann man nicht die wm_paint message abfangen und das an die widgets weiterleiten und verarbeiten?!? müsst doch auch gehen oder?

Ne, geht nicht, da es keine WM_PAINT - Message gibt, sind Layered-Windows, die bekommen keine Paint-Message.


henni - Di 21.10.08 18:05

Also das Design sieht cool aus!


Hidden - Di 21.10.08 18:13

Hi,

Jetzt hab' ich doch glatt die Hälfte vergessen. Ich werd' auch immer aläter :roll: mal sehen, wie viel ich noch weiß, wenn ich am ersten Punkt bin :lol:

@hennis Problem: Ich habe die Engine letztens mal auf einem Uralt-PC bei unserer Robot-AG getestet(die sind so alt, einer davon hat noch nichtmal USB und alle haben sie noch ein Diskettenlaufwerk). Dabei gab es ekelhaft-grüne Schleier, wenn man mit der Maus über ein Widget fuhr. Wurde dann aber abgelenkt; am Freitag gibt es Screenshots.

Was war jetzt das zweite.. 8)

Ach ja, DLL: Solange es dort noch keine Form von Sicherheit gibt(unter uns: Mit einer normalen Exe kann ja auch nicht mehr passieren als mit einem ungesicherten Widget + DLL, oder?), würde ich eigentlich empfehlen, den Quelltext der DLL, statt der fertig-compillierten Version, anzuhängen(hier im Forum vertraue ich aber eigentlich erst einmal allen).

E: @Netork traffic-Widget: Was hältst du von einer Farbsymbolik, wie folgt: Traffic im Verhältnis zu Maximalauslastung. Hoch: rot. passabel: gelb. viel potential: grün

E2: Man kann jetzt also einfach beim Shutdown-Widget die uses entfernen. (getestet, compilliert.. mal sehen, fahr jetzt damit runtern. Melde mich hier, sollte es nicht gehen).

E3: Btw, was ich shcon immer fragen wollte. Wie zum Teufel erstellt man den Preview im "Add Widget"-Fenster?^^ Bei meinen Widgets ist der immer so lange leer, bis ich es starte.

E4: Ich bin mit der Variablität von Widgets bezüglich ihrer Größe ehrlichgesagt noch nicht so ganz zufrieden :) Solange man nicht die Sidebar benutzt, müssen diese(OnTop-Widgets) sich ja möglichst flexibel in ein Programmfenster einfügen.

Im Moment haben Widgets aber noch eine feste Größe und lassen sich nicht, wie von anderen fenstern gewöhnt, am Fensterrand ein Stückchen größer oder kleiner schieben.

Das Widget ist zwar samt Design-Teil Open Source und damit individuell verstellbar; dann muss aber immer der Editor geöffnet werden, das Widget - nicht an Ort und Stelle - verkleinert oder -größert werden etc. pp. Richtig problematisch wird das aber erst bei Widgets wie der Digital Clock(da müssten ja 9 Images größenveriiert werden.

Die Problematik ist mir bewusst. Wäre aber schön, wenn du es hinbekommen würdest, dass Widgets grundsätzlich an den Rändern größer und kleinergeschoben werden können. Das sollte dann praktisch eine zentrische Streckung, die alle Komponenten und Bilder auf dem Widget betrifft.

Wenn du die Größeneinstellung dann noch mit abspeicherst, wäre ich dir auf ewig dankbar(eine andere Steigerung ist schlecht noch möglich, jetzt :mrgreen:)

mfG,


littleDave - Mi 22.10.08 05:01

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ach ja, DLL: Solange es dort noch keine Form von Sicherheit gibt(unter uns: Mit einer normalen Exe kann ja auch nicht mehr passieren als mit einem ungesicherten Widget + DLL, oder?), würde ich eigentlich empfehlen, den Quelltext der DLL, statt der fertig-compillierten Version, anzuhängen(hier im Forum vertraue ich aber eigentlich erst einmal allen).

Also im Moment ist es so: wenn ein neues Widget gestartet werden soll und dieses Widget (ein) PlugIn(s) benötigt, dann wird der Benutzer vorher gefragt, ob er das Widget laden will. Wenn wenn er dann nein sagt, wird das Widget nicht geladen.
Und ein böswilliges PlugIn würde alle "Sicherheits-Einstellungen" sowieso ignorieren, somit ist das bisherige System schon etwas sicherer.
Jedoch fällt mir gerade noch eine kleine Lücke ein: im Moment wird die Initialisierung-Funktion in den PlugIns immer ausgeführt, auch wenn das PlugIn nicht benutzt wird. Das werd ich aber mit der nächsten Version auch ändern (also nicht in der, die ich gerade hochgeladen habe, sondern in der nächsten Version)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: @Netork traffic-Widget: Was hältst du von einer Farbsymbolik, wie folgt: Traffic im Verhältnis zu Maximalauslastung. Hoch: rot. passabel: gelb. viel potential: grün

Hm, mal schauen, ob ich das einbaue. Wenn nicht, kannst du ja eben selbst eins schreiben ;-).

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E3: Btw, was ich shcon immer fragen wollte. Wie zum Teufel erstellt man den Preview im "Add Widget"-Fenster?^^ Bei meinen Widgets ist der immer so lange leer, bis ich es starte.

Dafür musst du erst ein Screenshot erstellen - jedoch hab ich das schon eingebaut. Einfach das Widget im Editor starten und dann unter "Project" den Menüpunkt "Create Widget Screenshot" auswählen. Dann noch speichern und fertig.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E4: Ich bin mit der Variablität von Widgets bezüglich ihrer Größe ehrlichgesagt noch nicht so ganz zufrieden :) Solange man nicht die Sidebar benutzt, müssen diese(OnTop-Widgets) sich ja möglichst flexibel in ein Programmfenster einfügen.

Im Moment haben Widgets aber noch eine feste Größe und lassen sich nicht, wie von anderen fenstern gewöhnt, am Fensterrand ein Stückchen größer oder kleiner schieben.

Das Widget ist zwar samt Design-Teil Open Source und damit individuell verstellbar; dann muss aber immer der Editor geöffnet werden, das Widget - nicht an Ort und Stelle - verkleinert oder -größert werden etc. pp. Richtig problematisch wird das aber erst bei Widgets wie der Digital Clock(da müssten ja 9 Images größenveriiert werden.

Die Problematik ist mir bewusst. Wäre aber schön, wenn du es hinbekommen würdest, dass Widgets grundsätzlich an den Rändern größer und kleinergeschoben werden können. Das sollte dann praktisch eine zentrische Streckung, die alle Komponenten und Bilder auf dem Widget betrifft.

Wenn du die Größeneinstellung dann noch mit abspeicherst, wäre ich dir auf ewig dankbar(eine andere Steigerung ist schlecht noch möglich, jetzt :mrgreen:)

Also das "auf ewig dankbar" lass ich mir natürlich nicht entgehen :mrgreen:. Ich hab gerade die Möglichkeit eingebaut, Widgets zu skalieren 8). Dafür musst du dann einfach in der nächsten Version das Widget im Hauptfenster auswählen und dann erscheint unten eine Trackbar, mit der du das Widget stufenlos zwischen 25% und 300% skalieren kannst. Natürlich wird die Skalierung dann auch in den einzelnen Themes und in den Widgets gespeichert.
Zusätzlich gibt es noch eine weitere Komponente, die man einfach auf die Form droppen muss. Diese Komponente musst du dann einfach nur an der gewünschten Position positionieren und dann kann sich das Widget selber skalieren.
Grundsätzlich kannst du dann jedes Widget (bis auf Sidebars) von der Größe her anpassen. Das skalieren kostet zwar etwas Rechenpower, aber das kann ich leider nicht verhindern. Und da ich ein ganz lieber bin, hab ich gerade extra für dich die aktuelle Version hochgeladen. Somit kannst du das gleich mal ausprobieren 8).

@All: Version 0.5.12 ist nun online :party:
Download und ChangeLog sind im ersten Post zu finden.

Grüße
Dave


Hidden - Mi 22.10.08 13:08

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E3: Btw, was ich shcon immer fragen wollte. Wie zum Teufel erstellt man den Preview im "Add Widget"-Fenster?^^ Bei meinen Widgets ist der immer so lange leer, bis ich es starte.

Dafür musst du erst ein Screenshot erstellen - jedoch hab ich das schon eingebaut. Einfach das Widget im Editor starten und dann unter "Project" den Menüpunkt "Create Widget Screenshot" auswählen.
War ich also noch blind :mrgreen: dachte mir schon so etwas :D

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Zusätzlich gibt es noch eine weitere Komponente, die man einfach auf die Form droppen muss. Diese Komponente musst du dann einfach nur an der gewünschten Position positionieren und dann kann sich das Widget selber skalieren.
Okay, mit der deutschen Sprache komme ich jetzt nichmehr hin. Ich bitte, dies zu entschuldigen, ist sonst nicht so meine Art :P

:flehan: Awesome :zustimm:

*Aus seinem xkcd-Widget 20 Zeilen halbgeschriebenen Code durch eine Komponente ersetzt* ^^

E: könntest du unter "Add widget" ein Popup-Menü unter Rechtsklick einführen? Habe z.B. zwei Shoutcast Radio und muss jetzt die Windows-Suche verwenden, um das zweite zu finden und zu löschen.
E2: Ah, hatte es umbenannt und verändert. Habe das nicht erkannt, weil im AddWdg-Dialog ja der interne Name des Widgets verwendet wird(was ja auch richtig so ist :))^^

Könntest du den Menüpunkt "Screenshot erstellen" auch außerhalb der Laufzeit anzeigen - nur halt vergraut und mit Hint oder so, dass das nur während eines Testruns möglich ist. Ich persönlich habe die Funktion TestRun eher selten verwendet, sondern gleich unter Realbedingungen getestet, weshalb ich den nie gefunden habe.

E3: (Ja, es sammelt sich was :mrgreen:) Ich habe gerade das Shutdown-Widget neu heruntergeladen, da meine Größenveränderungen unnötig geworden sind. Jetzt fehlt ja das Plugin formal erstmal(gelöscht, da die Funktionen in der Engine sind). Die Meldung, dass ein Plugin fehlt, könntest du dahingehend präzisieren, welches ;) (habe es jetzt einfach aus den Uses gelöscht und alles ist kein Problem :)

mfG,


passiv - Mi 22.10.08 14:15

die sidebar bereitet probleme: im modus Desktop-Icon ist im falle eines neustarts die bar über den widgets. und da kann man sie ja nicht mal sinnvoll erreichen, ohne umstände. das gleiche passiert, wenn man die sidebar mal neu lädt (zum beispiel, wenn man die width auf 170 setzt :roll: :wink: ).
was mich gleich zum zweiten punkt bringt: wieso ist die sidebar nicht skalierbar? also eh nur in horizontaler richtung ...
und der skalieren-schieber steht nicht in der mitte, sondern bei einem viertel der laufbahn, was verwirrend aussieht. vorallem, weil das label 100% bei der hälfte steht :wink:

sonst wieder mal: super gut *tätschel-damit-er-nicht-aufhört* :lol: :zustimm:


Hidden - Mi 22.10.08 14:30

Hi,

Kommt es mir nur so vor oder wird beim Beenden nicht immer gefragt, ob die Einstellungen behalten werden sollen? *alles neu macht* ist ein wenig ärgerlich, wenn man ohne Speichern herunterfährt ;)

Beim Zooming wird leider alle Schrift unscharf, liegt aber wohl am Ansatz und lässt sich nicht so einfach vermeiden..

mfG,


passiv - Mi 22.10.08 15:11

sicher speicher ich mein theme ab :D . es passiert trotzdem. und dann muss man erst wieder die widgets extra laden :? aber ich seh grad, das dürft sich mit dem aktuellen update erledigt haben :oops:
nur der rainlendar versteckt sich dahinter, was ja nun wirklich kein problem ist :wink:

und danke für die widget-to-widget-dock-funktion!


littleDave - Mi 22.10.08 16:08

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: könntest du unter "Add widget" ein Popup-Menü unter Rechtsklick einführen? Habe z.B. zwei Shoutcast Radio und muss jetzt die Windows-Suche verwenden, um das zweite zu finden und zu löschen.
E2: Ah, hatte es umbenannt und verändert. Habe das nicht erkannt, weil im AddWdg-Dialog ja der interne Name des Widgets verwendet wird(was ja auch richtig so ist :))^^

Ich versteh noch nicht so ganz, was für Punkte in das Popup-Menü reinkommen sollen :gruebel:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Könntest du den Menüpunkt "Screenshot erstellen" auch außerhalb der Laufzeit anzeigen - nur halt vergraut und mit Hint oder so, dass das nur während eines Testruns möglich ist. Ich persönlich habe die Funktion TestRun eher selten verwendet, sondern gleich unter Realbedingungen getestet, weshalb ich den nie gefunden habe.

Der Menüpunkt wird doch dargestellt - er ist halt nur deaktiviert.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E3: (Ja, es sammelt sich was :mrgreen:) Ich habe gerade das Shutdown-Widget neu heruntergeladen, da meine Größenveränderungen unnötig geworden sind. Jetzt fehlt ja das Plugin formal erstmal(gelöscht, da die Funktionen in der Engine sind). Die Meldung, dass ein Plugin fehlt, könntest du dahingehend präzisieren, welches ;) (habe es jetzt einfach aus den Uses gelöscht und alles ist kein Problem :)

Seid Version 0.5.11 werden erst erweiterte Information in das Widget gespeichert. Dazu gehört auch, welche PlugIns es genau benötigt (also den Namen und welche Version). Widgets, die mit älteren Version erstellt bzw. zum letzten mal gespeichert wurden, enthalten diese Informationen noch nicht. Daher hast du es noch nicht mitbekommen können, da auch der Name des benötigten PlugIns jetzt angezeigt wird ;-).

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
die sidebar bereitet probleme: im modus Desktop-Icon ist im falle eines neustarts die bar über den widgets. und da kann man sie ja nicht mal sinnvoll erreichen, ohne umstände. das gleiche passiert, wenn man die sidebar mal neu lädt (zum beispiel, wenn man die width auf 170 setzt :roll: :wink: ).

Das konnte ich gerade bei mir reproduzieren und hab das Problem bereits gelöst. In der nächsten Version wird das nicht mehr vorkommen.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
was mich gleich zum zweiten punkt bringt: wieso ist die sidebar nicht skalierbar? also eh nur in horizontaler richtung ...

Naja, das Problem ist, dass das erstellen des Sidebar-Bereiches sehr lange dauert (von Windows aus), daher hab ich es erstmal nicht zugelassen. Aber ich kann mal schauen, ob ich nicht doch noch ne gute Möglichkeit finde.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
und der skalieren-schieber steht nicht in der mitte, sondern bei einem viertel der laufbahn, was verwirrend aussieht. vorallem, weil das label 100% bei der hälfte steht :wink:

Also das mit dem zentrierten kann ich nachvollziehen. Ich habs für die nächste Version so geändert: statt nur "100%" steht jetzt im oberen Label "current: xxx%" - was hoffentlich nicht mehr so verwirrend ist

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
sonst wieder mal: super gut *tätschel-damit-er-nicht-aufhört* :lol: :zustimm:

danke - hat geholfen :)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Kommt es mir nur so vor oder wird beim Beenden nicht immer gefragt, ob die Einstellungen behalten werden sollen? *alles neu macht* ist ein wenig ärgerlich, wenn man ohne Speichern herunterfährt ;)

Also das Skalieren zählt in der aktuellen Version noch nicht zu einem "Theme Changed". Jedoch hab ich das für die nächste Version bereits geändert.
Beim Herunterfahren wird tatsächlich nicht gespeichert. Das liegt aber an einem eigenen Problem bei mir: wenn ich am abend mal nen Film zum einschlafen anschauen will, dann lass ich den PC automatisch herunterfahren. Wenn dann noch der Dialog zum Speichern des Themes kommt, wird der PC nicht heruntergefahren :( - bisher war ich zu faul eine Einstellung dafür mit einzubauen. Jedoch hab ich das für die nächste Version bereits eingebaut.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Beim Zooming wird leider alle Schrift unscharf, liegt aber wohl am Ansatz und lässt sich nicht so einfach vermeiden..

Der User kann aber in der nächsten Version anpassen, in welcher Qualität das Skalieren passieren soll. Somit kann er auch indirekt die Schrift beeinflussen.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
und danke für die widget-to-widget-dock-funktion!

Kein Problem ;-)


Hidden - Mi 22.10.08 19:39

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Ich versteh noch nicht so ganz, was für Punkte in das Popup-Menü reinkommen sollen :gruebel:



user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Der Menüpunkt wird doch dargestellt - er ist halt nur deaktiviert.
:oops:

mfG,


littleDave - Mi 22.10.08 20:10

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
  • löschen

Und wenn man keine Schreibrechte im Ordner hat? Naja, obwohl - die kann ich ja überprüfen. Ok, ist akzeptiert

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
  • editieren

Das ist natürlich auch noch eine gute Idee :zustimm:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
  • Security Settings(nach dem hinzufügen ist es ja im Extremfall zu spät, um die Rechte wegzunehmen). Kann, muss aber nicht

Also bei neuen Widgets werden die Security-Settings auf ein definierten Standard gesetzt, der auf volle Sicherheit ausgelegt ist: Kein Schreiben/Löschen im Dateisystem, Systemfunktionen deaktiviert und keinen Zugriff aufs Internet ohne dass der Benutzer sein OK gibt. Vor neuen Widgets, die ein PlugIn benötigigen wird vor dem Ausführen ebenfalls noch ein Dialog angezeigt. Daher wird der Extremfall nicht eintreten.
Aber ich werd diesen Eintrag auch noch einbauen, hast mich trotzdem überzeugt ;-)


Xentar - Mi 22.10.08 20:17

Habs mir mal kurz angeschaut. Großes Lob von mir, gefällt mir, auch wenn ich selber so wenig wie möglich auf dem Desktop habe.

Was ich noch cool fände als mitgeliefertes Widget wäre eine Art Systeminfo, wo so Sachen drinstehen wie Rechnername, IP Adressen, vielleicht noch HDD Kapazität usw. wenn möglich einzeln auswählbar?


littleDave - Do 23.10.08 17:58

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Habs mir mal kurz angeschaut. Großes Lob von mir, gefällt mir, auch wenn ich selber so wenig wie möglich auf dem Desktop habe.

Danke für dein Feedback :)

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Was ich noch cool fände als mitgeliefertes Widget wäre eine Art Systeminfo, wo so Sachen drinstehen wie Rechnername, IP Adressen, vielleicht noch HDD Kapazität usw. wenn möglich einzeln auswählbar?

Das ist sogar schon möglich bzw. diese Informationen kann man mit den Widgets bereits auslesen. Jedoch hab ich bisher nicht die Zeit dazu gefunden, ein Widget dafür zu schreiben. Ich werd mich aber mal die Tage hinsetzen.

@All: Version 0.6 ist nun online :party: :party:


Ach noch was: es ist sehr wichtig, dass ihr alle bereits existierende Widgets durch die Widgets ersetzt, die bereits mit dabei sind.

Der komplette ChangeLog sowie der Download befindet sich im ersten Post.
Grüße
Dave


henni - Do 23.10.08 18:06

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Ach noch was: es ist sehr wichtig, dass ihr alle bereits existierende Widgets durch die Widgets ersetzt, die bereits mit dabei sind.

Heißt dass, dass die selbst geschriebenen Plugins nicht mehr funktionieren?
Aber ansonsten schön, dass es wieder eine neue Version gibt ;)


littleDave - Do 23.10.08 18:08

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Ach noch was: es ist sehr wichtig, dass ihr alle bereits existierende Widgets durch die Widgets ersetzt, die bereits mit dabei sind.

Heißt dass, dass die selbst geschriebenen Plugins nicht mehr funktionieren?
Aber ansonsten schön, dass es wieder eine neue Version gibt ;)

Doch, die funktionieren weiterhin wie gewohnt. Jedoch hab ich noch eine wichtige Zusatzinformation in die Widgets eingebaut. Diese Zusatzinformation dient zur besseren Zuordnung der Security-Settings zu den Widgets. Diese Information wird automatisch vom Editor hinzugefügt. Ich wollt nur, dass diese Informationen in meinen Widgets auch schon mit dabei sind.


Hidden - Do 23.10.08 18:14

Also sprich: Neu compillieren reicht. Wäre btw. doch einen Menüpunkt wert, oder? Sonst müssten prinzipiell nach jeder Änderung alle neu heruntergeladen werden. Also Menüpunkt "recompile all widgets".

mfG,


littleDave - Do 23.10.08 18:18

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Also sprich: Neu compillieren reicht. Wäre btw. doch einen Menüpunkt wert, oder? Sonst müssten prinzipiell nach jeder Änderung alle neu heruntergeladen werden. Also Menüpunkt "recompile all widgets".

Ne, nichtmal neu kompilieren musst du. Einfach im Editor öffen und speichern drücken


Hidden - Do 23.10.08 20:00

Hi,

Ich habe mir gerade etwas überlegt: Wäre es möglich, im Widget-Editor komplett mit einer Kopie des Widgets im Arbeitsspeicher der Engine zu arbeiten? Dann beim Speichern ein Hinweis, dass das Widget zuerst beendet und danach neu gestartet wird - mit "ok" und "Änderungen verwerfen".

Das würde die Lästigkeit beseitigen, dass man ein Widget nicht benutzen kann, während man daran schreibt.

E: Ich versuche gerade, es so einzurichten, dass man clipboards zusammenfügen kann, indem man eines per DragNDrop in ein anderes zieht. Dabei bin ich auf die Mehtode mainform.ComponentAtPos(x, y, root); gestoßen; was bedeutet dabei root(Delpi kennt die Methode laut Hilfe nicht..)

mfG,


littleDave - Fr 24.10.08 00:50

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe mir gerade etwas überlegt: Wäre es möglich, im Widget-Editor komplett mit einer Kopie des Widgets im Arbeitsspeicher der Engine zu arbeiten? Dann beim Speichern ein Hinweis, dass das Widget zuerst beendet und danach neu gestartet wird - mit "ok" und "Änderungen verwerfen".

Das würde die Lästigkeit beseitigen, dass man ein Widget nicht benutzen kann, während man daran schreibt.

Mal schauen, ob und wie ich das lösen kann ... mal schauen.
Apropos Arbeitsspeicher: Ich bin gerade dabei die Memory-Auslastung zu senken. Ich hab es dabei schon extrem weit geschafft (zwischen 30% - 70% !, je nach dem welche und wieviele Widgets geladen sind).

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Ich versuche gerade, es so einzurichten, dass man clipboards zusammenfügen kann, indem man eines per DragNDrop in ein anderes zieht. Dabei bin ich auf die Mehtode mainform.ComponentAtPos(x, y, root); gestoßen; was bedeutet dabei root(Delpi kennt die Methode laut Hilfe nicht..)

Diese Methode solltest du nicht verwenden, da mit der auch nicht sichtbare Komponenten gefunden werden (inklusive Komponenten ohne Display, z.B. wgHTTP). Du solltest eher die Funktion TwgControl.GetControlAtPos(x, y: integer; TwgControl = nil; IgnoreMouse: boolean = False) verwenden.
Setze für "root" einfach "nil" ein - dann bekommst du die komponente an Position x,y. Du kannst für "Root" auch eine bestimme Komponente angeben, ab der gesucht werden soll. Jedoch musst du dann x und y noch umrechnen:

Delphi-Quelltext
1:
xyz := mainform.GetControlAtPos(x - root.AbsoluteLeft(root.Left), y - root.AbsoluteTop(root.Top), Root, False)                    

Wenn du IgnoreMouse auf "True" setzt, werden auch nicht sichtbare Controls gefunden.


littleDave - Fr 24.10.08 16:20

Sorry für den Push, jedoch hab ich gerade Version 0.61 hochgeladen :beer:

Wie ich im letzen Post bereits erwähnt hatte, hab ich den Memory-Verbrauch sehr gesenkt. Besonders Widgets, die das gleiche Bild in mehreren Graphics benutzen, profitieren von der Änderung. Bisher wurde jedes Bild seperat geladen, jetzt werden sie in einem Shared-Cache zwischengespeichert und sind somit jetzt nur noch einmal pro Widget im Arbeitsspeicher. Bilder, die aus dem Internet heruntergeladen wurden funktionieren weiterhin und werden nicht zwischengespeichert.

Außerdem hab ich jetzt den "Snap-To-Widget-Abstand" einstellbar gemacht. Dabei ist mir aufgefallen, dass es noch ein paar kleine Probleme beim "Widgets snap to Widgets" gab. Diese hab ich jetzt behoben.

Auch ein wichtiges Security-Attribut hab ich angepasst: Im TwgNetworkPlayer wurden alle übergebenen URLs als Internet-URLs angesehen. Jedoch unterstützt der Player auch lokale Dateien. Wenn man also eine lokale Datei übergeben hat, wurde diese auch geöffnet, auch wenn das Widget keinen Zugriff auf lokale Dateien haben soll. Ich hab nun außerdem noch den Network-Player angepasst: nun können lokale Dateien einfach per Drag&Drop auf das Widget geschoben werden - diese werden dann gleich abgespielt.

Im Zuge der Memory-Optimierung hab ich mir nochmal die Scale-Widget-Funktion angeschaut und auch noch ein wenig optimiert.

Eine weitere Neuigkeit ist, dass man jetzt auch die SideBar skalieren kann. Wenn man im Hauptfenster jetzt die SideBar auswählt, sieht man auch das Skalieren-Panel. Jedoch gibt es bei der SideBar noch eine Besonderheit: im Skalier-Panel gibt es dann einen weiteren Knopf: "Apply". Beim Skalieren der Sidebar wird erstmal nur das Fenster und nicht der SideBar-Bereich angepasst. Sobald man dann auf "Apply" klickt, wird der SideBar-Bereich an das Widget angepasst. Dies musst ich so machen, da das Erstellen der SideBar von Windows aus relativ lange dauert.
Und wo ich gerade bei der SideBar: Das Laden der SideBar hab ich nun extra für die SideBar etwas verändert: bisher war es so, dass die SideBar sowie der dazugehörige SideBar-Bereich beim Start sofort geladen wird. Das SideBar-Widget läd erst danach die letzte Konfiguration und muss dann somit den SideBar-Bereich erst wieder freigeben um ihn dann nochmal neu zu erstellen. Dies hab ich jetzt so geändert, dass der SideBar-Bereich erst nach der InitializeWidget-Funktion erstellt wird.

Als ich mit der SideBar rumexperimentiert hatte, ist mir aufgefallen, dass ich die SideBar nur über das Popup-Menü des Widgets woanders positionieren kann. Das hat mich dann doch etwas genervt und ich hab jetzt den Menüpunkt "Widget" aus dem Widget-Popup jetzt auch in das Popup-Menü im Hauptfenster mit eingebaut.

So, das wars auch schon wieder :mrgreen:
Download sowie der komplette ChangeLog befinden sich im ersten Post.
Grüße
Dave


Hidden - Fr 24.10.08 17:24

Hi,

Ich bin heute dermaßen beschäftigt gewesen, dass ich nur einen Screenshot habe - und dazu musste ich schon jemanden abkommandieren(auf diesem Stick das programm da.. :lol:)

Da bin ich in 2 Stunden noch nicht einmal dazu gekommen, die Windows-Version auszulesen :mrgreen: Glaube aber es handelt sich um Windows 2000.

Im Anhang der Screenshot. Wie gesagt: Auf dem alten Computer muss es nicht laufen. vermute aber hinter diesen ekelhaften Schleiern ein generelleres Problem.

E: Die Schleier enstehen, wenn man mit der Maus über das Widget fährt. Dabei wird ein Kasten um den Mauszeiger vergrünt™ :mrgreen:

E2: Schlage vor, den AddWidget-Dialog maximiert zu starten. Man sieht sonst so wenige Widgets ;)

E3: Ich gebe gerade der Sidebar nochmal eine Chance.. Also als Desktop-Icon schiebt sie sich nach wie vor vor andere Desktop Icons. Mit Always on Top verdeckt sie die Trayicons. Gut, kein Problem: Mouse Events deaktivieren und man kann durchklicken(ungetestet) ;)

mfG,


Yogu - Fr 24.10.08 17:39

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Glaube aber es handelt sich um Windows 2000.

Ist 2000. Die Symbole gab es unter '98 noch nicht, und XP hat ein geglättetes Start-Symbol. ;)

Edit: ME könnt's auch sein. Damit kenn ich mich nicht aus.


littleDave - Sa 25.10.08 04:04

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich bin heute dermaßen beschäftigt gewesen, dass ich nur einen Screenshot habe - und dazu musste ich schon jemanden abkommandieren(auf diesem Stick das programm da.. :lol:)

Da bin ich in 2 Stunden noch nicht einmal dazu gekommen, die Windows-Version auszulesen :mrgreen: Glaube aber es handelt sich um Windows 2000.

Im Anhang der Screenshot. Wie gesagt: Auf dem alten Computer muss es nicht laufen. vermute aber hinter diesen ekelhaften Schleiern ein generelleres Problem.

E: Die Schleier enstehen, wenn man mit der Maus über das Widget fährt. Dabei wird ein Kasten um den Mauszeiger vergrünt™ :mrgreen:

Also ich hab mir den Screenshot mal angeschaut und konnte leider nicht sagen woran das liegt. Der Screenshot könnte Win2000, aber auch WinME sein (wie Yogu bereits gesagt hat). WinME kann ich mir irgendwie nicht vorstellen, da mein Programm die Funktion "UpdateLayeredWindow" benutzt und diese laut MSDN erst ab Windows 2000 vorhanden ist.
Aber nochmal zu dem Screenshot: Kann es sein, dass der Desktop auf 16-Bit Farbtiefe gelaufen ist? Das könnte das Problem vielleicht erklären. Jedoch möchte ich da keine Garantien abgeben, da ich keine Möglichkeit habe, das Programm unter Windows 2000 zu testen. Yogu hat die Möglichkeit, jedoch hab ich noch keine Info von ihm bekommen, dass etwas falsch dargestellt wird (oder ich hab die Info gerade vergessen ;-)).

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E2: Schlage vor, den AddWidget-Dialog maximiert zu starten. Man sieht sonst so wenige Widgets ;)

Ich werd in der nächsten die letzte Position und Größe des Dialogs speichern, somit wird das danach nicht mehr das Problem sein ;-) (hoffe ich)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E3: Ich gebe gerade der Sidebar nochmal eine Chance.. Also als Desktop-Icon schiebt sie sich nach wie vor vor andere Desktop Icons. Mit Always on Top verdeckt sie die Trayicons. Gut, kein Problem: Mouse Events deaktivieren und man kann durchklicken(ungetestet) ;)

Also ich muss ehrlich zugeben, dass ich nach meinem Post noch eine neue Version hochgeladen habe :oops:. Jedoch hab ich gedacht, dass die noch niemald runtergeladen hat (nach den Statistiken, wahrscheinlich waren die noch nicht Up-To-Date). Jedenfalls gibt es noch eine neuen Version - wäre als sehr nett, wenn du das nochmal mit einer frisch heruntergeladenen Exe ausprobieren könntest).

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Was ich noch cool fände als mitgeliefertes Widget wäre eine Art Systeminfo, wo so Sachen drinstehen wie Rechnername, IP Adressen, vielleicht noch HDD Kapazität usw. wenn möglich einzeln auswählbar?

Ich hab im Anhang mal eine erste Alpha-Version eines "Disc-Size-Widget" hochgeladen - das wäre schon mal ein Anfang. Ich werd das Widget noch weiter verbessern, wahrscheinlich jedoch nicht vor Montag. Aber es funktioniert schon.
Über das PopupMenü -> Widget -> ... kann man auswählen, welche Drives angezeigt werden sollen. Wie gesagt, das Widget ist noch in einem frühen Stadium und ich plane weitere Verbesserungen. Wenn jemand aber Lust hat, das Widget selbst anzupassen, kann er es gerne tun.

Edit: Download in den ersten Post verschoben


Hidden - Sa 25.10.08 09:10

Hi,

Also als du den Anfangspost das letzte Mal aktualisiert hast, war ich noch nicht zu Hause.. Läuft ja aber über einen Zweitserver, wann hast du den zweiten Upload denn gemacht? Also seit dem ersten neu-Laden des themes, ist alles in bester Ordnung. Lag wohl nur daran, dass ich die Sidebar nach dem anderen Widget hinzugefügt habe.

Btw: Ich überlege gerade, ob es möglich ist, ein Pluginzu schreiben, das die FF-, TWebBrowser oder eine andere Browserkomponente für ein Widget verfügbar macht. Ehe ich mich dransetze: Wie einfach ist es denn, diese generell einzubauen?

PS: Beim Shutdown-Widget ist der Eintrag " Need the plugin "SystemTools"." überflüssig ;)

E: Phu, ich dachte gerade für einen Moment dein Widget Zeigt mit dem Blauen Balken den belegten Speicher an :lol:

E2: Ich finde es übrigens toll, dass deine Sidebar nicht wie diverseandere Fenster dazu bringt, sich die neue Größe als default zu merken odergar aus dem maximiert zu gehen :zustimm: Behandelst du die eigentlich gesondert in der Engine oder entspringt die komplett ihrem eigenen Quelltext? ;)

E3: Du kannst ja mal Quick and Dirty eine Version mit Log für die Zeichnen-Methode und Screenshots zu jedem Log-Punkt schreiben(->Diagnose), wenn du willst. Das Log könnte dir sicher mehr helfen.

Ist ja aber auch nicht so wichtig, dass die Grafik auf PCs, die älter sind als wir alle zusammen 100-%ig funktioniert :lol: Ist ja schonmal nice, dass es auf den Uralt-Dingern überhaut geht ;)

E4: Der Menüpunkt "HoverGraphic" ist bei mir doppelt.. Btw: Wtf ist mit dem Screenshot los, letztens waren die Farebn doch noch richtig zu sehen..

mfG,


strahlemann - Sa 25.10.08 11:50

Bin gebeistert!

Ein Verbesserungsvorschlag wäre:

Eine Internet-Seite, wo alle die Widgets dafür gemacht haben, diese uploaden können und allen zu Verfügung stehen. so á la Wincustomize oder sowas.

Au ja, das wär fein


henni - Sa 25.10.08 13:53

Leider funktioniert die Sidebar nicht mehr so ganz:
sie existiert zwar noch, aber sie hat keine Form.
Also der Desktop Bereich wurde schon verkleinert, die Widgets sind auch andockbar, aber leider sieht man die Sidebar nicht mehr. Statt z.b. der Rundung sieht man jetzt nur noch den Desktop-Hintergrund.


Hidden - Sa 25.10.08 14:20

Das kann ich so nicht beobachten :gruebel: Hast du einen Screenshot?


henni - Sa 25.10.08 14:38

Jetzt schon.


littleDave - Sa 25.10.08 16:13

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Also als du den Anfangspost das letzte Mal aktualisiert hast, war ich noch nicht zu Hause.. Läuft ja aber über einen Zweitserver, wann hast du den zweiten Upload denn gemacht? Also seit dem ersten neu-Laden des themes, ist alles in bester Ordnung. Lag wohl nur daran, dass ich die Sidebar nach dem anderen Widget hinzugefügt habe.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Leider funktioniert die Sidebar nicht mehr so ganz:
sie existiert zwar noch, aber sie hat keine Form.
Also der Desktop Bereich wurde schon verkleinert, die Widgets sind auch andockbar, aber leider sieht man die Sidebar nicht mehr. Statt z.b. der Rundung sieht man jetzt nur noch den Desktop-Hintergrund.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Das kann ich so nicht beobachten :gruebel: Hast du einen Screenshot?

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Jetzt schon.

Anscheinend muss ich mir die SideBar nochmal genauer anschauen :?. Sorry, dass die im Moment so Probleme macht.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Btw: Ich überlege gerade, ob es möglich ist, ein Pluginzu schreiben, das die FF-, TWebBrowser oder eine andere Browserkomponente für ein Widget verfügbar macht. Ehe ich mich dransetze: Wie einfach ist es denn, diese generell einzubauen?

Bis ist es für PlugIns noch nicht so einfach möglich, die GUI der Widgets zu erweitern. Bisher ist das PlugIn-System nur für Funktionserweiterungen gedacht. Was jedoch noch ein zusätzliches Problem ist: die Widgets unterstützen keine Controls. Diese werden nicht gezeichnet - also müsstest du das alles selber zeichnen :?. Ich werd mir aber noch ein paar Sachen dazu überlegen.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
PS: Beim Shutdown-Widget ist der Eintrag " Need the plugin "SystemTools"." überflüssig ;)

Hab ich vergessen die Unit rauszulöschen? :oops:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E: Phu, ich dachte gerade für einen Moment dein Widget Zeigt mit dem Blauen Balken den belegten Speicher an :lol:

:mrgreen:

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E2: Ich finde es übrigens toll, dass deine Sidebar nicht wie diverseandere Fenster dazu bringt, sich die neue Größe als default zu merken odergar aus dem maximiert zu gehen :zustimm: Behandelst du die eigentlich gesondert in der Engine oder entspringt die komplett ihrem eigenen Quelltext? ;)

SideBars werden von der Engine gesondert behandelt - zumindest bei ein paar speziellen Sachen.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E4: Der Menüpunkt "HoverGraphic" ist bei mir doppelt.. Btw: Wtf ist mit dem Screenshot los, letztens waren die Farebn doch noch richtig zu sehen..

Sollte eigendlich nicht doppelt sein - verschieb mal den Splitter im Inspector - da müsste eigendlich einmal "HoverGraphic" und einmal "HoverGraphicDisabled" stehen

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
Bin gebeistert!

Danke für dein Feedback :party:

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:

Ein Verbesserungsvorschlag wäre:

Eine Internet-Seite, wo alle die Widgets dafür gemacht haben, diese uploaden können und allen zu Verfügung stehen. so á la Wincustomize oder sowas.

Au ja, das wär fein

Ich arbeite schon an einer Website - jedoch dauert die noch etwas


Hidden - Sa 25.10.08 16:26

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Anscheinend muss ich mir die SideBar nochmal genauer anschauen :?. Sorry, dass die im Moment so Probleme macht.

Wie gesagt: Ich hatte einmal direkt nach dem hinzufügen Probleme und seitdem nichtmehr. Und bei Henni ist das ja 'was anderes mit den mehreren Desktops. Ich suche gleich mal nach dem Programm, inwiefern da bei mir Probleme macht.

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
PS: Beim Shutdown-Widget ist der Eintrag " Need the plugin "SystemTools"." überflüssig ;)

Hab ich vergessen die Unit rauszulöschen? :oops:

Nein, nur aus dem Description-Feld ;)

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
E4: Der Menüpunkt "HoverGraphic" ist bei mir doppelt.. Btw: Wtf ist mit dem Screenshot los, letztens waren die Farben doch noch richtig zu sehen..
Sollte eigendlich nicht doppelt sein - verschieb mal den Splitter im Inspector - da müsste eigendlich einmal "HoverGraphic" und einmal "HoverGraphicDisabled" stehen
:oops: Das muss es sein.

mfG,


Yogu - Sa 25.10.08 22:10

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Also ich hab mir den Screenshot mal angeschaut und konnte leider nicht sagen woran das liegt. Der Screenshot könnte Win2000, aber auch WinME sein (wie Yogu bereits gesagt hat). WinME kann ich mir irgendwie nicht vorstellen, da mein Programm die Funktion "UpdateLayeredWindow" benutzt und diese laut MSDN erst ab Windows 2000 vorhanden ist.
Aber nochmal zu dem Screenshot: Kann es sein, dass der Desktop auf 16-Bit Farbtiefe gelaufen ist? Das könnte das Problem vielleicht erklären. Jedoch möchte ich da keine Garantien abgeben, da ich keine Möglichkeit habe, das Programm unter Windows 2000 zu testen. Yogu hat die Möglichkeit, jedoch hab ich noch keine Info von ihm bekommen, dass etwas falsch dargestellt wird (oder ich hab die Info gerade vergessen ;-)).

Egal, welche Farbtiefe ich einstelle - ob 32 oder 16 Bit, oder sogar 256 Farben - bei mir entstehen keine Schleier. Alles läuft perfekt, bis auf selbstverständliche Farbverluste. :nixweiss:

PS: Das neue Widget ist großartig. :D


littleDave - Sa 25.10.08 22:41

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
PS: Beim Shutdown-Widget ist der Eintrag " Need the plugin "SystemTools"." überflüssig ;)

Hab ich vergessen die Unit rauszulöschen? :oops:

Nein, nur aus dem Description-Feld ;)

Danke für den Hinweis, werd ich in der nächsten Version geändert haben.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Also ich hab mir den Screenshot mal angeschaut und konnte leider nicht sagen woran das liegt. Der Screenshot könnte Win2000, aber auch WinME sein (wie Yogu bereits gesagt hat). WinME kann ich mir irgendwie nicht vorstellen, da mein Programm die Funktion "UpdateLayeredWindow" benutzt und diese laut MSDN erst ab Windows 2000 vorhanden ist.
Aber nochmal zu dem Screenshot: Kann es sein, dass der Desktop auf 16-Bit Farbtiefe gelaufen ist? Das könnte das Problem vielleicht erklären. Jedoch möchte ich da keine Garantien abgeben, da ich keine Möglichkeit habe, das Programm unter Windows 2000 zu testen. Yogu hat die Möglichkeit, jedoch hab ich noch keine Info von ihm bekommen, dass etwas falsch dargestellt wird (oder ich hab die Info gerade vergessen ;-)).

Egal, welche Farbtiefe ich einstelle - ob 32 oder 16 Bit, oder sogar 256 Farben - bei mir entstehen keine Schleier. Alles läuft perfekt, bis auf selbstverständliche Farbverluste. :nixweiss:

Also ich benutze Funktionen, die laut MSDN erst ab Windows 2000 vorhanden sind. Somit scheiden eigentlich alle Win9x/WinME/WinNT aus :gruebel:.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
PS: Das neue Widget ist großartig. :D

Danke :). Ich hab gerade noch eine neue Version hochgeladen. Der Download befindet sich jetzt im ersten Post.


Hidden - So 26.10.08 19:51

Hi,

Könntest du eine "import theme" funktion einbauen, mit der die .theme-Dateien eines Anderen Nutzers importierbar werden? Ich will Die Engine mal wieder weitergeben und das Layout beibehalten. Habe die absoluten Pfade angepasst. Funktioniert aber trotzdem noch nicht so ganz :)

mfG,


littleDave - So 26.10.08 20:25

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Könntest du eine "import theme" funktion einbauen, mit der die .theme-Dateien eines Anderen Nutzers importierbar werden? Ich will Die Engine mal wieder weitergeben und das Layout beibehalten. Habe die absoluten Pfade angepasst. Funktioniert aber trotzdem noch nicht so ganz :)

Hm, muss mal schauen, ob das mit den relativen Pfaden wirklich funktioniert - hab die zwar schon ausprobiert, aber noch nicht so ganz so ausführlich :oops:

Aber ich werd die Theme-Datei noch etwas erweitern: ich werd den relativen Pfad zur exe und den absoluten Pfad in die Theme-Dateien speichern. Im Portable-Mode wird die Datei dann zuerst anhand des relativen Pfades und dann anhand des absoluten Pfades gesucht. Im normalen Modus wird die Datei dann zuerst anhand des absoluten Pfades und dann anhand des relativen Pfades gesucht.

Dann sollte das importieren von Themes ganz automatisch funktionieren.


Hidden - So 26.10.08 20:28

Hi,

Finde ich toll, dass du über alle eventualitäten nachdenkst :) Was ich meinte war nahe an QuickNDirty: "theme aus datei importieren" -> themedatei laden und dabei den absoluten pfad durch den absoluten pfad des theme-ordners auf diesem Computer ersetzen.

mfG,


littleDave - So 26.10.08 20:45

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Finde ich toll, dass du über alle eventualitäten nachdenkst :) Was ich meinte war nahe an QuickNDirty: "theme aus datei importieren" -> themedatei laden und dabei den absoluten pfad durch den absoluten pfad des theme-ordners auf diesem Computer ersetzen.

Ich hab mir für das Projekt vorgenommen, möglichst wenig Quick-N-Dirty Implementierungen einzubauen, da diese ingesammt meistens mehr Zeit beanspruchen als sich eine saubere Lösung auszudenken und einzubauen ;). Aber danke für das Lob :)


Hidden - So 26.10.08 21:32

Hi,

Spontaner Einfall. Auch etwas, was Winzigweich hätte besser machen können: Was hältst du von einem Passwort-Dialog über die Engine? Das Widget hat keinen Zugriff auf die eingegebenen Daten; der User sieht genau, woin was gesendet wird.

mfG,


littleDave - So 26.10.08 22:29

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Spontaner Einfall. Auch etwas, was Winzigweich hätte besser machen können: Was hältst du von einem Passwort-Dialog über die Engine? Das Widget hat keinen Zugriff auf die eingegebenen Daten; der User sieht genau, woin was gesendet wird.

Also leider versteh ich deinen Einfall so überhaupt nicht :nixweiss:. Was hat der Passwort-Dialog mit dem zweiten Satz zu tun? Irgendwie fehlt mir gerade das Bindeglied zwischen den beiden Sätzen.

Also den zweiten Satz versteh ich als eine Art "Netzwerk Traffic Log". Das lässt sich durchaus realisieren. Doch so ganz davon überzeugt bin ich noch nicht. Aber ich werds mir morgen nochmal genau überlegen.


Hidden - So 26.10.08 23:52

Hi,

Aaalso.. :D

Ein Widget will Verbindung zu einer Website aufbauen, für die es ein Passwort braucht. Dazu sagt es der Engine, an welche Adresse und in welcher Form(in der Art wie FormatDate) die PW-Daten gesendet werden sollten.

Nun bekommt der User einen Popup-Dialog, die PW-Daten werden an die Website gesendet und das Widget bekommt läuft erst nach Antwort der Website weiter; dabei bekommt es einen Rückgabewert, der enthält, ob die Passwort-Eingabe erfolgreich war. Das ganze soll also eine Art exernal ShowModal sein.

Normalerweise hätte das Widget die PW-Daten bekommen und diese dann gesendet. Das hätte man erst im Quelltext prüfen müssen.

Also in der Art: if PasswortPopup('Username', 'Password', 'http://MyWebsite.de/login.php?username=u&password=p') then ..;

So in etwa hatte ich mir das spontan vorgestellt. Ein login ist aber nach genauerer Betrachtung dazu zu vielseitig :lupe:

mfG,


Yogu - Mo 27.10.08 00:12

Wie wär's denn mit ein wenig Compiler Magic?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
var User, Password: String;
begin
  // Bei Übergabe wird Flag in der Variable gesetzt
  // --> Kein normaler Zugriff mehr möglich
  if InputPassword('Bitte Geben Sie jetzt Ihren Benutzernamen und das '+
    'Passwort ein, das für den Login zum Delphi-Forum benötigt wird',
    User, Password) then
  begin
    // User wird korrekt ausgegeben
    ShowMessage('User: ' + User); 

    // Eine Exception wird ausgelöst (oder anders verweigert),
    // da kein Zugriff auf die Variable gestattet (Flag wurde gesetzt)
    ShowMessage('Password: ' + Password); 

    // Hier ist der Zugriff wieder gestattet
    HTTP.PostURL('http://www.delphi-forum.de/login.php',
      'User=' + User + '&Password=' + Password);

    // Bei einer normalen Zuweisung wird die Variable wieder freigeben 
    // (Flag entfernt)
    Password := 'abc';
    ShowMessage('Password: ' + Password); 
  end;
end;


Das mit "der User sieht, wohin die Daten gesendet werden" klappt hier nicht so ganz. Aber es gibt ja schon einen Dialog, der den Zugriff auf das Internet meldet (wenn der nicht auf "Remember" gestellt wurde).

Edit: HTTP.GetURL zu HTTP.PostURL verbessert - hier waren meine Finger schneller als mein Kopf. :oops:


Hidden - Mo 27.10.08 01:45

Hi,

Könntest du noch beim Shutdown(-widget) Abmelden und hibernate hinzufügen(notfalls hibernate = StrgUmschalt+shutdown, falls es kein icon gibt).

mfG,


Martok - Mo 27.10.08 03:08

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wie wär's denn mit ein wenig Compiler Magic?
{Code}

Da würd ich aber eher sagen, führe einen Datentyp 'Password' ein, welcher sich wie ein String mit Zugriffsschutz verhält:
Schreiben geht immer, aber nur HTTP.* kann ihn lesen. Im Grunde wie window.location bei JavaScript im Browser.

Außerdem... wenn man als Programmierer Klimmzüge machen muss, um ein Passwort vor sich selbst zu verstecken... schon etwas schizophren. Wenn ich eh etwas anderes als normal mache, dann kann ich auch gleich das Passwort-klauen unterlassen ;)

Wird das implementiert, sollte man auch nicht vergessen, dass die meisten Formulare nicht per GET, sondern per POST das Passwort erhalten.


littleDave - Mo 27.10.08 13:36

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ein Widget will Verbindung zu einer Website aufbauen, für die es ein Passwort braucht. Dazu sagt es der Engine, an welche Adresse und in welcher Form(in der Art wie FormatDate) die PW-Daten gesendet werden sollten.

Nun bekommt der User einen Popup-Dialog, die PW-Daten werden an die Website gesendet und das Widget bekommt läuft erst nach Antwort der Website weiter; dabei bekommt es einen Rückgabewert, der enthält, ob die Passwort-Eingabe erfolgreich war. Das ganze soll also eine Art exernal ShowModal sein.

Normalerweise hätte das Widget die PW-Daten bekommen und diese dann gesendet. Das hätte man erst im Quelltext prüfen müssen.

Also in der Art: if PasswortPopup('Username', 'Password', 'http://MyWebsite.de/login.php?username=u&password=p') then ..;

Du hast gerade eins der wichtigsten Gegenargumente gebracht:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:

So in etwa hatte ich mir das spontan vorgestellt. Ein login ist aber nach genauerer Betrachtung dazu zu vielseitig :lupe:

Es würde ein viel zu großen Aufwand machen, alle Möglichkeiten in das Hauptprogramm einzubauen. Außerdem, falls mal was nicht so ganz funktioniert bzw. falls ein wichtiges Feature fehlt, muss ich das Programm erst erweitern. Die Scriptsprache ist doch genau für diese Sachen da. Über einen Passwort-Dialog kann ich mir mal Gedanken machen, jedoch eine fest eingebaute Funktion halte ich für extrem schlecht.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Das mit "der User sieht, wohin die Daten gesendet werden" klappt hier nicht so ganz. Aber es gibt ja schon einen Dialog, der den Zugriff auf das Internet meldet (wenn der nicht auf "Remember" gestellt wurde).

Das Problem kann man schon eher mit einer Art "Traffic Log" - Funktion realisieren, die an sich ja nicht so schlecht ist. Ob und wenn wie ich die genau einbaue, weiß ich jedoch noch nicht.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Könntest du noch beim Shutdown(-widget) Abmelden und hibernate hinzufügen(notfalls hibernate = StrgUmschalt+shutdown, falls es kein icon gibt).

Klar, kann mal schauen :lupe:

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Da würd ich aber eher sagen, führe einen Datentyp 'Password' ein, welcher sich wie ein String mit Zugriffsschutz verhält:
Schreiben geht immer, aber nur HTTP.* kann ihn lesen. Im Grunde wie window.location bei JavaScript im Browser.

Das ist an sich eine gute Idee, doch von der Realisierung her ist das zu aufwendig. Ich müsste extrem viele neue Funktionen einbauen, wobei hier die Arbeit überhaupt nicht im Verhältniss zum Nutzen steht.
Das Problem ist halt, dass die Funktion einen ganz normalen String ausgeben soll, der jedoch nicht angezeigt werden darf. Das ist so gut wie unmöglich sowas vorher festzustellen.
Aber sagen wir mal, ich würd es schaffen so einen Secure-String einzubauen: ich müsste ja den PlugIns ebenfalls dieses Feature anbieten und was die PlugIns damit machen kann ich nicht beeinflussen.


Hidden - Mo 27.10.08 16:22

Naja, wenigstens die Engine ohne Plugins wäre damit schonmal sihcer und bedenkenlos ausführbar(Wobei es sich hier imho in nächster Zeit ausschließlich um theoretische Probleme handelt).

Habe gestern mal die Top 250 Vista-Widgets durchgesehen.. und ich muss sagen: Da ist wirklich nichts bei, das du noch nicht besser hast :D

mfG,


Martok - Mo 27.10.08 19:51

Die Frage ist ja: welchen Sinn hat es denn, Eingaben im Script zu sichern, die der User ja nicht machen muss wenn er dem Widget nicht vertraut.


Hidden - Mo 27.10.08 19:57

Bei Windows stört mich das seit längerem: Jedes Programm hat einen völlig anderen PW-Dialog und ich bin mir nicht sicher, wem man vertrauen kann ;)

@Oben: Also imho sollte der Pw-Dialog den DLLs nicht zur verfügung gestellt werden. Damit würde sich alle Sicherheit erübrigen und wir können es acuh gleich lassen ;)

Mit den DLLs besteht ja imho die einzig mögliche Sicherheit in Open Source. Ansonsten ist damit einfach der Schlüssel aus derHand gegeben und Sicherheit nicht möglich. Selbst compillieren. Aber das kann man glaube ich von Ottonormalusern nicht verlangen.

mfG,


littleDave - Mo 27.10.08 20:59

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Naja, wenigstens die Engine ohne Plugins wäre damit schonmal sihcer und bedenkenlos ausführbar(Wobei es sich hier imho in nächster Zeit ausschließlich um theoretische Probleme handelt).

Die theoretischen Probleme könnten aber Wirklichkeit werden, deshalb will ich die Probleme garnicht erst aufkommen lassen will ;-)

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Habe gestern mal die Top 250 Vista-Widgets durchgesehen.. und ich muss sagen: Da ist wirklich nichts bei, das du noch nicht besser hast :D

:mrgreen: das spricht für sich :mrgreen: 8)

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Die Frage ist ja: welchen Sinn hat es denn, Eingaben im Script zu sichern, die der User ja nicht machen muss wenn er dem Widget nicht vertraut.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Bei Windows stört mich das seit längerem: Jedes Programm hat einen völlig anderen PW-Dialog und ich bin mir nicht sicher, wem man vertrauen kann ;)
@Oben: Also imho sollte der Pw-Dialog den DLLs nicht zur verfügung gestellt werden. Damit würde sich alle Sicherheit erübrigen und wir können es acuh gleich lassen ;)
Mit den DLLs besteht ja imho die einzig mögliche Sicherheit in Open Source. Ansonsten ist damit einfach der Schlüssel aus derHand gegeben und Sicherheit nicht möglich. Selbst compillieren. Aber das kann man glaube ich von Ottonormalusern nicht verlangen.

So ganz versteh ich die Diskusion noch nicht, deswegen versuch ich das mal mit meinen Worten auszudrücken:

Dein Argument, user profile iconMartok, versteh ich im Moment so: wenn ein Benutzer kein Passwort eingibt, kann das Widget auch keins speichern. Wenn der Benutzer aber ein Passwort eingibt, dann sollte man in der Regel auch davon ausgehen, dass er dem Widget soweit vertraut, dass er ihm ein Passwort übergibt - zusammen mit allen möglichen Konsequenzen.

Nun versuch ich es bei dir, user profile iconHidden: Du schlägst vor, einen einheitlichen Passwort-Dialog zu erstellen. Das übergebene Passwort kann das Widget aber nicht auslesen, sondern nur an bestimmte Funktionen weitergeben.

Ok, nun versuch ich dazu mal Stellung zu nehmen:
Ein Passwort ist ja an sich schon etwas sicherheitsrelevantes - ich glaub da sind wir uns alle einig. Jedoch finde ich, dass man es mit Sicherheitsabfragen übertreiben kann.

Der Benutzer hat bisher schon viele eingebaute Sicherheitslayers:
- Widgets mit PlugIns können NUR nach einer einmaligen Bestätigung des Benutzers gestartet werden
- Den Zugang zum Internet/Netzwerk kann der Benutzer global sowie für jedes Widget individuell einstellen
- Den Schreibzugriff auf lokale Dateien ist von Haus aus deaktiviert und lesend kann man nicht viele Daten schreiben.

Wenn der Benutzer jetzt ein Widget herunterläd und es dann startet, dann weiß das Widget ja noch kein Passwort. Daher muss es erstmal nach einem Passwort fragen. Falls die Passwortabfrage jetzt für die Funktionsweise des Widgets nicht relevant scheint, kann er ja einfach keins oder erstmal ein falsches eingeben.

Bei PlugIns ist es halt so, dass man erstmal nicht davon ausgehen kann, dass der Quelltext mit dabei ist geschweige denn der Otto-Normal-Verbraucher ihn verstehen würde. Zudem hat man mit PlugIns extrem viel mehr Möglichkeiten - daher gibt es auch den Dialog, ob man ein Widget - welches PlugIns benötigt - überhaupt starten will.

Man sollte auch nicht davon ausgehen, dass grundsätzlich jedes PlugIn böse ist. Wenn das so ist, dürfest du ja kein Programm benutzen, was du nicht selber kompiliert hast. Aber komplett eine rosa Brille aufsetzen will ich auch nicht, daher überlege ich mir schon seit Tagen, wie ich PlugIns per Zertifikat als "gut" aushängen könnte. Jedoch bin ich bisher noch zu keinem Entschluss gekommen. Mein bisher ausgedachtes Zertifizierungssystem hab ich mir so vorgestellt:
An das Ende des PlugIns wird das Zertifikat mit einer festen Datengröße angehängt. Die Daten des Zertifikats sind verschlüsselt und müssen vom Programm erst entschlüsselt werden. Der Verschlüsselungs-Key ist dann eine Kombination aus verschiedenen CheckSummen der DLL an sich, einem Salt sowie einen speziellen Verschlüsselungs-Key, den nur das Programm kennt. Jedoch halte ich gerade das letzte für das größte Problem, denn ich will ja nicht, dass sich jeder ein eigenes Zertifikat für das PlugIn erstellen kann - sonst könnt ich es ja gleich lassen. Was ich bräuchte wäre ein Public/Private-Key-Verfahren, nur dass der Key zum Verschlüsseln private sein sollte. Über RSA hab ich bisher zu wenig gelesen um genau zu wissen, ob und wie ich das am besten lösen könnte. Wenn da jemand was hätte (oder ein anderen Vorschlag), immer her damit.

Ein Einheitlicher Passwort-Dialog ist zwar an sich eine gute Sache, jedoch hat man in einem Widget sehr viele Freiheiten - dazu gehört auch das eigene Designen von Passwortdialogen. Ich werd in der nächsten Version einen Default-Passwort-Dialog einbauen, soweit hast du mich, user profile iconHidden, schon überzeugt. Doch für ein Passwort, dass der Benutzer eh erst eingeben muss, solch eine Sicherheitsbox herumzubauen halte ich für extrems übertrieben.

Ach noch was, bevor ich es vergesse:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Könntest du noch beim Shutdown(-widget) Abmelden und hibernate hinzufügen(notfalls hibernate = StrgUmschalt+shutdown, falls es kein icon gibt).

Klar, kann mal schauen :lupe:

Ich hab leider kein Icon mehr gefunden :(.


Hidden - Mo 27.10.08 21:11

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab leider kein Icon mehr gefunden :(.
Beführchte fast, es wird keines geben. Windows verwendet ja auch das Shutdown zweimal. Kannst ja aber ein eigenes datunehmen. Wird aber irgendwann zu voll, glaube ich ;) Und Umschalt+Standby ist ja default.


littleDave - Di 28.10.08 02:42

Sodala, hab gerade Version 0.62 hochgeladen

In dieser Version hab ich mal die (zugegeben) schrecklichen Icons aus der Vorgängerversion verändert. Zum einen haben jetzt nur noch wichtige Funktionen ein Icon und zum anderen hab ich die Icons an sich auch verändert. Nun sollte das Programm nicht mehr so "over-iconed" sein ;-)

Auch den Focus im Add-Widget-Dialog hab ich jetzt auf die Thumbnails gesetzt - somit kann man jetzt direkt mit dem Mausrad durch die Liste scrollen.

Auch neu ist die ListBox-Komponente, die jetzt den Widgets zur Verfügung steht. Um diese gleich mal auszuprobieren hab ich das Spiegel-RSS sowie das DP-ShoutBox-Widget nun verbessert. Im Anhang hab ich mal nen Screenshot von den neuen Versionen hochgeladen - ich denke, die sind nun wirklich besser.
Aber ich hab auch eine Überraschung für user profile iconpassiv: hier [http://www.delphi-forum.de/viewtopic.php?p=528546#528546] hast du gemeint, dass du Probleme hast mit den Sonderzeichen bei derStandard.at: ich habs nun endlich geschafft und einen neuen Datentyp eingeführt: UTF8String - und weil ich gerade dabei war, hab ich gleich noch ein Widget für derStandard.at gebastelt.

Wie gerade gesagt, arbeite ich gerade daran, die Widgets auch unicode-Enabled zu machen. Den ersten Schritt hab ich dafür bereits hinbekommen: den neuen Datentyp: UTF8String. Zusammen mit der Compiler-Magic der Script-Engine kann man sogar ganz einfach UTF8Strings in Ansi-Strings umwandeln - und umgekehrt.
Da einige Funktionen nur Strings zurückgeben, kann es sein, dass diese Compiler-Magic im Weg stehen kann. Daher hab ich noch eine Funktion eingebaut, mit der man einen AnsiString ohne Konvertierung in einen UTF8-String umwandeln kann: AnsiAsUtf8. Somit kann man jetzt einen AnsiString, der eigendlich ein UTF8-String ist, ganz einfach und ohne verluste umwandeln.

Das Disc-Size-Widget ist jetzt im Standard-Paket mit dabei. Ich habe es noch etwas erweitert, daher wäre es gut, wenn ihr die Beta-Version mit der aktuellen überschreiben würdet.

@user profile iconHidden: Der Passwort-Dialog hats leider nicht mehr in die Version geschafft - hab aber schonmal die Property "TwgEdit.PasswordChar" für dich eingeführt. Auch das ShutDown-Widget hab ich nicht mehr weitergemacht. Es sind einfach zu viele Baustellen für einen :?

@user profile iconhenni: Leider konnt ich das Problem mit dem Verschwinden der SideBar bei mir nicht reproduzieren :(

Der komplette ChangeLog sowie der Download ist im ersten Post zu finden
Grüße
Dave


passiv - Di 28.10.08 14:04

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Aber ich hab auch eine Überraschung für user profile iconpassiv: hier [http://www.delphi-forum.de/viewtopic.php?p=528546#528546] hast du gemeint, dass du Probleme hast mit den Sonderzeichen bei derStandard.at: ich habs nun endlich geschafft und einen neuen Datentyp eingeführt: UTF8String - und weil ich gerade dabei war, hab ich gleich noch ein Widget für derStandard.at gebastelt.
WOW!! ich bin gerührt :zustimm:
trotzdem: es gibt noch bugs: die sidebar lässt sich ja jetzt skalieren (super!). dabei ist mir aber aufgefallen, dass es während dem skalieren (vor allem, wenn mans größer macht) nicht sieht, wie groß es denn wird ... Anzeige-Stil: Desktop-Icon. bei stayontop gehts ...
dann noch ein bug (oder eigentlich ein schönheitsfehler): die skalierungs-bar lässt sich zwar mit den cursor-tasten up und down bewegen, aber in die falsche richtung. wenn man runterdrückt, erwartet man dekrementierung, man kriegt aber inkrementierung ... is eigenartig.
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
@user profile iconhenni: Leider konnt ich das Problem mit dem Verschwinden der SideBar bei mir nicht reproduzieren :(
weil kein Dexpot vorhanden. @user profile iconhenni schon eingestellt, dass die sidebar als desktop-icon dargestellt werden soll? bei mir geht das.

sonst nur wieder mal: weiter so! das wird immer besser (auch wenn mans schon fast nicht mehr glauben kann :D )

mfg
passiv

edit: weils ja praktisch nur um die ecke wär: ein widget für user profile iconGausis Nemp [http://www.delphi-forum.de/viewtopic.php?t=35607&start=660&postorder=asc] zum ansteuern und aktuellem titel anzeigen ...


littleDave - Di 28.10.08 17:46

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
trotzdem: es gibt noch bugs: die sidebar lässt sich ja jetzt skalieren (super!). dabei ist mir aber aufgefallen, dass es während dem skalieren (vor allem, wenn mans größer macht) nicht sieht, wie groß es denn wird ... Anzeige-Stil: Desktop-Icon. bei stayontop gehts ...

Hab ich in der gerade hochgeladenen Version behoben. Trotzdem danke für den Hinweis :zustimm:

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
dann noch ein bug (oder eigentlich ein schönheitsfehler): die skalierungs-bar lässt sich zwar mit den cursor-tasten up und down bewegen, aber in die falsche richtung. wenn man runterdrückt, erwartet man dekrementierung, man kriegt aber inkrementierung ... is eigenartig.

Ok, werd mal gucken was ich da machen kann.

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
sonst nur wieder mal: weiter so! das wird immer besser (auch wenn mans schon fast nicht mehr glauben kann :D )

:party: *freu* :party:

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
edit: weils ja praktisch nur um die ecke wär: ein widget für user profile iconGausis Nemp [http://www.delphi-forum.de/viewtopic.php?t=35607&start=660&postorder=asc] zum ansteuern und aktuellem titel anzeigen ...

Ich kann mal schauen, ob ich ein PlugIn für die Widget-Engine schreibe, mit dem man Nemp ansteuern kann. Jedoch werd ich das nicht so bald realisieren können, da ich im Moment sehr wichtige Punkte auf meiner ToDo-Liste habe, die wirklich mal abgearbeitet werden sollten. Aber ich werd es mir merken :zustimm:. Aber wenn wer will und zeit hat: ein Nemp-PlugIn für die WidgetEngine wäre doch was ;-) - natürlich total unverbindlich.


Yogu - Di 28.10.08 18:07

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
edit: weils ja praktisch nur um die ecke wär: ein widget für user profile iconGausis Nemp [http://www.delphi-forum.de/viewtopic.php?t=35607&start=660&postorder=asc] zum ansteuern und aktuellem titel anzeigen ...

Ich kann mal schauen, ob ich ein PlugIn für die Widget-Engine schreibe, mit dem man Nemp ansteuern kann. Jedoch werd ich das nicht so bald realisieren können, da ich im Moment sehr wichtige Punkte auf meiner ToDo-Liste habe, die wirklich mal abgearbeitet werden sollten. Aber ich werd es mir merken :zustimm:. Aber wenn wer will und zeit hat: ein Nemp-PlugIn für die WidgetEngine wäre doch was ;-) - natürlich total unverbindlich.

Zum Thema "Nemp fernsteuern" möchte ich mal auf den Download Remote Nemp [http://gausi.de/delphi/nempapi.php] verweisen. Der Source muss eigentlich nur noch ins Plugin-Format übertragen werden - fertig. Ich habe gerade leider nicht genug Zeit, das selbst zu machen, aber vielleicht hat ja jemand Langeweile :)


henni - Mi 29.10.08 19:10

Also, ich kann das Shutdown Widget ja mal weiter Programmieren.
Icons zum Abmelden und Benutzer wechseln habe ich noch, für Hibernate aber nicht.

Die Icons der neuen Version sind super!
Aber du musst evtl. auf Copyright etc. der Vista-Icons achten. Ich kenn mich da nicht so aus...

Und das beste: Die Sidebar wird in der neuen Version wieder normal angezeigt!! Danke!!
Woran das lag weiß ich nicht.


Und wie vor einigen Posts erwähnt, bietet RSA super Möglichkeiten, festzustellen, ob eine DLL von einem Vertrauenswürdigem Publizierer kommt. RSA ist zwar recht kompliziert umzusetzen, doch es müsste sich lohnen. Bei Interesse kann ich ja evtl. ein paar weitere Tipps dazu geben oder selber eine Klasse implementieren, die die Logik und Mathematik abnimmt.
Mit RSA kann man auch feststellen, ob eine DLL, die z.b. von dir kommt, von einem "Hacker" verändert wurde.
Allerdings bräuchte man eine Liste, wo die jeweiligen Public-Keys in Verknüpfung mit dem Hersteller stehen.


Hidden - Mi 29.10.08 20:13

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Icons zum Abmelden und Benutzer wechseln habe ich noch, für Hibernate aber nicht.
Pass aber auf, dass es dir nciht zu voll wird. Einige Funktionen benutzt man wohl zu selten. Einfach nochmal einen Blick auf's Design werfen, wenns fertig ist.

@Hibernate: Also unter XP gibt es dafür kein eigenes Icon. Das ist Umschalttaste + Standby :zwinker:

mfG,


littleDave - Mi 29.10.08 20:42

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Also, ich kann das Shutdown Widget ja mal weiter Programmieren.
Icons zum Abmelden und Benutzer wechseln habe ich noch, für Hibernate aber nicht.

Ja mach das.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Die Icons der neuen Version sind super!
Aber du musst evtl. auf Copyright etc. der Vista-Icons achten. Ich kenn mich da nicht so aus...

Also ich hab die Icons aus nem Freeware-Icon-Pack, die Lizenz: you can use the icons in any of your applications.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und das beste: Die Sidebar wird in der neuen Version wieder normal angezeigt!! Danke!!
Woran das lag weiß ich nicht.

Aber ich :mrgreen: von der letzten zur aktuellen Version hab ich mich nur um die SideBar gekümmert.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und wie vor einigen Posts erwähnt, bietet RSA super Möglichkeiten, festzustellen, ob eine DLL von einem Vertrauenswürdigem Publizierer kommt. RSA ist zwar recht kompliziert umzusetzen, doch es müsste sich lohnen. Bei Interesse kann ich ja evtl. ein paar weitere Tipps dazu geben oder selber eine Klasse implementieren, die die Logik und Mathematik abnimmt.
Mit RSA kann man auch feststellen, ob eine DLL, die z.b. von dir kommt, von einem "Hacker" verändert wurde.
Allerdings bräuchte man eine Liste, wo die jeweiligen Public-Keys in Verknüpfung mit dem Hersteller stehen.

Ich danke dir auf jedenfall für die Hilfe, jedoch hab ich jetzt schon ein Zeritfikatssystem. Es ist auch schon eingebaut und funktioniert prächtig. Ich erweitere noch ein paar Sachen mit PlugIns (z.B. einzelne PlugIns deaktivieren, während das Programm läuft) und dann gibt es die neue Version. Eine Liste mit Keys gibt es so zwar noch nicht (es gibt einen Key), jedoch ist das System so aufgebaut, dass es kein Problem wäre, unterschiedliche Keys für unterschiedliche PlugIns zu verwenden.


passiv - Do 30.10.08 15:54

also gut, die batterie-anzeige zeigt jetzt grün an, wenn geladen wird, allerdings hat sich auf einmal (habs nicht beobachtet, weiß also nicht wann) alles weggeblendet, bis auf den blitz und "Using AC Power". das sieht eigenartig aus (Bild)

edit: mist, falscher knopf :D . und dann noch: wie wärs, wenn du standardmäßig einbaust eine abfrage, dass, wenn high(Hexadezimal) zurückkommt, einfach nur angezeigt wird, dass auf Batterie läuft. die zahl schaut nämlich doof aus.


littleDave - Fr 31.10.08 03:10

user profile iconpassiv hat folgendes geschrieben Zum zitierten Posting springen:
also gut, die batterie-anzeige zeigt jetzt grün an, wenn geladen wird, allerdings hat sich auf einmal (habs nicht beobachtet, weiß also nicht wann) alles weggeblendet, bis auf den blitz und "Using AC Power". das sieht eigenartig aus (Bild)

Ok, ich hab das Widget nochmal etwas verändert. Hoffentlich wirds jetzt richtig dargestellt.[/quote]

@All: Version 0.64 ist jetzt die aktuellste Version!

Ich hab mich nun endlich überwunden, die Multi-Language-Fähigkeit umzusetzen. Jetzt kann das komplette Programm mit Hilfe von Sprachdateien beliebig übersetzt werden. Die Sprachdateien sind einfache Textdateien, die so ähnlich wie Ini-Files aufgebaut sind (es gibt nur keine Sections). Die Sprachdateien sind UTF-8-konvertiert, wenn ihr also die Sprachdateien bearbeitet bzw. neue erstellt, solltet ihr drauf achten, dass die Datei wirklich im UTF-8-Format abgespeichert wird.

Das zweite große Ding ist jetzt die Möglichkeit, PlugIns zu zertifizieren. Dadurch kann man jetzt einfacher zwischen vertrauenswürdigen PlugIns und "weniger" vertrauenswürdigen PlugIns unterscheiden. Im Moment kann nur ich PlugIns zertifizieren, daher solltet ihr mich anschreiben, wenn ihr eure PlugIns zertifizieren lassen wollt.
Mit dem Zertifizierungssystem hab ich auch das PlugIn-Handling im Programm geändert. Das Programm kann so eingestellt werden, dass nur zertifizierte PlugIns geladen werden. Zusätzlich gibt es noch eine weitere Option: die PlugIn-Warnung kann jetzt abgeschaltet werden, falls das Widget nur zertifizierte PlugIns verwendet.
Da ich mich gerade mit den PlugIns beschäftigt habe, hab ich jetzt auch noch die Möglichkeit eingebaut, PlugIns zu deaktivieren. Die Liste der deaktivierten PlugIns wird auch gespeichert, so dass die PlugIns deaktiviert bleiben. Die PlugIns verschwinden aber nicht komplett aus der Liste der PlugIns - so kann man sie ganz einfach wieder reaktivieren.

In der letzten Version hab ich da die Newsreader und das DP-Shoutbox-Widget verändert, jedoch hat sich da ein kleiner Fehler eingeschlichen, der die Anzeige beeinträchtigt hat. Diesen hab ich nun behoben.

Da das Scrollen in der Liste der aktiven Widgets mit der Maus etwas komisch ausgesehen hat, hab ich noch geschaut, was da schiefläuft - und ich hab den Fehler gefunden. Nun sollte die Scrollanimation normal aussehen.

Da ich die deutsche Sprachdatei nur ganz nebenbei übersetzt habe, könnte es sein, dass sich da ein paar Fehler eingeschlichen haben. Wenn ihr also einen findet wäre es sehr nett, dass ihr mir den Fehler und die Zeile in der Sprachdatei sagen würdet - dann bessere ich das aus. Natürlich könnt ihr auch eure eigenen Übersetzungen erstellen.

Der Download und der ChangeLog ist wie immer im ersten Post zu finden
Grüße
Dave


Yogu - Fr 31.10.08 12:27

Toll, dass ich die WidgetEngine endlich mal in Deutsch genießen kann :D

Ich habe jedoch zwei winzig kleine Verbesserungsvorschläge in Sachen Übersetzung:

  1. Im Einstellungs-Dialog unter "Themes" sind die RadioGroups zu klein: Der Eintrag "Nachfrage, ob Widget gespeichert (werden soll?) passt nicht rein; schon nach "gespeic" ist Schluss.
  2. Im Editor im Menü "Ansicht" ist ein Menüeintrag "Immer einen Rahmen zeichnen". Hätte ich nicht die englische Variante gekannt, wüsste ich nicht, was diese Option zu bedeuten hat. Besser währe "Controls immer umranden" o.ä.

Außerdem noch ein kleiner Schönheitsfehler: Wenn ein Dialog (z.B. Einstellungen) geöffnet ist, und man auf den Trayicon klickt, wird das disablede™ Hauptformular angezeigt. Nur über Alt+Tab kann der Dialog ausgewählt werden, um überhaupt irgendetwas zu machen.


littleDave - Fr 31.10.08 17:45

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
  • Im Einstellungs-Dialog unter "Themes" sind die RadioGroups zu klein: Der Eintrag "Nachfrage, ob Widget gespeichert (werden soll?) passt nicht rein; schon nach "gespeic" ist Schluss.

:autsch: dabei hab ich extra dafür das Fenster breiter gemacht - und dann hab ich vergessen, die GroupBoxen zu ändern. Danke für den Hinweis

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
  • Im Editor im Menü "Ansicht" ist ein Menüeintrag "Immer einen Rahmen zeichnen". Hätte ich nicht die englische Variante gekannt, wüsste ich nicht, was diese Option zu bedeuten hat. Besser währe "Controls immer umranden" o.ä.

Stimmt, das ist eine bessere Übersetzung. Werd ich ändern. Danke

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem noch ein kleiner Schönheitsfehler: Wenn ein Dialog (z.B. Einstellungen) geöffnet ist, und man auf den Trayicon klickt, wird das disablede™ Hauptformular angezeigt. Nur über Alt+Tab kann der Dialog ausgewählt werden, um überhaupt irgendetwas zu machen.

Ok, werd ich mir anschauen, nochmals danke für die Hinweise.


Hidden - Sa 01.11.08 11:10

Hi,

Ich habe mal ein wenig zum Shutdown-Widget überlegt. Was haltet ihr davon, (a) die Default-Belegung der Standby-Taste auf den Ruhezustand zu legen und mit Umschalt+Ruhezustand einen Standby zu machen?

Imho wird Standby nämlich von niemandem ernsthaft verwendet, der den Ruhezustand kennt. Ist ja nur ein bisschen schneller hochgefahren, hat dafür aber weiterhin Stromverbrauch.

Und(b), einen eigenen definierbaren Energiesparmodus im Widget zu implementieren. Praktisch die Windows-Optionen mit "nach 1 Minute in den Ruhezustand", etc. und das ganze halt durch einen weiteren Knopf an- und abschaltbar zu machen.

Beim Windows-Energiesparmodus nervt mich nämlich immer, dass, wenn ich z.B. für einen Download den Standard abschalten will, ich erstmal auf dem Konto Administratorrechte brauche :evil:

So, das war jetzt ziemlich viel zu einem Widget - wo es hier doch eigentlich um die Engine gehen soll :mrgreen:. Dann beschäftige ich mich mal wieder mit der :)

mfG,


Regan - Sa 01.11.08 17:26

Hallo,
ich habe mir gerade deine Widget Engine heruntergeladen und muss sagen: sehr gut :zustimm: .
Allerdings habe ich ein paar Probleme mit dem Editor:
Wenn ich ein Array erstellen will, dann sagt er mir, dass es das nicht gibt!?
Kann ich irgendwo die Units ablesen, die alle bei uses eingebunden werden können?
Kann man auch Controls (in meinem Fall Bilder) dynamisch erstellen lassen?
Wie kann ich dlls einbinden?

Oder was vielleicht am besten wäre: Warum erstellst du nicht einfach ein Doku zu dem Editor?

MfG
Regan


Hidden - Sa 01.11.08 17:32

Hi,

DLLs kannst du nutzen. Lade dir dazu am besten die Plugin-Demo herunter. Die erstellte DLL musst du dann in .plugin umbenennen.
mfG,


littleDave - So 02.11.08 00:03

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe mal ein wenig zum Shutdown-Widget überlegt. Was haltet ihr davon, (a) die Default-Belegung der Standby-Taste auf den Ruhezustand zu legen und mit Umschalt+Ruhezustand einen Standby zu machen?

Imho wird Standby nämlich von niemandem ernsthaft verwendet, der den Ruhezustand kennt. Ist ja nur ein bisschen schneller hochgefahren, hat dafür aber weiterhin Stromverbrauch.

Und(b), einen eigenen definierbaren Energiesparmodus im Widget zu implementieren. Praktisch die Windows-Optionen mit "nach 1 Minute in den Ruhezustand", etc. und das ganze halt durch einen weiteren Knopf an- und abschaltbar zu machen.

Beim Windows-Energiesparmodus nervt mich nämlich immer, dass, wenn ich z.B. für einen Download den Standard abschalten will, ich erstmal auf dem Konto Administratorrechte brauche :evil:

Ich kann ja mal ne Funktion einbauen, die die Zeit der letzten Eingabe zurückgibt. Dann kann man sich nen eigenes Energiesparmodus-Widget basteln :zwinker:

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
ich habe mir gerade deine Widget Engine heruntergeladen und muss sagen: sehr gut :zustimm: .

Danke für dein Feedback :party:

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich ein Array erstellen will, dann sagt er mir, dass es das nicht gibt!?

Das ist korrekt - soetwas hab ich noch nicht eingebaut. Das ist aber auch eine relativ komplexe Angelegenheit, da es sehr schwer ist, dies in die ScriptEngine einzubauen.

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Kann ich irgendwo die Units ablesen, die alle bei uses eingebunden werden können?

Eine API-Dokumentation ist bereits in Arbeit - jedoch bin ich mit bereits vorhandenen Dokumentationstools wie z.B. PasToDoc nicht zufrieden, daher werd ich ein Dokumentationstool erstellen müssen. Das ist vom Aufwand her nicht sehr viel, jedoch muss ich mich dazu erstmal überwinden.

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Kann man auch Controls (in meinem Fall Bilder) dynamisch erstellen lassen?

Das geht fast genauso wie in Delphi, jedoch gibt es ein paar Unterschiede. Am Beispiel kann man das am besten sehen. Im Beispiel wird ein Bild mit mainform als Parent erstellt:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var NewImage: TwgImage;

procedure CreateImage;
begin
  NewImage := NewImage.Create(mainform); // hier geht TwgImage.Create NOCH nicht
  // NewImage.Parent muss NICHT gesetzt werden, 
  // da dies automatisch beim Create gesetzt wird

  // Position setzen
  NewImage.SetLeft(0);
  NewImage.SetTop(0);
  NewImage.SetWidth(mainform.Width);
  NewImage.SetHeight(mainform.Height);

  // Bild hineinladen
  NewImage.Graphic.SetImageFile(' DER PFAD ZUM BILD ');
  
  // das Formular neu zeichen
  mainform.RenderForm;
end;

Alle Komponenten, die mit einem gültigen Parent erstellt wurden, werden beim beenden bzw. beim Entfernen des Parents automatisch freigegeben.

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich dlls einbinden?

Direkte DLL-Funktionen können aus Sicherheitsgründen nicht direkt eingebunden werden. Jedoch kann man DLL-Funktion über PlugIns zur Verfügung stellen. Ein Beispiel ist in der PlugIn-API mit dabei. user profile iconhenni hat hier [http://www.delphi-forum.de/viewtopic.php?p=529257#529257] ein sinnvolles PlugIn mit Source angehängt.

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Oder was vielleicht am besten wäre: Warum erstellst du nicht einfach ein Doku zu dem Editor?

An der Doku arbeite ich bereits.


Yogu - So 02.11.08 00:17

Ich habe vor einigen Tagen angefangen, das Nemp-Plugin und Nemp-Widget zu schreiben. Jetzt wird das Plugin plötzlich nicht mehr in der Liste aufgeführt - was vielleicht mit der neuen Zertifizierung zusammenhängt. Was muss ich denn in meinem Plugin noch ändern, dass das wieder läuft?


littleDave - So 02.11.08 00:26

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe vor einigen Tagen angefangen, das Nemp-Plugin und Nemp-Widget zu schreiben. Jetzt wird das Plugin plötzlich nicht mehr in der Liste aufgeführt - was vielleicht mit der neuen Zertifizierung zusammenhängt. Was muss ich denn in meinem Plugin noch ändern, dass das wieder läuft?

Du musst in den Einstellungen die Option "Nur zertifizierte PlugIns benutzen" deaktivieren. Diese Einstellung findest du im Tab "PlugIns".


Yogu - So 02.11.08 00:36

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe vor einigen Tagen angefangen, das Nemp-Plugin und Nemp-Widget zu schreiben. Jetzt wird das Plugin plötzlich nicht mehr in der Liste aufgeführt - was vielleicht mit der neuen Zertifizierung zusammenhängt. Was muss ich denn in meinem Plugin noch ändern, dass das wieder läuft?

Du musst in den Einstellungen die Option "Nur zertifizierte PlugIns benutzen" deaktivieren. Diese Einstellung findest du im Tab "PlugIns".

Da hätt ich auch selbst draufkommen können. :autsch:

Trotzdem Danke :)


Yogu - So 02.11.08 01:00

Mir fällt gerade noch eine unschöne Übersetzung auf (Menü Ansicht)

"Automatisches Displayupdate"

besser wäre

"Vorschau automatisch aktualisieren"

oder so ähnlich.


Regan - So 02.11.08 16:31

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Das ist korrekt - soetwas hab ich noch nicht eingebaut. Das ist aber auch eine relativ komplexe Angelegenheit, da es sehr schwer ist, dies in die ScriptEngine einzubauen.
---
Eine API-Dokumentation ist bereits in Arbeit - jedoch bin ich mit bereits vorhandenen Dokumentationstools wie z.B. PasToDoc nicht zufrieden, daher werd ich ein Dokumentationstool erstellen müssen. Das ist vom Aufwand her nicht sehr viel, jedoch muss ich mich dazu erstmal überwinden.

Gut, dann Gedulde ich mich noch etwas.
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Direkte DLL-Funktionen können aus Sicherheitsgründen nicht direkt eingebunden werden. Jedoch kann man DLL-Funktion über PlugIns zur Verfügung stellen. Ein Beispiel ist in der PlugIn-API mit dabei. user profile iconhenni hat hier [http://www.delphi-forum.de/viewtopic.php?p=529257#529257] ein sinnvolles PlugIn mit Source angehängt.

Ah, ja. Das ist sehr interessant. Ich schaue es mir mit an.
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Oder was vielleicht am besten wäre: Warum erstellst du nicht einfach ein Doku zu dem Editor?

An der Doku arbeite ich bereits.

OK, dann warte ich erstmal ab, bis eine Doku da ist.


Hidden - So 02.11.08 20:21

Hi,

Ich habe einen - glaube ich - revolutionären Featurevorschlag: Was hältst du davon, wenn Widgets, über denen man mit dem Mauszeiger verharrt, volltransparent werden und man hindurchklicken kann?

Klingt erstmal nach "Bug, no feature" :mrgreen:.

Ich kenne aber kein Widget, über dem es nötig wäre, mit dem Mauszeiger lange drüberzubleiben. Und damit könnten Widgets ohne Sidebar keine Oberfläche mehr behindern.

Dachte mir das so(abstellbar): Maus übers Widget. Nach [einstellbarer Zeit] kommt eine(abstellbare) Fading-Animation und das Widget wird ausgeblendet. Jetzt kann hindurchgeklickt werden. Maus runter -> Wieder voll da.

Wäre natürlich auch möglich, das nochmal für einzelne Widgets abschaltbar zu machen.

Hoffe das war in der Schnelle verständlich :).

mfG,


littleDave - Mo 03.11.08 15:15

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.

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

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Mir fällt gerade noch eine unschöne Übersetzung auf (Menü Ansicht)
"Automatisches Displayupdate"
besser wäre
"Vorschau automatisch aktualisieren"
oder so ähnlich.

Danke, hab ich in der neuen Version mit eingebaut.

@Regan: ich hab mal eine komplett temporäre Funktionsübersicht erstellt. Es sind noch keine Beschreibungen vorhanden, jedoch ist schonmal die Übersicht da. Ich habs mal angehängt.

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe einen - glaube ich - revolutionären Featurevorschlag: Was hältst du davon, wenn Widgets, über denen man mit dem Mauszeiger verharrt, volltransparent werden und man hindurchklicken kann?
Klingt erstmal nach "Bug, no feature" :mrgreen:.
Ich kenne aber kein Widget, über dem es nötig wäre, mit dem Mauszeiger lange drüberzubleiben. Und damit könnten Widgets ohne Sidebar keine Oberfläche mehr behindern.
Dachte mir das so(abstellbar): Maus übers Widget. Nach [einstellbarer Zeit] kommt eine(abstellbare) Fading-Animation und das Widget wird ausgeblendet. Jetzt kann hindurchgeklickt werden. Maus runter -> Wieder voll da.
Wäre natürlich auch möglich, das nochmal für einzelne Widgets abschaltbar zu machen.
Hoffe das war in der Schnelle verständlich :).

Also verstanden hab ich den Vorschlag schon, jedoch gibt es da sehr viele Probleme: wenn ich Widgets als "Maus-Transparent" setzte, bekommt das Widget natürlich keine Mausevents mehr. Wie sollte ich dann auf "MouseUp" reagieren? Klar könnte ich mit Get(Async)KeyState überprüfen, ob die Maustaste noch gedrückt ist, jedoch halte ich das für nicht so gut. Zudem find ich es nicht so gut. Sagen wir mal, ich will in den RSS-Feeds lesen - nun bleibe ich ausversehen zu lange auf dem Widget und ich will klicken bzw. das Widget verschwindet - das find ich nicht so gut. Ich denke, dass man so viele Ausnahmen definieren müsste, dass es sich schon fast nicht lohnt, die Option zu aktivieren bzw. sie einzubauen. Die Option "Auf Maus reagieren" ist ja nicht umsonst da - genau für diesen Zweck. Über einen dynamischen Alpha-Wert kann ich ja mal nachdenken bzw. einen Slider, mit dem man den Alpha-Wert einstellen kann.

Edit: :autsch: falsche Version hochgeladen, sorry


Hidden - Mo 03.11.08 16:18

Hi,

Du hast mich falsch verstanden: Wenn die Maus vom Widget bewegt wird, soll es wieder auftauchen. Im Mouseup gibt das wenig Sinn ;)

Inwieweit das besser umzusetzen ist..

mfG,


littleDave - Mo 03.11.08 17:31

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Du hast mich falsch verstanden: Wenn die Maus vom Widget bewegt wird, soll es wieder auftauchen. Im Mouseup gibt das wenig Sinn ;)

Achso, ok. Das ändert an der Tatsache, dass dann im "Maus-Transparent-Modus" keine MausEvents mehr ankommen leider nichts. Zudem bin ich von der Idee noch nicht wirklich überzeugt.


Hidden - Mo 03.11.08 18:39

Hi,

Das Hauptfeature soll ja die dadurch eintretende Transparenz sein, nicht einfach Durchklickbarkeit ;) Außerdem wäre es dann möglich, gleichzeitig Widget und Hintergrund mit Mausklicks zu erreichen. Aktivieren müsste man das ja sowieso erst in den Einstellungen und dann wäre die Ausblendezeit ja auch nochmal einstellbar. Sollte ein Widget ungewollt verschwinden, müsste man ja nur kurz die Maus bewegen.

Zielvorstellung war eigentlich eine Funktion, die die Widgets genau dann verschwinden lässt, wenn der User versucht, an die Sachen dahinter zu kommen. Also quasi intuitiv bedienbar.

Könnte mir auch vorstellen, dass das Widget einfach wie der Goldfisch zur seite flutscht und dann wieder zurück.

@Mouseevents: Kannst ja einfach nach 3 Sekunden oder so wieder einblenden. Dann käme man problemlos an beides, ohne z.B. erst wieder vom Widget runterzumüssen.

Eventuell könnte man auch einfach einen Shortcut zum aus-/einblenden aller Widgets einrichten.

mfG,


Regan - Mo 03.11.08 20:02

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
@Regan: ich hab mal eine komplett temporäre Funktionsübersicht erstellt. Es sind noch keine Beschreibungen vorhanden, jedoch ist schonmal die Übersicht da. Ich habs mal angehängt.

Cool, danke. Das hilft mir schon etwas weiter.

Ich habe aber noch einen Bug: Wenn ich die Engine mit Windows starten lasse, dann kommt bei mir immer der Fehler "Cannot Create Shell Notification Icon". Allerdings ist eins da. Es wird dann aber nichts geladen :sad: und mir bleibt nichts anderes übrig, als das Programm mit dem Taskmanager zu killen.


littleDave - Mo 03.11.08 20:45

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Eventuell könnte man auch einfach einen Shortcut zum aus-/einblenden aller Widgets einrichten.

Das finde ich wiederum eine bessere Idee. Ein einfaches ShortCut, dass alle Widgets unsichtbar macht.

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe aber noch einen Bug: Wenn ich die Engine mit Windows starten lasse, dann kommt bei mir immer der Fehler "Cannot Create Shell Notification Icon". Allerdings ist eins da. Es wird dann aber nichts geladen :sad: und mir bleibt nichts anderes übrig, als das Programm mit dem Taskmanager zu killen.

Oh, ok folgendes: diese Exception wird dann ausgeführt, wenn das TrayIcon nicht erstellt werden kann. Laut MSDN kann es unteranderen daran liegen:
MSDN hat folgendes geschrieben:
Returns TRUE if successful, or FALSE otherwise. If dwMessage is set to NIM_SETVERSION, the function returns TRUE if the version was successfully changed, or FALSE if the requested version is not supported.

You can call GetLastError for more specific information about a failure case. The most common cause of failure is that the taskbar window doesn't exist or is unresponsive. GetLastError in that case returns E_FILE_NOT_FOUND.

Hast du schonmal versucht, die Startverzögerung für den Autostart zu benutzen? Probier mal 20 Sekunden aus, ob es dann vielleicht funktioniert.

Aber das ein Icon da ist, wundert mich schon etwas :gruebel: eigendlich dürfe noch keins da sein :gruebel:


Regan - Di 04.11.08 12:45

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Hast du schonmal versucht, die Startverzögerung für den Autostart zu benutzen? Probier mal 20 Sekunden aus, ob es dann vielleicht funktioniert.

Ich habe sie schon benutzt, aber auf 10 Sekunden. Auf 20 Sekunden kommt kein Fehler mehr :gruebel: . Naja, jedenfalls geht es :wink: .


littleDave - Di 04.11.08 17:37

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Hast du schonmal versucht, die Startverzögerung für den Autostart zu benutzen? Probier mal 20 Sekunden aus, ob es dann vielleicht funktioniert.

Ich habe sie schon benutzt, aber auf 10 Sekunden. Auf 20 Sekunden kommt kein Fehler mehr :gruebel: . Naja, jedenfalls geht es :wink: .

Dann bin ich ja erstmal beruhigt. Aber ich werde den Initialisierungs-Ablauf noch umstellen, so dass - wenn der Fehler noch kommen sollte - der Rest schon abgearbeitet ist bzw. noch wird.

BTW: irgendwie bekomm ich keine Benachrichtigungs-eMails mehr :gruebel:


Kroko - Di 04.11.08 21:46

ich auch nicht, :gruebel:


Regan - Mi 05.11.08 13:40

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Hast du schonmal versucht, die Startverzögerung für den Autostart zu benutzen? Probier mal 20 Sekunden aus, ob es dann vielleicht funktioniert.

Ich habe sie schon benutzt, aber auf 10 Sekunden. Auf 20 Sekunden kommt kein Fehler mehr :gruebel: . Naja, jedenfalls geht es :wink: .

Dann bin ich ja erstmal beruhigt. Aber ich werde den Initialisierungs-Ablauf noch umstellen, so dass - wenn der Fehler noch kommen sollte - der Rest schon abgearbeitet ist bzw. noch wird

Ich muss mich revidieren: Es kommt doch wieder ein Fehler.


littleDave - Mi 05.11.08 14:17

user profile iconKroko hat folgendes geschrieben Zum zitierten Posting springen:
ich auch nicht, :gruebel:

Ich hab jetzt wieder ne Nachricht bekommen :) - hab dafür auf "Thema nicht mehr beobachten geklickt" und danach wieder auf "Thema beobachten".

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:

Hast du schonmal versucht, die Startverzögerung für den Autostart zu benutzen? Probier mal 20 Sekunden aus, ob es dann vielleicht funktioniert.

Ich habe sie schon benutzt, aber auf 10 Sekunden. Auf 20 Sekunden kommt kein Fehler mehr :gruebel: . Naja, jedenfalls geht es :wink: .

Dann bin ich ja erstmal beruhigt. Aber ich werde den Initialisierungs-Ablauf noch umstellen, so dass - wenn der Fehler noch kommen sollte - der Rest schon abgearbeitet ist bzw. noch wird

Ich muss mich revidieren: Es kommt doch wieder ein Fehler.

Ok - ich hab im Anhang mal mein aktuelles Development - SnapShot angehängt. In der hab ich die Erstellungsreihenfolge geändert. Außerdem hab ich die Exception mal komplett abgefangen. Was mich jetzt interessieren würde ist, ob das TrayIcon bedienbar ist, da du ja gemeint hast, dass es angezeigt wird.

ACHTUNG: diese Development-SnapShot-Version ist noch nicht ausführlich getestet! Bitte benutzt diese Version nicht - die ist nur zum Testen.


henni - Mi 05.11.08 16:26

Also bei mir kommt der Fehler auch immer.
Verzögerung habe ich noch nicht eingestellt, werde es aber mal testen.
Und ich finde die deutsche Übersetzung spitze!


Regan - Mi 05.11.08 22:05

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Ok - ich hab im Anhang mal mein aktuelles Development - SnapShot angehängt. In der hab ich die Erstellungsreihenfolge geändert. Außerdem hab ich die Exception mal komplett abgefangen. Was mich jetzt interessieren würde ist, ob das TrayIcon bedienbar ist, da du ja gemeint hast, dass es angezeigt wird.

Also bis jetzt habe ich keine Probleme feststellen können. Wenn noch was kommen sollte, dann schreibe ich das natürlich sofort hier.
Ist eigentlich eine Homepage geplant, wo man seine eigenen Widgets hochladen kann?


littleDave - Mi 05.11.08 22:20

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Also bei mir kommt der Fehler auch immer.
Verzögerung habe ich noch nicht eingestellt, werde es aber mal testen.

Ich glaub, ich hab das Problem behoben. Aber danke nochmal für den Hinweis

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Und ich finde die deutsche Übersetzung spitze!

Danke :) :party:

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
Ok - ich hab im Anhang mal mein aktuelles Development - SnapShot angehängt. In der hab ich die Erstellungsreihenfolge geändert. Außerdem hab ich die Exception mal komplett abgefangen. Was mich jetzt interessieren würde ist, ob das TrayIcon bedienbar ist, da du ja gemeint hast, dass es angezeigt wird.

Also bis jetzt habe ich keine Probleme feststellen können. Wenn noch was kommen sollte, dann schreibe ich das natürlich sofort hier.

Vielen dank fürs Testen. Werd bald eine aktuelle Version für den Hauptpost hochladen

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Ist eigentlich eine Homepage geplant, wo man seine eigenen Widgets hochladen kann?

Ist geplant und gerade in der Entwicklung. Bin auch schon ziemlich weit, jedoch eins der wichtigsten Sachen ist noch nicht fertig - die Account-Erstellung. Wenn sich das mal wer anschauen will: hier [http://widgets.godlikesoft.de/] ist die aktuellste Version online.


littleDave - Do 06.11.08 14:10

Version 0.66 ist online!

Neue Website: hier [http://widgets.godlikesoft.de]

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.

Manche haben ja gemeint, dass sie einen Fehler mit dem TrayIcon beim Autostart bekommen - das hab ich nun auch behoben.

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


littleDave - Mi 12.11.08 14:26

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 hier (ca. 1.5 MB) [http://widgets.godlikesoft.de/?page=download&type=latest]. Den ChangeLog findet ihr hier [http://widgets.godlikesoft.de/?page=program&mode=info#changelog].

Grüße
Dave


littleDave - Do 13.11.08 14:58

Is ja relativ ruhig geworden hier. Aber bei mir gehts munter weiter:
Version 0.68 ist online.

Ich habe einen großen Bug in den Security-Settings behoben. Daher hab ich die Version auch sofort hochgeladen.

Auch neue Widgets gibt es zu verzeichnen:


littleDave - Sa 15.11.08 16:45

Version 0.69 ist online.

Ich habe es nun endlich geschafft, die auf der Website [http://widgets.godlikesoft.de] 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 [http://widgets.godlikesoft.de/?page=download&type=latest]
Grüße
Dave


littleDave - Mi 19.11.08 18:04

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:


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-Quelltext
1:
2:
3:
4:
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 [http://widgets.godlikesoft.de/?page=program&mode=info#changelog] zu Version 0.7 durchzulesen.


henni - Mi 19.11.08 19:37

Das Programm wird ja immer besser!
Das mit der Sprache gefällt mir wirklich sehr gut!
Auch, das man die Widgets direkt aus dem Programm herunterladen kann!

Folgende Verbesserungsvorschläge sind insgesamt bei mir wieder zusammengekommen:

Erstmal die Allgemeinen:


Hier meine Verbesserungsvorschläge zum Download Manager:



Hier die Verbesserungsvorschläge zum "Widget Hinzufügen" Dialog:


Ansonsten sehr sehr gut und weiter so!
Ich werde das Programm schön weiterempfehlen!


Hidden - Do 20.11.08 18:34

Hi,

Das hört sich nach beeindruckenden Änderungen an :zustimm: Habe leider heute und eventuell auch am WE nichtmehr die Zeit, die neue Version zu testen :(.

Widgets lassen sich also jetzt herunterladen. Ist ein Update für das Hauptprogramm auch möglich(Engine startet zweites Programm, einen Downloadmanager, und beendet sich selbst)?

mfG,


strahlemann - Sa 22.11.08 18:54

So ich hab das jetzt mal runtergeladen und darf meinen ersten Testbericht veröffentlichen

Gleich vorweg, ich bin begeistert, so viel potential wie diese sache hat. Toptoptop.

Allerdings meine Verbesserungsvorschläge:

-) Bei jedem Widget sollte man in den Einstellungen die Opacity mittels schieberegeler verstellen können. Zusätzlich sollte man mit einer Check-box Einstellen können, dass bei einem Mouseover-Event das jeweilige Widget intransparent wird so lange, bis die Maus wieder weg vom jeweiligen Docklet ist.

-) Der Widget-Selbermacher geht bei mir nicht. Zum ersten Fenster, wo man Speicherort und so festlegen kann komm ich noch, aber dann klick ich weiter und es kommt diese Fehlermeldung "Zugriffsverletzung bei Adresse 0064EAE9 in Modul 'WidgetEngine.exe'. Lesen von Adresse 00000014"

-) Dieses Programm nimmt mir meinen anderen Programmen das Maximieren. Jetzt zum Beispiel ist FF maximiert, rechts daneben sehe ich die Sidebar, obwohl sie auf immer im Hintergrund bzw. Desktopsymbol eingestellt ist.

-) Zu den Widgets: Warum sind die nicht alle gleichbreit? Das schaut irgendwie dann komisch aus. Wenn man alle Widgets auf sagen wir 195px Breite normen könnte wäre es viel hübscher. Skaliert man alle Widgets auf diese GRöße schauts auch blöd aus.

-) Das Batteriewidget macht viel zu selten ein Update. Ich hab versucht, die Zahl beim Timer umzustellen, jedesmal wenn ich das gemacht hab und gespeichert hab, hat sich nix getan und wenn ich den Editor wieder aufgemacht hab, stand wieder die alte Zeit beim Timer

-) Das Webradio sollte die Möglichkeit haben, Stationen zu speichern. Ich hör mehrere Sender und kann mir aber nicht die stream-Urls merken. Das wäre hilfreich.

-) Bei der Festplattenanzeige steht bei mir die Anzeige des Verbleibenden Speicherplatzes auf dem Fortschrittsbalken. Das ist irgendwie störend wie ich finde. Des weitern sollte sich mit einem Doppelklick auf die Festplatte der Explorer öffnen und die Festplatte anzeigen, ganz so wie bei einer Verknüpfung.

-) Und zum Ram-Cpu anzeige. Warum zeigt er mir bei beiden Cores etwas an, wenn ich gar keinen Dualcore habe?

Außerdem würd ich finden, dass da mehr Infos reingehören, unter anderem,
-) Lautstärke, am besten gleich dort einstellbar
-) Batterie
-) Wlan-Stärke
-) wenn dir ganz langweilig ist ein VU-Meter
-) ähnlichen Blödsinn

Und der User kann dann aussuchen, welche Infos er in diesem Kastl angezeigt haben will und welche nicht.

-)Das Taskleistensymbol ist zu fein, zu Detailgetreu. Da wäre was einfaches besser.

-)Beim RSS-Feed sollte leicht einstellbar sein, welche Quellseite man haben will. Ich hätte ganz gerne "die Zeit".

-)Das Widget fürs Netzwerk geht bei mir leider gar nicht. Zugegeben, ich hab auch so ein Huawei-Mobiles Internet, ich weiß nicht obs da funktionieren kann oder nicht, aber er zeigt nicht mal meine IP-Adresse(n) an.

-)Zu den Suchwidgets. Wäre es nicht viel einfacher, man vereint diese Suchwidgets alle in einem. Bei doppeltem Klick auf das Icon öffnet sich nach wie vor die jeweilige Seite im Internet-browser, bei einfachem allerdings öffnet sich ein Dropdownmenu und man kann aussuchen, auf welcher Seite man jetzt grad suchen mag. Da sollte der User auch wieder einstellen können, welche Seiten im Dropdownmenu angezeigt werden sollen.

-)Wie kann ich die Engine selber, also nicht beim Windowsstart starten, ohne das gleich das Einstellungsfenster kommt?

-) Widgetwünsche: Anzeige mit der Uptime, bei Doppelklick drauf kommt das Windows-Abschalt-Auswahl-Fenster.


Mehr fällt mir im Momement nicht ein, is eh recht viel, ich hoff du bist mir nicht böse.


littleDave - So 23.11.08 16:35

Erstmal sorry, dass ich mich so lange nicht gemeldet habe. Ich hab im Moment viel zu tun und kam bisher nicht mal zum Antwort schreiben zu euren Beiträgen.
Erstmal vielen Dank an alle, die sich die Mühe gemacht haben und mir Feedback geschrieben haben!


user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Eine Option "Zeichne alle Widgets neu" z.b. unter dem Menüpunkt Ansicht, damit man solche Widgets neuzeichnen lassen kann, die sich an geänderte Eigenschaften anpassen sollen.

Hab ich mir aufgeschrieben, hats aber leider nicht in diese Version geschafft. Aber in der nächsten
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Speichern der Option "Vorschau automatisch aktualisieren"

Erledigt
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Automatisches Update, also dass das aktuelle Programm heruntergeladen, entpackt und neugestartet wird

Will ich so nicht machen, da es da extrem viele Faktoren gibt, jedoch einer ist am wichtigstem: ein automatischer Download bringt nicht viel wenn man keine Schreibrechte im Programmordner hat - wovon ich ausgehen muss. Klar kann man das alles versuchen, auszubessern (Adminrechte Anfordnern usw.), jedoch lohnt sich der Aufwand dafür nicht - finde ich.
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Ist vllt. schwer, aber: sobald ich ein DirectX Spiel starte, schieben sich die Widgets immer zeitweise darüber. Hier wäre es sehr gut, wenn dein Programm erkennt, das ein DX Programm gestartet wurde.

So gut wie unmöglich. Ich müsste wahrscheinlich DX hooken (jedenfalls die Initialisierungsfunktion) - doch das bringt nichts, wenn breits ein DX-Fenster existiert. Der Aufwand ist viel zu groß für sowas. Ich bin im Moment dabei, einen globalen Hot-Key einzuführen (funktioniert in der neusten noch nicht), mit dem man alle Widgets ausblenden kann.
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Das Fading dauert mir ein bisschen zu lange, es wäre gut, wenn man das irgendwo einstellen kann

Erledigt
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Eine automatische Widget Update Funktion

Bin schon dabei, dauert aber noch etwas

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Besseres Verwalten der Downloads: Wenn ich mir ein Widget von dem Server lade, und es dann fertig ist, muss ich in der Liste "Fertige Downloads" immer suchen, um dieses zu finden. Besser wäre es, wenn die entweder sortiert oder irgendwie anders verwaltet werden. (z.b. wie die Downloadliste bei FireFox)

Ich hab die Liste der fertigen Downloads jetzt Alphabetisch sortiert, hoffentlich hilft das schon etwas
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Eine Funktion, mit der man die Einträge der Liste der abgeschlossen Downloads entfernen kann

Erledigt
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Bei mir kommt eine Zugriffsverletzung, wenn ich ein Widget hinzufügen will, während ich gerade eins herunterlade

Erledigt
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Eine Progressbar, die den Fortschritt des Downloads anzeigt (Also für jedes Widget eine eigene Progressbar)

Ist auf der ToDo-Liste, jedoch weiter unten


user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Der Filter hat einen kleinen Bug: er filter das Wort "downloads" mit, d.h. wenn man nach einem Widget sucht, das "Download Manager" heißt, und "Download" eingibt, werden trotzdem noch alle angezeigt, da unter jedem Widget der Text "(X Downloads)" steht. Dieser wird bei der Suche mit berücksichtigt, was zu diesem Fehlverhalten führt.

Erledigt
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
- Bei schwarzer Farbe sind einige Hintergründe der Widgets grünlich, andere nicht. Das tritt nur bei lokalen Widgets auf, also bei denen, die man heruntergeladen hat.
- Bei weißer Farbe sind einige Hintergründe der Widgets leicht bläulich, andere, wie gesagt (s.o.), nicht

It's not a bug - its a feature. Die Markierung zeigt, dass mindestens eine Instanz des Widgets aktiv ist
user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
vllt. Zwischenspeichern der Bilder der Widgets aus dem Internet und dann bspw. nur anhand einer kleinen Prüfsumme feststellen, ob sich das Bild geändert hat und es erst dann neu laden

Gute Idee, werd dafür aber noch ein paar Sachen beim Server verändern müssen, daher dauert das noch etwas
[quote="user profile iconhenni"(534506)]Bei der Kategorieeinteilung vllt. eine andere Komponente als die ListBox nehmen, denn irgendwie passt die Listbox da nicht soo gut, dann das Doppelklicken und das markieren nervt ein bisschen :)[/list]
Ist keine ListBox, sonder ein TreeView. Aber ich werd mir was überlegen.

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Ansonsten sehr sehr gut und weiter so!
Ich werde das Programm schön weiterempfehlen!

Das hoffe ich :)

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
So ich hab das jetzt mal runtergeladen und darf meinen ersten Testbericht veröffentlichen

Gleich vorweg, ich bin begeistert, so viel potential wie diese sache hat. Toptoptop.

Danke für das Lob und für dein Feedback :)

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Bei jedem Widget sollte man in den Einstellungen die Opacity mittels schieberegeler verstellen können. Zusätzlich sollte man mit einer Check-box Einstellen können, dass bei einem Mouseover-Event das jeweilige Widget intransparent wird so lange, bis die Maus wieder weg vom jeweiligen Docklet ist.

Die Transparenz kann man in der neuen Version schonmal einstellen, jedoch das mit dem automatischen Faden noch nicht. Steht aber auf meine ToDo-Liste.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Der Widget-Selbermacher geht bei mir nicht. Zum ersten Fenster, wo man Speicherort und so festlegen kann komm ich noch, aber dann klick ich weiter und es kommt diese Fehlermeldung "Zugriffsverletzung bei Adresse 0064EAE9 in Modul 'WidgetEngine.exe'. Lesen von Adresse 00000014"

Danke für den Hinweis - hab ich behoben

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Dieses Programm nimmt mir meinen anderen Programmen das Maximieren. Jetzt zum Beispiel ist FF maximiert, rechts daneben sehe ich die Sidebar, obwohl sie auf immer im Hintergrund bzw. Desktopsymbol eingestellt ist.

Das ist ja gerade der Sinn der SideBar: sie verkleinert den Desktop-Bereich um die Widgets immer sichtbar zu lassen.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Zu den Widgets: Warum sind die nicht alle gleichbreit? Das schaut irgendwie dann komisch aus. Wenn man alle Widgets auf sagen wir 195px Breite normen könnte wäre es viel hübscher. Skaliert man alle Widgets auf diese GRöße schauts auch blöd aus.

Das wird nicht möglich sein, da jeder Widgets erstellen kann und diese beliebig klein/groß sein können.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Das Batteriewidget macht viel zu selten ein Update. Ich hab versucht, die Zahl beim Timer umzustellen, jedesmal wenn ich das gemacht hab und gespeichert hab, hat sich nix getan und wenn ich den Editor wieder aufgemacht hab, stand wieder die alte Zeit beim Timer

Wenn du das Widget bearbeitest, musst du es vorher schließen (falls du es offen hast). Sonst können die Änderungen nicht gespeichert werden. Aber danke für den Hinweis - werd bald eine neue Version hochladen.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Das Webradio sollte die Möglichkeit haben, Stationen zu speichern. Ich hör mehrere Sender und kann mir aber nicht die stream-Urls merken. Das wäre hilfreich.

Wird kommen, sobald ich eine TwgListView-Komponente erstellt habe. Dann wird man die Stationen beliebig auswählen können.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Bei der Festplattenanzeige steht bei mir die Anzeige des Verbleibenden Speicherplatzes auf dem Fortschrittsbalken. Das ist irgendwie störend wie ich finde. Des weitern sollte sich mit einem Doppelklick auf die Festplatte der Explorer öffnen und die Festplatte anzeigen, ganz so wie bei einer Verknüpfung.

Danke für die Vorschläge - werd mich mal drannsetzen und schauen, was ich davon gut einbauen kann.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-) Und zum Ram-Cpu anzeige. Warum zeigt er mir bei beiden Cores etwas an, wenn ich gar keinen Dualcore habe?

:gruebel: seltsam. Hab das Widget auf einem Single-Core und auf einem Dual-Core getestet und bei beiden hats funktioniert :gruebel:

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-)Beim RSS-Feed sollte leicht einstellbar sein, welche Quellseite man haben will. Ich hätte ganz gerne "die Zeit".

Ich hab noch kein Widget-Grundgerüst, was mit allen Feedtypen (RSS 0.9, RSS 2.0, Atom, ...) umgehen kann. Sobald ich da mal was gemacht habe, werd ich so ein Widget erstellen.

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-)Das Widget fürs Netzwerk geht bei mir leider gar nicht. Zugegeben, ich hab auch so ein Huawei-Mobiles Internet, ich weiß nicht obs da funktionieren kann oder nicht, aber er zeigt nicht mal meine IP-Adresse(n) an.

Ich hatte schonmal jemanden, der das gesagt hat. Ich bin noch nicht draufgekommen, warum das so ist :gruebel:

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-)Zu den Suchwidgets. Wäre es nicht viel einfacher, man vereint diese Suchwidgets alle in einem. Bei doppeltem Klick auf das Icon öffnet sich nach wie vor die jeweilige Seite im Internet-browser, bei einfachem allerdings öffnet sich ein Dropdownmenu und man kann aussuchen, auf welcher Seite man jetzt grad suchen mag. Da sollte der User auch wieder einstellen können, welche Seiten im Dropdownmenu angezeigt werden sollen.

Werd ich mir mal überlegen ;-)

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
-)Wie kann ich die Engine selber, also nicht beim Windowsstart starten, ohne das gleich das Einstellungsfenster kommt?

Einstellungen -> Programmeinstellungen -> Normaler Programmstart -> minimiert starten

user profile iconstrahlemann hat folgendes geschrieben Zum zitierten Posting springen:
Mehr fällt mir im Momement nicht ein, is eh recht viel, ich hoff du bist mir nicht böse.

Wieso böse :shock: im Gegenteil: danke für deine wirklich tollen Vorschläge. :zustimm:


@All:
Sodala, es gibt mal wieder eine neue Version: Version 0.71

Da ich jetzt auch schon wieder los muss, kann ich diesmal leider nicht hervorheben, was sich alles genau getan hat. Daher poste ich hier erstmal nur den ChangeLog, den ihr auch hier [http://widgets.godlikesoft.de/?page=program&mode=info#changelog] finden könnt:


Download-Link: hier [http://widgets.godlikesoft.de/?page=download&amp;type=latest] oder im ersten Post
Grüße
Dave


strahlemann - So 23.11.08 22:54

Zitat:
-) Dieses Programm nimmt mir meinen anderen Programmen das Maximieren. Jetzt zum Beispiel ist FF maximiert, rechts daneben sehe ich die Sidebar, obwohl sie auf immer im Hintergrund bzw. Desktopsymbol eingestellt ist.

Das ist ja gerade der Sinn der SideBar: sie verkleinert den Desktop-Bereich um die Widgets immer sichtbar zu lassen.


Da wäre eine Checkbox bei den Einstellungen zum Sidebarwidget zum Ausschalten nicht übel. Ich mag das nämlich glaub ich nicht, ich hätts gern lieber quasi knapp überm Bildschirmhintergrund aber unter den Fenstern. Halt so wie die anderen Widgets sind wenn das Sidebar-widget nicht dabei ist.


passiv - Mo 24.11.08 15:05

das warn ja jetzt alles recht lange posts ... weiß nicht, ob meine meldungen schon veraltet und 2 posts vorher erwähnt sind.
trotzdem: der widget-hinzufügen-dialog is mir ungut. ich muss unten ändern, ob ich online stöbern will. wenn ich was downloade, aber weiterstöbern will, muss ich das fenster wieder neu aufmachen. jedes mal wenn man aufmacht kommt man aber in den offline-bereich. wenn man dann wieder auf online wechselt, kommt man wieder in die oberste sparte "Utilities". wär gut, wenn er sich das letzte merken würd, oder in die "neue widgets" geht. und dann ist da noch der doppelklick im kategorie-menü an der linken seite des online-fensters. das is irgendwie komisch, weil die dinger doch wie links aussehen und sich verhalten.

das batterie-widget zeigt immer noch den kryptischen hextoint(FFFFFF) an. wär zumindest schöner, wenn er dann einfach nix anschreibt.

aber sonst: na bumm!! das ding is ja schon riesig!! (vom Umfang her ...)

mfg
Fabian


littleDave - Do 27.11.08 16:56

Version 0.72 ist online!

ChangeLog:


Download hier [http://widgets.godlikesoft.de/?page=download&type=latest] oder im ersten Post


Yogu - Do 27.11.08 20:45

Schau dir das Bild im Anhang mal ganz genau an... :lol:

Edit: Du hast somit bewiesen, dass die OK-Taste nicht idYes zurückliefert (d.h. es passiert gar nichts). Muss ich die Version jetzt manuell runterladen? :(


littleDave - Do 27.11.08 22:26

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir das Bild im Anhang mal ganz genau an... :lol:

Edit: Du hast somit bewiesen, dass die OK-Taste nicht idYes zurückliefert (d.h. es passiert gar nichts). Muss ich die Version jetzt manuell runterladen? :(

Ich hab das Problem schon in der aktuellen Version schon behoben. Ich hab da aus versehen die Konstante MB_OK statt MB_YESNO gewählt (da war ich wohl geistig etwas abwesened ;-)). Jedenfalls hab ich das bereits behoben.

Aber danke nochmal für den Hinweis :zustimm:

Grüße
Dave


Hidden - So 14.12.08 17:55

Hi :)

Ich habe nun endlich auch mal wieder die Zeit gefunden, auf die neuste Version aufzurüsten :D. Und da sehe ich: Ich darf jedes einzelne meiner Widgets neu compillieren. Könntest du eine Option einbauen, die für mich alle nicht lauffähigen Widgets neu compilliert?

Auch wäre es ganz schön, wenn du die vielen Error-Messages zu einer einzigen zusammenfassen könntest - eventuell ein seperates Fenster mit Meldungstext, einer CheckListBox und einem knopf für "recompile", "search for downloads" und cancel.

Nach wie vor ein tolles Programm, ohne das ich garnichtmehr arbeiten will :zustimm:

E: Im Fenster "" könntest du in der Kategorieübersicht links die Auswahl auf einen Einfachklick stellen(Momentan ist Doppelklick). (Oder handelt es sich um ein unbehebbarres Problem durch eine Fremdkomponente?)

mfG,


Yogu - So 14.12.08 20:29

Hallo,

ich habe ein Problem mit der Sidebar. Da ich nur eine Auflösung von 1024 Pixeln in der Breite habe, möchte ich sie nur auf dem Desktop anzeigen. Das klappt auch ganz gut - allerdings schiebt sie sich immer vor die anderen Widgets. Ich habe in allen den Widgettyp "Desktopsymbol" eingestellt. Trotzdem ist, wenn ich den "Desktop anzeige" (Windows+D), die Sidebar immer vorne.

Das Problem habe ich vorerst damit gelöst, dass die Sidebar keine Mausevents mehr empfängt, und so kann ich einmal über alle Widgets fahren, und sie schieben sich wieder nach vorne. Aber das kann doch keine Lösung sein.

Noch was zum Fehlerfinden: Das Problem tritt wirklich nur dann auf, wenn ich den Desktop anzeige. Schon mit Windows+M simmt die Reihenfolge wieder.

Grüße,
Yogu


Hidden - Do 05.02.09 22:14

Hi :party:

Das Projekt hier ist einfach zu schön, um im Sande zu verlaufen ;) *push*

Wie sieht's mit einer Fortführung aus?

mfG,


henni - Do 05.02.09 22:53

Wieso, um im Sande zu verlaufen?
Ich benutze es immer noch eifrig weiter!


Tony-S - Fr 06.02.09 01:36

Meinen allergrößten Respekt, tolles Programm - auch weil meine original Sidebar nicht mehr funktioniert :D.

Wenn ich auch mal so gut bin wäre ich froh :D.


Kroko - Mo 09.02.09 12:30

user profile iconhenni hat folgendes geschrieben Zum zitierten Posting springen:
Wieso, um im Sande zu verlaufen?
Ich benutze es immer noch eifrig weiter!
Ich auch, :lol: ,
auch wenn der automatische download von .71 auf 0.72 nicht zu funktionieren scheint.


Teekeks - Mi 11.02.09 16:24

Hi!
Das Projekt siet erstmal absolut beeindruckend aus!
Nur: Irgentwie kennt mein PC das Format .7z nicht. Was ist das für eins?

gruß Teekeks


elundril - Mi 11.02.09 16:28

mit dem hier kannst du es öffnen: http://www.7-zip.org/


Teekeks - Mi 11.02.09 18:57

Ah. Danke!
Ein richtig gutes Programm (die Engine mein ich)!

gruß Teekeks


grayalphawolf - Mi 18.02.09 16:26
Titel: Verdammt gutes Programm, aber...
... habe ich hier auch die Möglichkeit, eine externe Anwendung ( z.B. aus dem Netzwerk, von lokalen Rechner, etc) zu starten? Da ich ein klein wenig mit Delphi arbeite und hier die ShellAPI für so etwas benutzen kann, wäre es schön, wenn ich zumindest diese entweder eingebunden bekäme oder mir jemand einen anderen Weg zum Ziel zeigen würde...

Vielen Dank vorab...


Hidden - Mi 18.02.09 16:35

Hi :)

Externe Anwendungen auszuführen, sollte standardmäßig nicht dabei sein - es soll ja weiterhin möglich sein, alle Widgets gefahrlos auszuführen.

Schau dir am besten mal das Plugin-Konzept an, damit wäre so etwas möglich.

mfG,


COMMANDER86 - Mi 18.02.09 17:20

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:

Externe Anwendungen auszuführen, sollte standardmäßig nicht dabei sein


Moin,

würde mich auch interessieren. Es ist also auch nicht möglich beispielsweise so eine Shortcut-Leiste für Office zu basteln? Oder eine für den User frei definierte Buttonleiste?

Gruß
Fabian


Hidden - Mi 18.02.09 17:58

user profile iconCOMMANDER86 hat folgendes geschrieben Zum zitierten Posting springen:
Es ist also auch nicht möglich beispielsweise so eine Shortcut-Leiste für Office zu basteln? Oder eine für den User frei definierte Buttonleiste?


user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir am besten mal das Plugin-Konzept an, damit wäre so etwas möglich.
:)


k100 - Di 03.03.09 19:44

Hallo,

leider kann ich das Archiv nicht öffnen. Habe mir die aktuelle Version von 7Zip besorgt, bekomme aber immer die Meldung, dass die Datei nicht als Archiv geöffnet werden kann. Ich habe das jetz auch auf unterschiedlichen Rechnern versucht.... ohne Erfolg.

Mich interessiert das Projekt sehr und würde mich freuen, wenn mir jemand einen Tip geben kann.

Danke im voraus.

Ach ja: Ich habe auch andere Versionen des Projektes versucht, auch ohne Erfolg.


Yogu - Di 03.03.09 20:22

Hallo user profile iconk100,

das ist seltsam - mit PowerArchiver [http://www.powerarchiver.com/] kann ich das Archiv problemlos entpacken.

Angehängt eine ZIP-Variante der aktuellen Version (0.72). Ich hoffe, die klappt bei dir.

Grüße,
Yogu


hui1991 - Di 03.03.09 20:59

Also bei mir hat WinRAR gesagt, dass des Archiv keine Daten enthält.
Das bei allen Archiven die auf der Homepage zu finden sind.
Früher hats mal funktioniert, heute aber irgendwie nicht.


littleDave - Di 03.03.09 21:02

DA BIN ICH MAL WIEDER :party:

Ich war jetzt ne ganze weile leider nicht mehr online und konnte somit leider auch nicht auf die ganzen Beiträge antworten.

Ich hab im Dez. ne Ausbildung angefangen und komm im Moment kaum noch dazu Delphi überhaupt zu öffnen. Jetzt hab ich mir aber in den letzten Wochen mal wieder etwas Zeit für Delphi genommen und siehe da - ich kann es immer noch ;-)

Also ich wollt mal den aktuellen Stand mal wieder mitteilen:
Ich hab das Projekt leider seit dem letzten Release nicht mehr in Delphi offen gehabt - somit gibt es leider keine neue Version bis jetzt. Aber ich habe schon ein paar Gedanken:

Wie ich gerade schon geschrieben habe, hab ich in letzter Zeit (die letzten Tage) Delphi mal wieder offen gehabt und habe ein neues Projekt angefangen - was jedoch für die Widget-Engine ganz interessant sein dürfte.

Ich arbeite gerade an einer neuen Script-Engine dir sehr viele neue Features behinhalten wird. Ich habe gerade erst angefangen, daher gibt es noch kein vorzeigbares Programm, jedoch plane ich sehr viel:


Das ist schon ein ganz großer Batzen und ich werd damit wahrscheinlich nicht so schnell fertig.

Wenn die Script-Engine dann läuft, wollt ich diese dann in die Widget-Engine einbauen. Dafür wird sich leider SEHR SEHR SEHR viel ändern (was genau kann ich nicht sagen) und es wird somit auch sehr lange Dauern, bis das fertig wird.

Aber es ist ein wichtiger Schritt, da ich die aktuelle Script-Engine so unübersichtlich programmiert habe, dass selbst ich sie kaum noch warten kann.

Da ich mich in meiner mittlerweile sehr begrenzten Freizeit wahrscheinlich voll darauf konzentrieren werde, werd ich sehr wenig Zeit haben, die aktuelle Widget-Engine zu pflegen. Daher entschluldige ich mich bereits jetzt im Vorraus.

So, bevor ich jetzt weitermache, geh ich noch (leider) ganz kurz auf ein paar Posts ein:
@k100 & @Yogu:
Da ich am Freitag meinen Provider gewechselt habe, musste ich alles auf einen neuen Server hochladen. Dabei sind wohl einige Bytes abgehauen - ich hab das Problem behoben und das 7zip-File sollte wieder ok sein.

@grayalphawolf:
Du kannst eine Funktion dafür missbrauchen: in der Unit "idHTTP" gibt es die Funktion "HTTP_BrowseURL(url: string)". Die übergibst du den Anwendungspfad. Jedoch sind keine Parameter möglich und das Widget muss auf lokale Dateien zugreifen können.
Oder du machst ein PlugIn, dass einige Funktionen der ShellAPI zur Verfügung stellt.

@Teekeks:
Danke für dein Lob

@Yogu:
Wegen der SideBar hab ich nur Probleme - bei manchen funktionierts und bei manchen nicht :-(. Ich werd mich bei Gelegenheit wieder drann setzen

Viele Grüße
David


k100 - Di 03.03.09 21:23

Hi all,

super, die jetzige Version funktioniert! Dann kann ich ja jetzt mal loslegen und mich auch von der Engine begeistern lassen!

Danke!

Gruß,
k100


Webo - Di 03.03.09 21:28

user profile iconlittleDave hat folgendes geschrieben Zum zitierten Posting springen:
  • Schnellerer und besserer Compiler (bereits 70% der Features des alten Compilers fertig eingebaut)
  • Caching von bereits kompilierten Units (so wie in Delphi die .DCU - Dateien)
  • Einen Linker, der einen Optimizer behinhaltet (zu 70-80% fertig)
  • Eine kleinerer Byte-Code-Aufbau
  • Eine schnellere RunTime-Engine (ist schon zu ca. 40% fertig)
  • Richtiger Unit-Aufbau (unit ... interface ... implementation ... initialization ... finalization ... end.)
  • Object-Pascal!!! (eigene Klassen im Script erstellen) (noch nicht angefangen)
  • Records und Arrays (noch nicht angefangen)
  • Methoden überlaben (funktioniert schon)
  • Methoden forwarden (funktioniert schon)
  • Ein etwas anderer Unit-Aufbau (nicht vom Quelltext her, sondern von der Benutzung von Units):
    Ich arbeite zur Zeit sehr viel in C# und ich finde das generelle Design von .NET und den Klassen nicht schlecht. Ich hab mir gedacht, dass Units (wie die Namespaces in .NET) über mehrere Dateien gehen können
  • Statische Methoden (class procedure und class function) (funktioniert schon)
  • Vielleicht: string per default als Unicode-String
  • und noch so einiges mehr ...


Da hast du dir ja einiges (gutes) vorgenommen, *Lob*

Ich hoffe mal, du setzt das genau so schön um, wie du es schon mit der Widget Engine gemacht hast. Und ich hoffe darauf, dass du nicht allzu lange benötigst *g*


Yogu - Di 03.03.09 21:41

user profile iconWebo hat folgendes geschrieben Zum zitierten Posting springen:
Ich hoffe mal, du setzt das genau so schön um, wie du es schon mit der Widget Engine gemacht hast. Und ich hoffe darauf, dass du nicht allzu lange benötigst *g*

Und ich hoffe, du übernimmst dich nicht! Es ist wirklich ein Wahnsinn, was du alles erschaffst. Sysgy, die Skript-Engine, die Widget-Engine, und jetzt eine neue Skript-Engine - puh! :shock:

Aber natürlich bin ich auch froh darüber, dass du dich mal wieder hier blicken lässt. Ich hatte schon Angst, die Widget Engine staubt ein.

Grüße,
Yogu


littleDave - Di 03.03.09 21:56

user profile iconWebo hat folgendes geschrieben Zum zitierten Posting springen:

Da hast du dir ja einiges (gutes) vorgenommen, *Lob*

Ich hoffe mal, du setzt das genau so schön um, wie du es schon mit der Widget Engine gemacht hast. Und ich hoffe darauf, dass du nicht allzu lange benötigst *g*

Danke für das Lob - jedoch bin ich in meiner Freizeit sehr eingeschränkt, daher plane ich schon eine längere Zeit dafür ein.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Und ich hoffe, du übernimmst dich nicht!

Das hoffe ich auch - jedoch bisher hat es ganz gut geklappt ;-)

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Es ist wirklich ein Wahnsinn, was du alles erschaffst. Sysgy, die Skript-Engine, die Widget-Engine, und jetzt eine neue Skript-Engine - puh! :shock:

Wenn man mal eine Script-Engine geschrieben hat, fällt einem die zweite schon leichter. Ich weiß, die Liste ist schon sehr haarig, jedoch werd ich mein bestes geben.
Im Kopf hab ich schon wieder sehr viele Ideen für eine neue 3D-Engine (wobei ich dort ebenfalls die neue Script-Engine einsetzen will). Daher arbeite ich schon am nächsten Projekt. Aber noch ist keine Zeile für die 3D-Engine geschreiben - also Release: when it's done

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Aber natürlich bin ich auch froh darüber, dass du dich mal wieder hier blicken lässt. Ich hatte schon Angst, die Widget Engine staubt ein.

Im Moment ist bereits eine Staubschicht drüber, jedoch ist die noch nicht so dick ;-). Und so ein Projekt wollt ich schon bis zur Version 1.0 bringen ;-). Ob ich das zeitlich schaffe, weiß ich nicht, aber ich probier es


Florian H. - Sa 25.04.09 18:05

Mit was machst du die Widgets lauffähig? Nimmst du da ne Widget-Engine von Google, Yahoo oder dergleichen oder macht das alles dein Programm selber?

WEnn das alles dein Prog macht, versteh ich das richtig:
Du hast deine Widget-Engine die autostartet und die Widgets öffnet und anzeigt (den Code interpretiert).
Hast du irgendwo ne Datei/Dateien die erklären wie das ganze abläuft (also die Grundstrukturen)?

LG


Yogu - So 26.04.09 13:12

user profile iconFlorian H. hat folgendes geschrieben Zum zitierten Posting springen:
Mit was machst du die Widgets lauffähig? Nimmst du da ne Widget-Engine von Google, Yahoo oder dergleichen oder macht das alles dein Programm selber?

Das Programm besteht ja nur aus der Widget-Engine, also hat er sie wohl hoffentlich offensichtlich selbst geschrieben ;)

user profile iconFlorian H. hat folgendes geschrieben Zum zitierten Posting springen:
WEnn das alles dein Prog macht, versteh ich das richtig:
Du hast deine Widget-Engine die autostartet

Ob das Programm im Autostart steht, bestimmt der User. ;)

user profile iconFlorian H. hat folgendes geschrieben Zum zitierten Posting springen:
und die Widgets öffnet und anzeigt

Ja.

user profile iconFlorian H. hat folgendes geschrieben Zum zitierten Posting springen:
(den Code interpretiert).

Nein.

Die Script-Engine compiliert den Script zuerst, dann wird er ausgeführt. So, deswegen antworte ich überhaupt: Schau dir mal dieses Tutorial [http://wiki.delphigl.com/index.php/Tutorial_Scriptsprachen_Teil_1] an. Dort wird genial einfach erklärt, wie man einen Compiler und Emulator schreibt. Ein wichtiger Grundsatz für eine Widget-Engine.


Florian H. - So 26.04.09 14:56

Das Tutorial kenne ich :) Hab schon mal ein paar Zeilen davon gelesen, es dann aber wieder weggelegt weil ich keine Zeit hatte.

Danke für deine Antwort!

LG


Florian H. - Mo 27.04.09 17:59

@littledave: sind die Sourcen von deiner Widget-Engine auch freigegeben oder würdest du die lieber für dich behalten. Würd mich sehr freuen, wenn ich deinen code studieren könnte!

LG


Hidden - Do 17.12.09 23:04

hi :)

Ich grabe diesen Thread mal wieder aus - in der Hoffnung, dass du ihn beobachtest, und per Email darüber informiert wirst =) Es wäre doch nun wirklich zu schade, wenn dieses tolle Projekt einfach den Bach heruntergeht.

Ich verwende die Engine mit mehreren(teils selbstgeschriebenen) Widgets noch immer, und finde sie ist ein hervorragendes Beispiel dafür, wie man so etwas aufziehen sollte :!: Aber es wäre noch sehr viel mehr drin - und danach muss das hier mal richtig publik gemacht werden 8)

Wenn du also noch einmal ein wenig Zeit ins Programmieren stecken willst, will ich dir doch ans Herz legen, hier mal ein wenig Staub zu wischen :D Wahrscheinlich lohnt sich das Ausgraben schon, weil dann ein Paar Leute ehr im Forum darauf aufmerksam werden.

lg


Fighter#1 - Do 17.12.09 23:31

Mein XP Desktop ist immer mit ihr geschmückt=)!
Ich finde sie wahnsinnig hilfreich,h übsch und nützlich!

Würde mich auf über eine Fortführung des Projekts freuen*g*


Regan - Fr 18.12.09 00:23

Ich habe diese Engine hier in Australien auf zwei Rechnern installiert und alle sind damit sehr zufrieden. Bitte lass das Projekt also nicht sterben. Alternativ kannst du ja auch das Ganze als Gemeinschaftsprojekt machen.


Delete - Fr 18.12.09 15:23

Bei mir ist sie auch im Dauerbetrieb , irgendwie mag ich gar nicht mehr auf die Engine verzichten.Ich kann da die anderen nur unterstützen , lass das Projekt nicht sterben!

Zitat:
Alternativ kannst du ja auch das Ganze als Gemeinschaftsprojekt machen.

Opensource wäre da auch möglich und da ja der Entwickler anscheinend nicht mehr viel Zeit hat , wäre Opensource oder ein Gemeinschaftsprojekt , welches von jemand anderem geleitet wird , wohl besser.

MfG


Sinspin - Fr 18.12.09 19:30

Ich verwende sie auch. Und bestätige hier gleich mal das sie auch unter Win7 64Bit läuft. Lediglich das "Network Traffic" Widget hat nen kleinen Bug, das scheint bei mir rund 20 Netzwerkadapter zu finden obwohl nur zwei vorhanden sind.


Florian H. - Mo 21.12.09 23:09

Es würden sich sicher einige finden, die das Projekt weiterentwickeln. Ich weiß, dass du schon ne neue Script-Engine erstellt hast, die auch OOP kann, aber ich finde, die Widget-Engine verdient es, weiterentwickelt zu werden.

Denk mal drüber nach, ob du den Code nicht an ein paar Interessierte weitergeben möchtest. Würd mich freuen.

Schöne Grüße, Florian