AlphaBlend

Résolu
Signaler
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
2 mars 2012
-
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
2 mars 2012
-
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

5 réponses

Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
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;
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
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]
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
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
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
@Cirec :
bien vu !
Je crois que j'étais un peu dans le gaz ce matin...

A+
Thierry
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
2 mars 2012

c'est super
merci a tous


bonne journée

ferdo