AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Desktop Widget Engine (v0.72)
Thema durchsuchen
Ansicht
Themen-Optionen

Desktop Widget Engine (v0.72)

Ein Thema von littleDave · begonnen am 27. Aug 2008 · letzter Beitrag vom 14. Aug 2011
Antwort Antwort
Seite 8 von 27   « Erste     678 91018     Letzte »    
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

Re: Desktop Widget Engine (v0.41)

  Alt 23. Sep 2008, 19:31
Hi,

hab ja heir schon länger nichts mehr geschrieben. IMO hat sich das Programm schön entwickelt - Die Widgets und das Haupfenster sehen jetzt noch besser aus, und der Ressourcenverbrauch hat sich auch verbessert (in den letzten Versionen war mir ja noch aufgefallen, wie der Speicherverbracuh mit der Zeit erheblich anstieg).

Leider konnte ich das netzwerktrafficwidget und die überarbeiteten Wetter- und Shputbox-widgets nicht testen, weil sich dein "Firewall"-Dialogfeld nicht wegklicken lässt. Ich klicke auf Allow, aber nichts passiert... (bei Not Allow passiert auch nichts).

Edit: was mir grade noch auffällt: Der Rand des Textes im Firewall-Fenster ist teilweise Transparent. Wird wohl an den verwendeten Graphics32 liegen, weil ich mich an dieses Problem noch von einem eigenen Projekt erinnere.

Edit2: das Programm ließ sich leider nur über den taskmanager beenden. Lag wahrscheinlich an den noch geöffneten "Firewall"-Fenstern (?)
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#2

Re: Desktop Widget Engine (v0.41)

  Alt 23. Sep 2008, 19:59
Zitat von NamenLozer:
hab ja heir schon länger nichts mehr geschrieben. IMO hat sich das Programm schön entwickelt - Die Widgets und das Haupfenster sehen jetzt noch besser aus, und der Ressourcenverbrauch hat sich auch verbessert (in den letzten Versionen war mir ja noch aufgefallen, wie der Speicherverbracuh mit der Zeit erheblich anstieg).
Das ist wirklich gut zu hören

Zitat von NamenLozer:
Leider konnte ich das netzwerktrafficwidget und die überarbeiteten Wetter- und Shputbox-widgets nicht testen, weil sich dein "Firewall"-Dialogfeld nicht wegklicken lässt. Ich klicke auf Allow, aber nichts passiert... (bei Not Allow passiert auch nichts).
Ich habs gerade bei mir Reproduzieren können. Irgendwie funktioniert der Dialog nur im Debugger . Ich hab eben eine neue Version hochgeladen, die den Fehler nicht mehr drinnen hat. Hab jetzt einfach einen simplen MessageDlg benutzt - der funktioniert jedenfalls. Um den Dialog werd ich mich auch noch kümmern. Danke für den Hinweis.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#3

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 13:48
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
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 14:04
Also ich finde das Programm echt super

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?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#5

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 14:28
Zitat von Larsi:
Also ich finde das Programm echt super
Danke für die Blumen *freu*

Zitat von Larsi:
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?
Naja, die "Firewall" ist nur für das Programm und keine wirkliche Firewall.

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:
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;
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:
Delphi-Quellcode:
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;
Wenn du wirklich mal eine in Delphi geschriebene Firewall die anschauen willst (sammt Quelltext), solltest du mal bei SourceForge.net vorbeischauen. Das Ding ist jedoch realtiv komplex und wirklich nicht einfach zu verstehen. Das Programm auf SourceForge benutzt übrigens MadCodeHook (glaub so heißt das), was NICHT OpenSource ist und kostet mit Quelltext ca. 900 USD - ohne Quelltext ca. 200 USD. Wenn du wirklich mal ne Firewall programmieren willst, solltest du dich entweder sehr viel mit CodeInjection oder gleich mit Treiberprogrammierung (zusammen mit einem C/C++ Lehrgang) beschäftigen. Ich denke nicht, dass du das eben innerhalb von 2 Wochen oder gar Monaten schaffen wirst.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 18: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"?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 18:52
Wie soll diese Methode denn bei anderen Programmen Alarm schlagen?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 18:54
Zitat von Larsi:
Deine Methode, funkitoniert die nur bei Plugins von deine, Programm oder schlägt diese Methode so bei jeder Anwendung "alarm"?
Zitat von littleDave:
Naja, die "Firewall" ist nur für das Programm und keine wirkliche Firewall.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#9

Re: Desktop Widget Engine (v0.41)

  Alt 24. Sep 2008, 19:05
Natürlich funktioniert diese Methode nur bei den Widgets . Hab ja keinen Hook - außerdem, warum sollte meine Widget Engine eine Firewall sein

Zitat von toms:
Fragst du dich gerade, worum es geht? Es geht gerade um den Security-Layer, den ich eingebaut habe. Ich hab da so eine Art Firewall eingebaut, jedoch nur für die Widgets
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#10

Re: Desktop Widget Engine (v0.5)

  Alt 27. Sep 2008, 00:10
Schon wieder ich 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
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 8 von 27   « Erste     678 91018     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 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