Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Dimmed Sample (https://www.delphipraxis.net/167397-dimmed-sample.html)

EWeiss 27. Mär 2012 23:51


Dimmed Sample
 
Projekt entfernt..

EWeiss 28. Mär 2012 04:11

AW: Dimmed Sample
 
Noch nicht perfekt aber ein Anfang.

Windows werden nun richtig gezeichnet.
Hatte vergessen das GetDC ja nur für den Client Bereich zuständig ist
Mit GetWindowDC hat's dann funktioniert.

Und die Farbe zu der gefaded werden soll kann man nun angeben.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

  AutoFade(Form1, RGB(255,255,255), RGB(0, 0, 0) {RGB(64,128,255), RGB(0, 32, 64)});
  ShowMessage('What nu.. Hi greyed out');
  deinit := DIMMED_DEINIT;

end;

gruss

s.h.a.r.k 28. Mär 2012 07:00

AW: Dimmed Sample
 
Darf man nach der Technik fragen, die du da anwendest? Legst du eine weiter Form über die bestehende? Oder greifst du irgendwie in die Zeichenprozedur ein?

EWeiss 28. Mär 2012 13:25

AW: Dimmed Sample
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1159019)
Darf man nach der Technik fragen, die du da anwendest? Legst du eine weiter Form über die bestehende? Oder greifst du irgendwie in die Zeichenprozedur ein?

Und als auch.. Beides
Ich lege eine Form als Child in die Anwendung kopiere den Hintergrund vom Devicekontex mit GetWindowDC / BitBlt
und übertrage diesen in das Childwindow dabei wird die Original Farbe in die Übergebene gefadet.

Das ganze EXE -> DLL

gruss

s.h.a.r.k 28. Mär 2012 14:42

AW: Dimmed Sample
 
Okay, hatte ich mir schon gedacht, dass das so läuft ;) Danke dir!

EWeiss 28. Mär 2012 15:38

AW: Dimmed Sample
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1159078)
Okay, hatte ich mir schon gedacht, dass das so läuft ;) Danke dir!

Lade den Source später mal hoch..
Hab im moment wiedermal ein problem beim Freigeben der Classe
mal gehts mal nicht :wall:

To many error in Free :oops:
Obwohl alles korrekt freigegeben wird.

Wüßte nicht was da falsch sein sollte.

Delphi-Quellcode:
type
  TFadeWnd = class(TComponent)
  private
    { Private-Deklarationen }
    procedure AutoFade(pParentWnd: TWinControl; clLight: COLORREF;
      clDark: COLORREF); stdcall;
     procedure CreateGradient(clLight: COLORREF;
      clDark: COLORREF); virtual;
    procedure FadeWnd(pParentWnd: TWinControl; clLight: COLORREF;
       clDark: COLORREF); stdcall;
  public
    function GetDibR(const drgb: cardinal): cardinal; inline;
    function GetDibG(const drgb: cardinal): cardinal; inline;
    function GetDibB(const drgb: cardinal): cardinal; inline;
    function Create(pParentWnd: TWinControl; rc: TRect): Bool; reintroduce; overload;
    constructor Create(AOwner: TWinControl); reintroduce; overload;
    destructor Destroy; override;
  protected
    m_clGradient: array [0..255] of COLORREF;
    m_hBitmap: HBITMAP;
    m_hNewBitmap: HBITMAP;
    m_pWndLock: TWinControl;
    procedure OnDraw(pDC: HDC);
    function CopyScreenToBitmap(lpRect: TRect): HBITMAP;
    function FadeBitmap(hBmp: HBITMAP; dfTrans: double = 100.0; hBmpDC: HDC = 0): HBITMAP;
  end;

var
  pFade: TFadeWnd;
  MainHandle: HWND;
  Pixels: array of Cardinal;

// Exports
function FadeCreate(pParentWnd: TWinControl;clLight: COLORREF;
      clDark: COLORREF): Bool; stdcall;
procedure FadeDestroy; stdcall;
Delphi-Quellcode:
procedure FadeDestroy; stdcall;
begin

   if Assigned(pFade) then
   begin
     DestroyWindow(MainHandle);
     pFade.Free;
     pFade := nil;
   end;
end;

gruss

TiGü 28. Mär 2012 15:57

AW: Dimmed Sample
 
Knallt's denn bei DestroyWindow(MainHandle) oder bei pFade.Free?

EWeiss 28. Mär 2012 16:43

AW: Dimmed Sample
 
Zitat:

Zitat von TiGü (Beitrag 1159094)
Knallt's denn bei DestroyWindow(MainHandle) oder bei pFade.Free?

War nicht identifizierbar.
Der Compiler geht ins ASM Window und steht in TObject.Free.

Muss mal schaun scheint ein problem mit dem Array Pixels zu sein.

EDIT:
Jo das wars..
Mußte nach der zuweisung vom neuen Bitmap das verändert wurde das Array löschen.

Delphi-Quellcode:
FillChar(Pixels, SizeOf(Pixels), 0);


Jetzt gehts..

gruss

EWeiss 28. Mär 2012 17:11

AW: Dimmed Sample
 
Hier zum Testen...

Bei mir läuft es auf Win7.

gruss

DeddyH 28. Mär 2012 17:23

AW: Dimmed Sample
 
Lööf... aber beim Schließen ist dann doch wieder Farbe zu sehen, wenn auch nur kurz ;)

EWeiss 28. Mär 2012 17:34

AW: Dimmed Sample
 
Zitat:

Zitat von DeddyH (Beitrag 1159121)
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

TiGü 28. Mär 2012 21:56

AW: Dimmed Sample
 
Zitat:

Zitat von EWeiss (Beitrag 1159124)
Zitat:

Zitat von DeddyH (Beitrag 1159121)
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.

EWeiss 28. Mär 2012 22:08

AW: Dimmed Sample
 
Zitat:

Zitat von TiGü (Beitrag 1159149)
Zitat:

Zitat von EWeiss (Beitrag 1159124)
Zitat:

Zitat von DeddyH (Beitrag 1159121)
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.

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


gruss

EWeiss 28. Mär 2012 23:57

AW: Dimmed Sample
 
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

DP-Maintenance 29. Mär 2012 06: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 29. Mär 2012 09:34

AW: Dimmed Sample
 
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!

s.h.a.r.k 29. Mär 2012 11:01

AW: Dimmed Sample
 
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.

EWeiss 29. Mär 2012 13:05

AW: Dimmed Sample
 
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

EWeiss 29. Mär 2012 15:22

AW: Dimmed Sample
 
Neue Version oben..
Nicht bekannte Fehlermeldungen oder änderungen die noch etwas bringen sind erwünscht.

gruss

EWeiss 29. Mär 2012 22:40

AW: Dimmed Sample
 
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

EWeiss 30. Mär 2012 00:14

AW: Dimmed Sample
 
Neue Version oben!
Siehe History

Über WM_NCACTIVATE VirtualPiano mit Dimmed.dll


gruss

Tonic1024 30. Mär 2012 09:16

AW: Dimmed Sample
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi...

Muss gestehen ich hab mich den Code grad nicht so genau angeschaut aber die Demo scheint Probleme mit Multi-Monitor Betrieb zu haben.

Die rechte Hälfte des Forms wurde auf dem rechten Monitor dargestellt.

Achja: Vista32

Gruß,

Toni

EWeiss 30. Mär 2012 13:43

AW: Dimmed Sample
 
Zitat:

Zitat von Tonic1024 (Beitrag 1159354)
Hi...

Muss gestehen ich hab mich den Code grad nicht so genau angeschaut aber die Demo scheint Probleme mit Multi-Monitor Betrieb zu haben.

Die rechte Hälfte des Forms wurde auf dem rechten Monitor dargestellt.

Achja: Vista32

Gruß,

Toni

Ohne weiteres möglich ;)
Denn wer braucht so was hab nur einen Monitor und kanns nicht testen.

gruss

Medium 30. Mär 2012 13:51

AW: Dimmed Sample
 
Zitat:

Zitat von EWeiss (Beitrag 1159437)
Denn wer braucht so was hab nur einen Monitor und kanns nicht testen.

:shock: Das ist unter Entwicklern mittlerweile ja fast schon eher der Regelfall! Ich würd nie wieder ohne wollen. Ist doch einfach nett, wenn man DB Schema oder die gerade gebrauchte Doku zur Seite schieben kann und damit nicht den Editor verdeckt, oder den OI und Projektmetadaten ausgedockt aufm 2. Moni - macht das Designen von fullscreen Anwendungen deutlich angenehmer. Wer braucht das schon... pft.

Gustav.R 30. Mär 2012 14:46

AW: Dimmed Sample
 
[OT]

Gerade in einem alten Projekt (Delphi 5) gefunden:

Delphi-Quellcode:
procedure TeilGrau(b: TBitmap; stufe: byte);
var
  sp1: byte;
  x, y: integer;
  p: PBytearray;
  g: byte;
  function rech(b: byte): byte;
  begin
    result := (b * stufe + g) div sp1;
  end;
begin
  sp1 := succ(stufe);
  for y := 0 to b.height - 1 do
  begin
    p := b.scanline[y];
    x := 0;
    while x < b3 do
    begin
      g := (p[x] + p[x + 1] + p[x + 2]) div 3;
      p[x] := rech(p[x]);
      p[x + 1] := rech(p[x + 1]);
      p[x + 2] := rech(p[x + 2]);
      inc(x, 3);
    end;
  end;
end;

procedure TFormCountDown.MakeDesktopGray(Zeit: Integer);
var
  x, y, z: integer;
  dwStyle: DWord;
  dc, ddc: HDC;
  hbm: HBitmap;
  bmp: TBitmap;
  //  b3: integer;
  geschwindigkeit: integer;
begin
  geschwindigkeit := 200;
  dc := createDC('DISPLAY', nil, nil, nil);
  // --- Bildschirm in einer Bitmap sichern ---
  ddc := CreateCompatibleDC(dc);
  hbm := CreateCompatibleBitmap(dc, screen.width, screen.height);
  selectobject(ddc, hbm);
  BitBlt(ddc, 0, 0, screen.width, screen.height, dc, 0, 0, srcCopy);
  // -------------------------------------------
  bmp := TBitmap.create;
  bmp.pixelformat := pf24bit;
  bmp.width := screen.width;
  bmp.height := screen.height;
  b3 := screen.width * 3;
  BitBlt(bmp.canvas.handle, 0, 0, screen.width, screen.height, dc, 0, 0,
    srcCopy);
  z := 255 - geschwindigkeit;
  y := round(2.5 * z / sqrt(z));
  x := 1;
  while x < y do
  begin
    TeilGrau(bmp, z div x);
    BitBlt(dc, 0, 0, screen.width, screen.height, bmp.canvas.handle, 0, 0,
      srcCopy);
    application.processmessages;
    sleep(10);
    inc(x);
  end;
  // etwas den grauen Bildschirm stehen lassen
  sleep(2000);
  // Wiederherstellen des farbigen Desktops
  BitBlt(dc, 0, 0, screen.width, screen.height, ddc, 0, 0, srcCopy);
  // freigeben
  bmp.free;
  deleteobject(hbm);
  deletedc(ddc);
  deletedc(dc);
end;
K.A. wo ich das damals herhatte und ob's bei zwei Monitoren auch klappt :oops:

GG
[/OT]

Der.Kaktus 30. Mär 2012 14:51

AW: Dimmed Sample
 
Zitat:

Zitat von Medium (Beitrag 1159440)
Zitat:

Zitat von EWeiss (Beitrag 1159437)
Denn wer braucht so was hab nur einen Monitor und kanns nicht testen.

:shock: Das ist unter Entwicklern mittlerweile ja fast schon eher der Regelfall! Ich würd nie wieder ohne wollen. Ist doch einfach nett, wenn man DB Schema oder die gerade gebrauchte Doku zur Seite schieben kann und damit nicht den Editor verdeckt, oder den OI und Projektmetadaten ausgedockt aufm 2. Moni - macht das Designen von fullscreen Anwendungen deutlich angenehmer. Wer braucht das schon... pft.

man kanns auch uebertreiben...wenn Du dann mal Windows 8 nutzt..brauchste 4 Monitore..weil die Kacheln net auf 2 passen :-D

EWeiss 30. Mär 2012 15:03

AW: Dimmed Sample
 
Zitat:

Gerade in einem alten Projekt (Delphi 5) gefunden:
Es geht um ein bißchen mehr als nur den Desktop Grau zu faden.
Alleine schon aufgrund der neuen Desktop Umgebung AktiveDesktop, Desktop usw..
ist das schon zum scheitern verurteilt.. bzw muss man noch eine menge mehr machen.
Der Grund meiner DLL ist dieser das sie auch von anderen Sprachen verwendet werden kann.

Dazu ist es nur von nöten das man die beiden funktionen auf andere umgebungen übersetzt.
Zitat:

man kanns auch uebertreiben...wenn Du dann mal Windows 8 nutzt..brauchste 4 Monitore..weil die Kacheln net auf 2 passen
Es ist bestimmt machbar aber nicht von mir da ich es nicht testen kann.
Schreibe nur Quelltext den ich auch selber überprüfen kann.

Aber hab nichts dagegen wenn es noch jemand anderes einbaut der 2 Monitore hat.

gruss

EWeiss 30. Mär 2012 18:21

AW: Dimmed Sample
 
Dimmed VB6

Modul mDimmed
Code:
Option Explicit

Public Declare Function GetDesktopWindow Lib "user32" () As Long

Public Declare Function FadeCreate Lib "Dimmed.dll" ( _
    ByVal WinHandle As Long, _
    ByVal FadeTime As Long, _
    ByVal clLight As Long, _
    ByVal clDark As Long _
) As Boolean

Public Declare Sub FadeDestroy Lib "Dimmed.dll" ()
Public Declare Sub InitCommonControls Lib "comctl32" ()
Form Form1
Code:
Option Explicit

Private Initialize As Boolean

Private Sub cmdDimmed_Click()
 
   Initialize = FadeCreate(Me.hWnd, 3500, RGB(255, 255, 255), RGB(0, 0, 0))
   
End Sub

Private Sub cmdDimmedDesktop_Click()
 
  Initialize = FadeCreate(GetDesktopWindow, 3500, RGB(255, 255, 255), RGB(0, 0, 0))
 
End Sub

Private Sub Form_Load()
 
  Call InitCommonControls
  Me.Caption = "Dimmed Sample " + "DLLVers. " + Dimmed_GetVersion
 
End Sub

Private Sub Form_Unload(Cancel As Integer)
 
  If Initialize Then
      FadeDestroy
  End If
 
End Sub
Neue Version oben incl. VB6 API und Sample
Nur damit jetzt jeder weis warum eine DLL

VB6.exe 100K Delphi.exe 1MB
Zum vergleich.. ;)

gruss

Christian Seehase 30. Mär 2012 20:42

AW: Dimmed Sample
 
Moin Emil,

Zitat:

Zitat von EWeiss (Beitrag 1159472)
Neue Version oben incl. VB6 API und Sample
Nur damit jetzt jeder weis warum eine DLL

VB6.exe 100K Delphi.exe 1MB
Zum vergleich.. ;)

Nur damit die Ergebnisse vergleichbar bleiben:
Ist die Delphi-Exe auch mit Runtime-Packages compiliert worden?

EWeiss 30. Mär 2012 20:44

AW: Dimmed Sample
 
Zitat:

Nur damit die Ergebnisse vergleichbar bleiben:
Ist die Delphi-Exe auch mit Runtime-Packages compiliert worden?]
Ja und ich weiss auch das dies das problem der größe ist.
Danke für die richtigstellung.

gruss

EWeiss 31. Mär 2012 11:13

AW: Dimmed Sample
 
Managed Wrapper_DLL Dimmed_API Class für Dimmed C#
Code:
namespace Dimmed_Api
{
    using System;
    using System.Runtime.InteropServices;
    using System.Security;


    [SuppressUnmanagedCodeSecurity]
    public sealed class Fade
    {

        [DllImport("user32.dll", SetLastError = false)]
        public static extern IntPtr GetDesktopWindow();

        //Dimmed_GetVersion
        public static string Dimmed_GetVersion()
        {
            IntPtr ptr = Dimmed_GetVersionPtr();
            if (ptr != IntPtr.Zero)
            {
                return Marshal.PtrToStringAnsi(ptr);
            }
            return null;
        }       
        [DllImport("dimmed.dll", EntryPoint = "Dimmed_GetVersion", CharSet = CharSet.Auto)]
        private static extern IntPtr Dimmed_GetVersionPtr();      

        //FadeDestroy
        [DllImport("dimmed.dll", EntryPoint = "FadeDestroy", CharSet = CharSet.Auto)]
        public static extern void FadeDestroy();


        //FadeCreate
        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("dimmed.dll", EntryPoint = "FadeCreate", CharSet = CharSet.Auto)]
        public static extern bool FadeCreate(IntPtr handle, int FadeTime, int clLight, int clDark);

    }
}
Dimmed Sample VB_NET
Code:
Option Explicit On

Imports Dimmed_Api

Public Class Form1

    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

        Fade.FadeDestroy()
    End Sub

    Private Sub cmdDimmMe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDimmMe.Click

        Fade.FadeCreate(Me.Handle, 3500, RGB(255, 255, 255), RGB(0, 0, 0))
    End Sub

    Private Sub cmdDimmDesktop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDimmDesktop.Click

        Fade.FadeCreate(Fade.GetDesktopWindow, 3500, RGB(255, 255, 255), RGB(0, 0, 0))
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Me.Text = "Dimmed Sample " & "DLLVers. " & Fade.Dimmed_GetVersion
    End Sub

End Class
Dimmed Sample C#
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Dimmed_Api;

namespace WindowsFormsApplication1
{

    public partial class Form1 : Form
    {
       
        public Form1()
        {
            InitializeComponent();
        }

        private void cmdDimmMe_Click(object sender, EventArgs e)
        {
            Fade.FadeCreate(Handle, 3500, ColorTranslator.ToWin32(Color.FromArgb(255, 255, 255)),
                ColorTranslator.ToWin32(Color.FromArgb(0, 0, 0)));
        }

        private void cmdDimmDesktop_Click(object sender, EventArgs e)
        {
            Fade.FadeCreate(Fade.GetDesktopWindow(), 1500, ColorTranslator.ToWin32(Color.FromArgb(255, 255, 255)),
                ColorTranslator.ToWin32(Color.FromArgb(0, 0, 0)));
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Fade.FadeDestroy();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Text = "Dimmed Sample " + "DLLVers. " + Fade.Dimmed_GetVersion();
        }
    }
}

gruss

EWeiss 31. Mär 2012 22:04

AW: Dimmed Sample
 
Neue Version.. Finale und fertig!
Siehe History

gruss

himitsu 31. Mär 2012 22:39

AW: Dimmed Sample
 
Wobei Windows auch schon sowas Ähnliches integriert hat.
http://www.delphipraxis.net/1159461-post2.html (siehe Link)

EWeiss 31. Mär 2012 22:54

AW: Dimmed Sample
 
Zitat:

Zitat von himitsu (Beitrag 1159606)
Wobei Windows auch schon sowas Ähnliches integriert hat.
http://www.delphipraxis.net/1159461-post2.html (siehe Link)

Ja aber hier geht es um den Ghost Effekt wenn eine Anwendung hängt. :)
Ähnliches .. jup.

Ich möchte hingegen so wie in Winamp meine Farbschemas in meinem MediaPlayer verändern können
und das geht über eine DLL(Delphi) um einiges Fixer als in VB.

PS:
Dafür wird diese (privat) noch etwas verändert.
Sollte es jemand brauchen OK.. ansonsten auch egal ;)
Habe es für jemanden hier im Forum gemacht der danach gefragt hat.

Gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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