Delphi-PRAXiS
Seite 6 von 26   « Erste     456 7816     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Desktop Widget Engine (v0.72) (https://www.delphipraxis.net/119493-desktop-widget-engine-v0-72-a.html)

littleDave 15. Sep 2008 00:30

Re: Desktop Widget Engine (v0.31)
 
Das man die MainForm nicht verschieben kann, ist auch noch absichtlich. Das Script soll nur eingeschränkte Kontrolle über das Widget haben - dazu zählt für mich auch die Positionierung des Widgets. Somit funktioniert das mainform.SetLeft nicht.

Die Eigenschaft wird an sich schon vererbt, nur halt nicht von mainform.Left aus. Sonst sollte das Positionieren an die Unterelemente schon vererbt werden.

Den Minus-Fehler hab ich gerade im Parser der Script-Engine gefunden und ich bin gerade dabei, das Problem zu beheben. An sonsten hab ich bereits eine Delay-Funktion eingebaut, so dass deine Methode auch funktionieren sollte (musst dann nur Delay() statt Sleep() schreiben).

Auch die Events OnMouseIn, OnMouseOut OnSetFocus und OnLostFocus von TwgForm funktionieren jetzt ebenfalls. Somit hab ich die Probleme, die du mir gezeigt hast, schon zum großen Teil behoben. Ein Release wird aber noch etwas dauern, da ich noch mehr reinpacken will.

Edit: Die Exception beim Minimieren/Maximieren der Events ist jetzt auch gelöst. Hab da einen Pointer nicht überprüft und somit wollte ich den Wert eines Kategorie-Headers abrufen - der natürlich NIL ist. War somit kein Problem des JvInspectors sondern ein von mir generiertes :oops:

jokerfacehro 15. Sep 2008 08:25

Re: Desktop Widget Engine (v0.31)
 
Zitat:

Das man die MainForm nicht verschieben kann, ist auch noch absichtlich. Das Script soll nur eingeschränkte Kontrolle über das Widget haben - dazu zählt für mich auch die Positionierung des Widgets. Somit funktioniert das mainform.SetLeft nicht.
warum ?


damit kann man z.b. widgets am rand verstecken (nur ein kleiner teil guckt raus) und wenn mann rüberfährt kommt es auf den desktop gefahren
oder das widget könnte der maus folgen

littleDave 15. Sep 2008 12:05

Re: Desktop Widget Engine (v0.31)
 
Zitat:

Zitat von jokerfacehro
warum ?
damit kann man z.b. widgets am rand verstecken (nur ein kleiner teil guckt raus) und wenn mann rüberfährt kommt es auf den desktop gefahren
oder das widget könnte der maus folgen

Naja, wenn ich genauer drüber Nachdenke weiß ich es gerade selbst nicht so genau warum. Hab mich jetzt doch überreden lassen, TwgForm.Left usw. funktionieren jetzt wie man erwartet. Die neue Version werd ich im Laufe des Tages hochladen, hab noch ein paar andere Stellen, die ich verbessern will.

littleDave 15. Sep 2008 12:54

Re: Desktop Widget Engine (v0.32)
 
Ich habe gerade Version 0.32 hochgeladen.

Diesmal hab ich versucht, mir eure Vorschläge sehr zu Herzen zu nehmen. Dabei ist folgendes herausgekommen :)

Im Programm kann man jetzt einen Proxy-Server für Internet-Verbindungen angeben. Diese Einstellung wird dann an alle Widgets weitergegeben und automatisch in die endsprechende Komponente gespeichert. Ich hoffe, dass die Proxy-Einstellungen funktionieren - bei mir hats jedenfalls geklappt.

Jokerfacehro hat auch sehr gute Vorschläge gebraucht - natürlich hab ich versucht, so viele wie möglich umzusetzen. Folgende Liste ist daraus entstanden:
  • Fehler in Script-Engine behoben: nach dem Eingeben einer Zahl musste ein Leerzeichen hinter die Zahl geschrieben werden, wenn danach ein - folgte
  • Neue Funktion in der Script-Engine: Delay(ms: cardinal);
  • AV im Object-Inspector behoben
  • TwgForm-Events OnMouseIn, OnMouseOut, OnSetFocus und OnLostFocus werden jetzt auch aufgerufen
  • TwgForm.Left sowie TwgForm.Top haben jetzt keine Auswirkung auf die Darstellung mehr sondern die Funktionen lesen und setzen jetzt die Position der Form

Außerdem hab ich jetzt ein paar nützliche Startparameter hinzugefügt, mit denen man das Programm beim Start besser steuern kann.

Der Download sowie der komplette ChangeLog befindet sich (wie immer) im ersten Post

jokerfacehro 15. Sep 2008 15:34

Re: Desktop Widget Engine (v0.32)
 
ganz hungrig aufs testen :mrgreen:

edit: :o was isn da passiert statt 2,6mb is das proggi nur noch 800kb klein !

edit 2:haha hab nen neuen fehler

das sind meine prozeduren im network traffic, die angelegt bzw verändert habe:

Delphi-Quellcode:
procedure wgImage1MouseIn(Sender: TObject);
var i:integer;
begin

for i:=1 to 31 do begin
mainform.setFormAlpha(100+i*5);
mainform.RenderForm;
mainform.setLeft(1024-25-(i-1)*4);
delay(10);

end;
end;



procedure wgImage1MouseOut(Sender: TObject);
var i:integer;
begin

for i:=1 to 31 do begin
mainform.setFormAlpha(255-i*5);
mainform.RenderForm;
mainform.setLeft(1024-147+(i-1)*4);
delay(10);

end;

procedure InitializeWidget;
begin
  Adapters := Adapters.Create;
  wgTimer1Timer(nil);
  mainform.setLeft(1024-27);
  mainform.setTop(768-97);
end;
wenn das widget rausfährt und ich beim rausfahren mit der maus das widget verlasse, wird das onmouseout event nicht ausgelöst, genauso is es auch beim onmousein, wenn das widget wieder nach rechts fährt und ich mit der maus während des fahrens auf das widget zeige, fährt es trotzdem weiter.

delay, setLeft, setTop, inspector events klappen funzt :thumb:

littleDave 15. Sep 2008 15:57

Re: Desktop Widget Engine (v0.32)
 
Ich hab die exe mit UPX verkleinert

jokerfacehro 15. Sep 2008 16:17

Re: Desktop Widget Engine (v0.32)
 
was isn upx ? :shock:

littleDave 15. Sep 2008 16:20

Re: Desktop Widget Engine (v0.32)
 
Bei Google suchenUPX :zwinker:

jokerfacehro 15. Sep 2008 16:24

Re: Desktop Widget Engine (v0.32)
 
Zitat:

UPX-komprimierte Programmdateien haben zudem größere Auswirkungen auf die Systemresourcen. Das Betriebssystem kann kein dekomprimiertes Abbild direkt vom Datenträger lesen (siehe Virtuelle Speicherverwaltung), wie es das im Falle von unkomprimierten ausführbaren Dateien macht. Stattdessen reserviert der UPX-Stummel einen Speicherbereich für die entpackten Daten, der zugeordnet wird, solange die Programmdatei geladen bleibt – ob sie verwendet wird oder nicht. Dies verhindert auch das Wiederverwenden der Ressourcen, wenn mehrere Instanzen des selben UPX-komprimierten Programms geladen sind.
is ja nich so praktisch :/

ansonsten coolet ding

littleDave 15. Sep 2008 19:20

Re: Desktop Widget Engine (v0.32)
 
Zitat:

Zitat von jokerfacehro
edit 2:haha hab nen neuen fehler

das sind meine prozeduren im network traffic, die angelegt bzw verändert habe:
[...]
wenn das widget rausfährt und ich beim rausfahren mit der maus das widget verlasse, wird das onmouseout event nicht ausgelöst, genauso is es auch beim onmousein, wenn das widget wieder nach rechts fährt und ich mit der maus während des fahrens auf das widget zeige, fährt es trotzdem weiter.

Das Problem wird sich so nicht lösen lassen - egal was ich für eine Krücke einbaue - das liegt einfach an Windows. Das Event wird nicht ausgeführt solange das andere Event noch läuft - hier: CM_MOUSEENTER und CM_MOUSELEAVE. Du wirst das selbe Phänomen auch haben, wenn du eine normale Anwendung mit Delphi entwickelst.
Um das Problem zu behen, musst du im Programm eine Krücke verwenden: einen Timer.

Zitat:

Zitat von jokerfacehro
delay, setLeft, setTop, inspector events klappen funzt :thumb:

Da bin ich ja beruhigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 6 von 26   « Erste     456 7816     Letzte »    

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