Transparenter Layer über TPanel, TImage

Rund um die LCL und andere Komponenten
Antworten
Thandor
Beiträge: 153
Registriert: Sa 30. Jan 2010, 18:17
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
CPU-Target: 64Bit
Wohnort: Berlin

Transparenter Layer über TPanel, TImage

Beitrag von Thandor »

Hallo,

ich habe ein TPanel auf dem (nicht immer) ein TImage ist. Wenn das Image vorhanden ist kann es das gesamten Panel füllen.
Das Panel nutze ich als Button. Nun möchte ich daraus ein Check-Button machen. Also wenn man auf den Button Klickt wird der Button als "gecheckt" markiert. Hierfür möchte ich gerne eine Transparente Farbe über das Image (wenn vorhanden) und das Panel legen. Also quasi ein Schleier.

Leider habe ich bisher keine einfache Möglichkeit gefunden wie ich dies bewerkstelligen kann. Bitte um Anregungen.

OS: Windows und Linux(Raspbian)

Grüße
Thandor

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: Transparenter Layer über TPanel, TImage

Beitrag von compmgmt »

Ist zwar nicht exakt das was du möchtest, aber wenn du möchtest, dass es gedrückt aussieht, kannst du auch folgendes machen:

Code: Alles auswählen

TPanel.BevelOuter := bvLowered;
und zum unchecked einfach bvRaised statt bvLowered einsetzen.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Thandor
Beiträge: 153
Registriert: Sa 30. Jan 2010, 18:17
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
CPU-Target: 64Bit
Wohnort: Berlin

Re: Transparenter Layer über TPanel, TImage

Beitrag von Thandor »

Danke,

schaut schon mal nicht schlecht aus. Ich befürchte nur, dass das zu unauffällig sein könnte.
Der Anwender wirft sehr wahrscheinlich nur einen flüchtigen Blick drauf.

Antworten