AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Dimmed Sample

Dimmed Sample

Ein Thema von EWeiss · begonnen am 28. Mär 2012 · letzter Beitrag vom 31. Mär 2012
Antwort Antwort
Seite 2 von 4     12 34   
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 06:01 Uhr)
 
EWeiss
 
#11
  Alt 28. Mär 2012, 18:34
Lööf... aber beim Schließen ist dann doch wieder Farbe zu sehen, wenn auch nur kurz
Muss so sein denn das zerschießen der Classe pFade setzt das vorraus
Muss noch schaun wie ich da innerhalb der DLL OnClick und solche sachen also Evens implementiere.
Da ich keine Winproc innerhalb der DLL verwende also das erstellte Window die DefWindowProc verwendet ist das nicht so einfach.

Danke für's testen.
Source kommt dann wenn fertig in die Rubrik Sotware Projekt (Open Source)
Will jetzt erst noch den Desktop Kram verwirklichen.

Vielleicht werde ich dann doch nur das Handle übergeben so läuft es zur zeit ja nur mit Delphi.

gruss

Geändert von EWeiss (28. Mär 2012 um 18:38 Uhr)
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#12
  Alt 28. Mär 2012, 22:56
Lööf... aber beim Schließen ist dann doch wieder Farbe zu sehen, wenn auch nur kurz
Muss so sein denn das zerschießen der Classe pFade setzt das vorraus
Muss es nicht.
Rufe FadeDestroy doch einfach im FormDestroy auf.
  Mit Zitat antworten Zitat
EWeiss
 
#13
  Alt 28. Mär 2012, 23:08
Lööf... aber beim Schließen ist dann doch wieder Farbe zu sehen, wenn auch nur kurz
Muss so sein denn das zerschießen der Classe pFade setzt das vorraus
Muss es nicht.
Rufe FadeDestroy doch einfach im FormDestroy auf.
Danke hast recht und funktioniert.
Der Sinn der DLL ist bei inaktiven Window/ gestarteten Dialog usw.. das Window zu faden so wie in XP wenn man das system herunterfährt.
Jetzt halt nur auf die Anwendung ausgelegt ohne Runterfahren natürlich

Habe es jetzt so ausgelegt das man nur ein Handle übergeben muss das der Form oder vom Desktop eben.

Initialize := FadeCreate(Handle, RGB(255, 255, 255), RGB(0, 0, 0));

gruss

Geändert von EWeiss (28. Mär 2012 um 23:11 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#14
  Alt 29. Mär 2012, 00:57
Einer der Admins.. verschiebt das teil mal bitte nach Software-Projekte der Mitglieder.. Danke.
Neue Version.. noch kein source von der DLL ansonsten alles vorhanden.
  • 1. TWinControl aus der API entfernt
  • 2. Es werden nun Handles übergeben
  • 3. FadeTime hinzugefügt
  • 4. Winproc addiert
  • 5. Paint Routine addiert. Wird nun neu gezeichnet wenn das Window in die Taskleiste
    minimiert und wieder zurückkehrt.
  • 6. FadeDestroy in TForm1.FormDestroy eingefügt.


Button für Desktop hinzugefügt.
Bei mir läuft es nicht aus schon genannten gründen. (start auf eigene Gefahr)

Nach dem Klick auf "Dimm ME" einfach nochmalig in das Fenster klicken
danach geht das Fenster auf den Urzustand zurück.

gruss

Geändert von EWeiss (29. Mär 2012 um 16:15 Uhr)
  Mit Zitat antworten Zitat
29. Mär 2012, 07:52
Dieses Thema wurde am "29. Mar 2012, 07:52 Uhr" von "Daniel" aus dem Forum "Programmieren allgemein" in das Forum "Software-Projekte der Mitglieder" verschoben.
hathor
 
#16
  Alt 29. Mär 2012, 10:34
WIN 7 64Bit:
Zugriffsverletzung in Modul Dimmed.dll.

Nachtrag:
Programm bleibt nach dem Beenden im Speicher und treibt die CPU-Last nach oben.
Kann nur mit dem Task-Manager gekillt werden!

Geändert von hathor (29. Mär 2012 um 12:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k
 
#17
  Alt 29. Mär 2012, 12:01
Bekomme auch eine Zugriffsverletzung, wenn ich auf "Dimm Desktop" klicke -- Win XP, 32 Bit:
Code:
Zugriffsverletzung bei Adresse 005D1A4A in Modul 'Dimmed.dll'. Lesen von Adresse 02C50000.
Ansonsten gibt es noch folgende Probleme:
  • Wenn ich auf "Dimm Me" klicke, so wird das eigentliche Formular defokusiert und das Formular, welches du über das Hauptformular legst bekommt logischweise den Fokus. Das ist blöde, aber ich habe bisher keinen sinnvollen Weg drum herum gefunden... Habe ja eine Overlay-Komponente gebastelt, welche z.B. für eine längere Lade-Prozedur eingeblendet werden kann, wobei ich nur AlphaBlend nutze.
  • Wenn du ein Resize des Hauptformulars machst, wenn der Overlay eingeblendet ist, dann passt der die Darstellung nicht mehr wirklich und wird teilweise sehr fehlerhaft.
  • Teilweise fadet das Overlay nicht und wirkt sehr rukelig. Im Moment ist es sogar so, dass es komplett ohne Fading auskommt, d.h. ich drücke auf den Button und so ~250ms später erscheint erst der Overlay in Graufstufen.
  Mit Zitat antworten Zitat
EWeiss
 
#18
  Alt 29. Mär 2012, 14:05
Zitat:
Nachtrag:
Programm bleibt nach dem Beenden im Speicher und treibt die CPU-Last nach oben.
Kann nur mit dem Task-Manager gekillt werden!
Danke für die infos.
Habe ja geschrieben das es ein problem beim allocieren des Speichers gibt in verbindung mit CreateDibSection.

Zitat:
Wenn ich auf "Dimm Me" klicke, so wird das eigentliche Formular defokusiert und das Formular, welches du über das Hauptformular legst bekommt logischweise den Fokus. Das ist blöde, aber ich habe bisher keinen sinnvollen Weg drum herum gefunden... Habe ja eine Overlay-Komponente gebastelt, welche z.B. für eine längere Lade-Prozedur eingeblendet werden kann, wobei ich nur AlphaBlend nutze.
Das ist der Effekt der erwünscht wird.
Wenn du in XP Herunterfährst und der Logout Dialog kommt hast du auch keinen zugriff mehr auf dahinter liegende Fenster.
Hatte vorher EnableWindow(ParentHandle, False) wäre vielleicht sinnvoll das wieder zu aktivieren.

Zitat:
Wenn du ein Resize des Hauptformulars machst, wenn der Overlay eingeblendet ist, dann passt der die Darstellung nicht mehr wirklich und wird teilweise sehr fehlerhaft.
Diese Funktion ist kein FadeScreen der dazu gedacht ist ein Window einfaden zu lassen wenn ein Programm hochfährt.
Sondern den Status Aktiv/Deaktiv wiederzugeben wie beim ShutDown Effekt bei Xp
Das Teil ist noch am Anfang und ein resize während es grau ist im fertigen projekt nicht mehr möglich.
Zum dem wäre es ja auch dann der Fall das du dich selbst (HauptAnwendung) darum kümmern mußt.
Die DL kann nicht den resize der Anwendung steuern das muss man schon selbst machen.

Also der Normale weg ist nicht der über einen Button sondern in verbindung mit Dialogen
und dem Windowstate Aktiv/Deaktiv sinnvoll.

Zitat:
Teilweise fadet das Overlay nicht und wirkt sehr rukelig. Im Moment ist es sogar so, dass es komplett ohne Fading auskommt, d.h. ich drücke auf den Button und so ~250ms später erscheint erst der Overlay in Graufstufen.
Bei mir bisher nicht aufgetreten.

Dabke für's testen

@Daniel Danke für das verschieben.

gruss

Geändert von EWeiss (29. Mär 2012 um 16:29 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#19
  Alt 29. Mär 2012, 16:22
Neue Version oben..
Nicht bekannte Fehlermeldungen oder änderungen die noch etwas bringen sind erwünscht.

gruss

Geändert von EWeiss (29. Mär 2012 um 16:29 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#20
  Alt 29. Mär 2012, 23:40
Das problem mit dem array lag wirklich nur am vergessenen "nSize -1"
Sind trotzdem noch genug andere da..
Hab jetzt diesen Fehler behoben dafür addiert sich aber jede menge Speicher.

Werd mal schaun wann ich das noch behebe. (Wenn bedarf für die DLL besteht natürlich)

gruss
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz