AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bildschirm abdunkeln?
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirm abdunkeln?

Ein Thema von BullsEye · begonnen am 21. Aug 2008 · letzter Beitrag vom 22. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#1

Bildschirm abdunkeln?

  Alt 21. Aug 2008, 20:31
Hallo Leute,

ich möchte gerne den Bildschirm abdunkeln! Aber nicht komplett sondern nur den ungenutzten Bereich! Sprich ich habe ein Fenster, und alles was um das Fenster drum herum ist, BSP: Desktop + Icons etc soll abgedunkelt werden, so das das haupt Augenmerk auf mein Fenster fällt!
Ich habe diese Funktion schon einmal beim DivX Webplayer irgrendwo gesehen.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Bildschirm abdunkeln?

  Alt 21. Aug 2008, 20:37
man könnte da definitiv ein, meiner meinung nach perveres features nutzen. lege zwei forms hintereinander. die hintere form mit den folgenden eigentschaften:

Delphi-Quellcode:
AlphaBlend := True;
AlphaBlendValue := 100; // Hier kannst ja nocht rumschrauben
                           // oder einen Timer einsetzen, um den
                          // Verlauf kontinuierliche zu ändern
BorderStyle := bsNone;
// Form über die ganze Fläche legen
Left := 0;
Top := 0;
Width := Screen.WorkAreaWidth;
Height := Screen.WorkAreaHeight;
und die fordere form eben dann für deine anwendung, in so fern du diese überhaupt brauchst.

ps: dies funktioniert halt nur auf einem monitor, nicht aber wenn du mehrere hast. dafür würde ich dann mehrere forms zum abdunkeln empfehlen, aber ist irgendwie eine perverse lösung. vielleicht kann man ja passend auf dem desktop zeichnen, das weiß ich nicht. wenn dir davon den canvas holst... wäre auch eine möglichkeit.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#3

Re: Bildschirm abdunkeln?

  Alt 21. Aug 2008, 20:53
h3h3 und schon wieder was schönes, nützliches neues dazugelernt!

Aber ich weiß nicht so recht ob das so wirklich das gewollte Ergebniss bringt. Ich teste mal noch ein wenig rum!

EDIT: Ich denke dies würde eher in den Sinn kommen:

Delphi-Quellcode:
Width := Screen.Width;
Height := Screen.Height;
Da ich BSP meine Taskleiste oben habe, kommt bei dem mit Workarea unten ein Streifen(Da wo sonst die Taskleiste ist) der nicht abgedunkelt wird^^
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Bildschirm abdunkeln?

  Alt 21. Aug 2008, 21:33
Zitat von BullsEye:
Da ich BSP meine Taskleiste oben habe, kommt bei dem mit Workarea unten ein Streifen(Da wo sonst die Taskleiste ist) der nicht abgedunkelt wird^^
das stimmt, ja. hab einen kleinen, aber feinen fehler gemacht

musst du dann so machen:
Delphi-Quellcode:
AlphaBlend := True;
AlphaBlendValue := 100; // Hier kannst ja nocht rumschrauben
                        // oder einen Timer einsetzen, um den
                        // Verlauf kontinuierliche zu ändern
BorderStyle := bsNone;
Left := Screen.WorkAreaRect.Left;
Top := Screen.WorkAreaRect.Top;
Width := Screen.WorkAreaWidth;
Height := Screen.WorkAreaHeight;
in diesem fall, wenn ich nichts vergessen haben sollte, müsste er die taskbar praktisch immer berücksichtigen.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#5

Re: Bildschirm abdunkeln?

  Alt 21. Aug 2008, 22:36
Ja, so funktioniert das alles auch wunderbar!

Besten Dank!

PS: Das sollte keine negative Kretik sein sondern ein Verbesserungsvorschlag
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Bildschirm abdunkeln?

  Alt 21. Aug 2008, 23:13
Man könnte auch einen Screenshot vom Desktop machen. Diesen dunkler machen und das ganze auf die hineter Form kopieren. War jetzt nur so ein Schnellschuss, ohne länger darüber nachgedacht zu haben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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: Bildschirm abdunkeln?

  Alt 21. Aug 2008, 23:18
Zitat von Luckie:
Man könnte auch einen Screenshot vom Desktop machen. Diesen dunkler machen und das ganze auf die hineter Form kopieren. War jetzt nur so ein Schnellschuss, ohne länger darüber nachgedacht zu haben.
Könnte gehn, allerdings nur wenn das Fenster modal angezeigt wird. Und dann muss man auch bei jedem Resize neu zeichnen.
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 s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

Re: Bildschirm abdunkeln?

  Alt 22. Aug 2008, 08:08
Zitat von Neutral General:
Zitat von Luckie:
Man könnte auch einen Screenshot vom Desktop machen. Diesen dunkler machen und das ganze auf die hineter Form kopieren. War jetzt nur so ein Schnellschuss, ohne länger darüber nachgedacht zu haben.
Könnte gehn, allerdings nur wenn das Fenster modal angezeigt wird. Und dann muss man auch bei jedem Resize neu zeichnen.
hm, dem ist imho nicht so, da dies die gleiche idee ist wie meine, nur eben kein alpha-wert genommen, sondern eben einen screenshot. wenn diese idee nicht funktioniert - gleiche einstellungen, wie die von mir weiter oben definierten (außer das alpha-gedöns) vorausgesetzt - dann würde meine ja auch nicht funktionieren. wichtig ist es halt, dass man die hintere form nicht verschieben oder schließen dürfte, bzw. die fordere form in den hintergrund der anwendung ruscht. das müsste man noch passend abfangen.

die frage, die sich mir hierbei stellt ist, welche methode, steuerung über alpha-wert oder über eingefärbte grafik, denn effizienter funktioniert!? und vor allem warum das so ist?!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Bildschirm abdunkeln?

  Alt 22. Aug 2008, 09:08
Hi,

um weiterhin Mausklicks auf den Desktop zuzulassen, würde ich folgendes im FormShow der Abdunklungsform empfehlen:

Delphi-Quellcode:
  setWindowLong(Handle, GWL_EXSTYLE,
    getWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED);
Dies erlaubt das "durchklicken" durch die Form (siehe angehängtes Beispiel )


bis dann,
Christian
Angehängte Dateien
Dateityp: zip blenddownsource_172.zip (17,0 KB, 47x aufgerufen)
Dateityp: exe blenddown_165.exe (168,0 KB, 66x aufgerufen)
Christian Nöding
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#10

Re: Bildschirm abdunkeln?

  Alt 22. Aug 2008, 16:51
Naja das mit dem Screenshots finde ich nicht ganz so toll, da bevorzuge ich das mit dem AlphaBlend des einen Formulares.

Ohja, danke @Christian, das hätte ich fast vergessen^^ Aber so ist das ne gute Lösung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:51 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