AlphaBlend [Résolu]

Messages postés
13
Date d'inscription
dimanche 23 février 2003
Dernière intervention
2 mars 2012
- - Dernière réponse : cs_ferdo
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Dernière intervention
2 mars 2012
- 3 nov. 2011 à 06:12
Bonjour

Comment controler la valeur AlphoBlend avec combinaison de touche par exemple ctrl + pour augnenter sa valeur ou ctrl - pour baisser sa valeur

bonne journée

merci

ferdo
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
1
3
Merci
Bon, ça c'est le principe, mais voici une solution plus heureuse (ajout d'une fonction) :

function ModifAlphaBlendValue(Alpha: integer; Value: integer): integer;
begin
   Result:= Alpha + Value;
   if Result > 255 then Result:= 255
     else if Result < 50 then Result:= 50;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    case Key of
       VK_ADD: if (ssCtrl in Shift) then
                   AlphaBlendValue:= ModifAlphaBlendValue(AlphaBlendValue, 5);
       VK_SUBTRACT : if (ssCtrl in Shift) then
                        AlphaBlendValue:= ModifAlphaBlendValue(AlphaBlendValue, -5);
    end;
end;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ThWilliam
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
41
3
Merci
Salut,

perso je ferais plutôt comme ça:
[hr]function ModifAlphaBlendValue(Alpha: integer; Value: integer): integer;

[b]begin
   /bResult:=  Alpha + Value;
    if  Result > 255 then Result: = 255
     else if Result < 50 then Result:=  50;
end ;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
[b]begin
  if /bShift  = [ssCtrl] [b]then
    case /bKey [b]of
       /bVK_ADD: AlphaBlendValue:= ModifAlphaBlendValue(AlphaBlendValue, 5);
       VK_SUBTRACT : AlphaBlendValue:= ModifAlphaBlendValue(AlphaBlendValue, -5);
    end;
end;
[hr]
1°) ça éclaircit un peu le code
2°) ça ne répond que si "Ctrl" est maintenue toute seule.

@ThWilliam:
Ton code fonctionne si, au moins, la touche Ctrl est maintenue ... ex. "AltGr" + "VK_ADD" fonctionne tout comme "Ctrl + Alt" + "VK_ADD"
etc. etc.


[hr]@+Cirec
[hr]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
1
0
Merci
Salut.

1) Initialiser la propriété Keypreview de ta Form = true
2) Utiliser l'événement OnKeyDown de ta Form :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  A: integer;
begin
    A:= AlphaBlendValue;
    if (ssCtrl in Shift) and (Key = VK_ADD) then  // Ctrl +
          A:= A + 5
    else
    if (ssCtrl in Shift) and (Key = VK_SUBTRACT) then  // Ctrl -
          A:= A - 5;
    if A < 50 then A:= 50
       else if A > 255 then A:= 255;
    AlphaBlendValue:= A;
end;



A +
Thierry
Commenter la réponse de ThWilliam
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
1
0
Merci
@Cirec :
bien vu !
Je crois que j'étais un peu dans le gaz ce matin...

A+
Thierry
Commenter la réponse de ThWilliam
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Dernière intervention
2 mars 2012
0
Merci
c'est super
merci a tous


bonne journée

ferdo
Commenter la réponse de cs_ferdo

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.