Bitmap 32bits intégré à la vcl (timage, tpicture, tbitmap, topenpicturedialog)

Description

ça fait longtemps que j'ai ce code sous le coude (déjà plusieurs refontes) et j'ai pensé qu'il était temps de vous en faire profiter ^^

Alors c'est quoi ?:
ben tout simplement la prise en charge du Bitmap 32Bit par la VCL (en RunTime uniquement) en toute transparence ... (jeu de mots ^^)
ça veut dire que pour vous rien ne change (presque) vous utilisez les composants comme avant (TImage, TPicture, TBitmap) mais le 32Bits est géré.

Mais comment donc ?:
ben en surchargeant la classe TBitmap (voir le code dans crBitmap32.pas).

concrètement vous avez 2 propriétés supplémentaires:
NoAlpha: permet de ne pas utiliser le canal Alpha (32Bit Uniquement)
nb: NoAlpha est prioritaire sur propriété Transparent.
Opacity: de 0 à 255 permet changer l'opacité du Bitmap
peu importe le PixelFormat.
0 = Transparent.
255 = Opaque.

Pour tous les Bitmaps en-dessous de 32Bit:
si Opacity est <> 255 le bitmap est automatiquement transformé en 32Bit

Note importante :
pour accéder aux propriétés supplémentaires depuis un TBimap contenu dans un TPicture/TImage
vous serez obligé de transtyper explicitement le Bitmap en Bitmap ... hein quoi .. ^^

img_BkGround.Picture.Bitmap.Opacity <------- propriété inconnue
// Solution:
TBitmap(img_BkGround.Picture.Bitmap).Opacity

en revanche ceci ne pose aucun problème:
var aBMP : TBitmap;
begin
aBMP := TBitmap.Create;
aBMP.Opacity := 180;
...
end;

Dans ce code vous apprendrez, en plus, à:
effectuer des surcharges de composant, de méthodes, de procédures et fonctions.
centraliser les événements OnClick (jusqu'à 11 évènements sur une procédure)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.