![]() |
Re: Desktop Widget Engine (v0.41)
Zitat:
Zitat:
|
Re: Desktop Widget Engine (v0.41)
Ich hab gerade ein Update hochgeladen, mit dem das Problem mit den Mausevents behoben ist. Das Problem hat betrifft alle Widgets, daher ist ein komplettes Update empfehlenswert. Das Problem äußert sich so, dass man das jeweilige Widget zwar verschieben kann, es aber auf keine Maustasten reagiert. Das Problem dabei war die Methode, mit der ich die Widgets verschiebe.
Das Problem trat bei mir nur auf, wenn ich mehrere Widgets gleichzeitig offen habe, eine genau Zahl konnt ich dabei nicht festlegen. Das Problem ist, dass Windows anscheindend das MouseMove-Event sendet, obwohl die Maus nicht verschoben wurde. Ich hab jedenfalls das Problem jetzt behoben. Grüße Dave :hi: |
Re: Desktop Widget Engine (v0.41)
Also ich finde das Programm echt super :thumb:
Ich finde nur, das es einfach zu wenig Komponenten gibt zum Beispiel eine Progressbar fehlt mir! Kansnt du mir eventuell den code für diese "Firewall" geben wenn ein Widget Zugang zum Internet braucht? Ich versuch mich schon so lange an einer Firewall aber irgendwie krieg ich das nicht hin. Ist die Firewall überhaupt von dir, ja oder? |
Re: Desktop Widget Engine (v0.41)
Zitat:
Zitat:
Der Zugriff zum Internet ist so geregelt: Das Programm an sich bietet jedem Widget die Möglichkeit an, bestimmte Anfragen anfragen ins Internet/Netzwerk zu senden und zu empfangen. Diese Methoden werden von der ScriptEngine nicht direkt aufgerufen - stattdessen wird eine vorgeschaltete Dummy-Methode aufgerufen, die ungefähr so aussieht (mal für IdHTTP):
Delphi-Quellcode:
Das ganze ist natürlich noch etwas erweitert, aber der Grundaufbau ist so relativ einfach zu beschreiben. Die Funktion AllowInternetConnection schaut dabei ungefähr so aus:
function TIdHTTP_Get(Sender: TidHTTP; Url: string): string;
begin // hier der Security-Layer bzw. die "Firewall" if AllowInternetConnection(Url) then result := Sender.Get(Url) else result := ''; end;
Delphi-Quellcode:
Wenn du wirklich mal eine in Delphi geschriebene Firewall die anschauen willst (sammt Quelltext), solltest du mal bei
function AllowInternetConnection(Url: string): boolean;
begin // Grundlegende Abfrage, ob das Widget überhaupt ins Internet darf result := CurrentWidget.Security.NetworkAllowed; if result then begin // Wenn ich hier angekommen bin, darf das Widget ins Internet. // Nun muss ich noch überprüfen, ob das Widget ohne Nachrage beim // Benutzer ins Internet darf if not CurrentWidget.Security.NetworkWithoutUserConfirmation then begin // Jetzt frag ich den Benutzer ob er das auch erlaubt case MessageDlg('Das Widget blablabla will sich zu '+URL+' verbinden.', mtWarning, [mbYes, mbNo], 0) of // Benutzer sagt ja ID_YES : result := True; ID_NO : result := False; end; end else begin // Wenn ich hier her komme, dann darf das Widget immer ins Internet // - auch ohne den Benutzer zu fragen. // Dieser Teil ist zwar nicht im eigendlichen Quelltext und dient hier // nur als Verdeutlichung, da result ja schon True ist result := True; end; end; end; ![]() |
Re: Desktop Widget Engine (v0.41)
Vielen Dank für deinen ausführlichen Post! Deine Methode, funkitoniert die nur bei Plugins von deine, Programm oder schlägt diese Methode so bei jeder Anwendung "alarm"?
|
Re: Desktop Widget Engine (v0.41)
Wie soll diese Methode denn bei anderen Programmen Alarm schlagen?
|
Re: Desktop Widget Engine (v0.41)
Zitat:
Zitat:
|
Re: Desktop Widget Engine (v0.41)
Natürlich funktioniert diese Methode nur bei den Widgets :zwinker:. Hab ja keinen Hook - außerdem, warum sollte meine Widget Engine eine Firewall sein ;-)
Zitat:
|
Re: Desktop Widget Engine (v0.5)
Schon wieder ich :stupid: Version 0.5 ist jetzt online.
Ich hab mal wieder die Widget-Möglichkeiten etwas erweitert. Jetzt ist es möglich, Edit-Felder, CheckBox-Felder sowie Fortschrittsanzeigen hinzuzufügen. Dadurch kann man jetzt schon bessere und interaktivere Widgets erstellen. Was zwar noch fehlt ist die Möglichkeit, mehrere Forms in einem Widget zu benutzen, jedoch bin ich mir noch nicht sicher, wie ich das genau machen will. Außerdem hab ich mich mal an die Optimierung gesetzt und hab sehr viel rausholen können. Ich habe mal 10 Widgets auf einmal geladen - zusammen mit 6 Fischen. Vorher hatte ich eine CPU-Auslastung von ca. 35-40%, jetzt habe ich eine Auslastung von ca. 2-10%. Zwar habe ich auch eine schnelle CPU (AMD X2 4800+), aber der Performanceschub ist schon gewaltig. Da ja letztes mal das Problem mit den Maustasten aufkam, hab ich mich mal hingesetzt und eine Lösung gefunden. Nun sollte das Problem nicht mehr auftreten. Da ich neue Komponenten hinzugefügt habe, hab ich auch gleich zwei neue Widgets erstellt: eine Suche für Google.com und eine Suche für die DelphiPraxis. Dabei muss man einfach nur die Suchbegriffe in das Edit-Feld der Widgets eingeben und der Browser öffnet sich mit der gewünschten Suche. Diesmal ist auch eine ProgressBar für Larsi mit dabei ;-) Der Download sowie der ChangeLog ist im ersten Post zu finden. Grüße Dave |
Re: Desktop Widget Engine (v0.5)
Ui, das geht ja echt flott bei dir. Ich wpnschte, ich köme mit meinen Projekten auch so schnell voran...
Also die CPU-Auslastung ist wirklich deutlich gesunken durch das Update. Ich kam mit meinen 6 Widgets (Clock, Shoutbox, 2 Suchfelder, Fisch, Network Traffic) nie über 1% Auslastung (2,4Ghz Quad). Das Networktraffic-Widget funktioniert bei mir aber nicht, was wahrscheinlich daran liegt, dass ich W-LAN habe. Ich mag es, wie der Fisch in der neuen Version wegschwimmt, wenn man versucht, ihn zu fangen. Ich hab ihn aber trotzdem erwischt :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz