Autor Beitrag
henni
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111
Erhaltene Danke: 2

Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
littleDave Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111
Erhaltene Danke: 2

Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
BeitragVerfasst: 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


Zuletzt bearbeitet von littleDave am Fr 24.10.08 01:13, insgesamt 1-mal bearbeitet
henni
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111
Erhaltene Danke: 2

Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
BeitragVerfasst: Mo 20.10.08 23:06 
Wenn du das Formular von TForm ableitest, geht das ganz einfach.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
BeitragVerfasst: 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 so aussieht:
ich habe das Programm "Visual Task Tips", 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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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?

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
littleDave Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111
Erhaltene Danke: 2

Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
BeitragVerfasst: 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 so aussieht:
ich habe das Programm "Visual Task Tips", 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.
Einloggen, um Attachments anzusehen!
henni
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
BeitragVerfasst: Di 21.10.08 18:05 
Also das Design sieht cool aus!
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
littleDave Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111
Erhaltene Danke: 2

Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: 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:

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: 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!

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
littleDave Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111
Erhaltene Danke: 2

Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
BeitragVerfasst: 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 ;-)