Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : OnKeyPress non détécté [ Système / Autre ] (L_art_ment)

dimanche 8 juin 2008 à 13:33:05 | OnKeyPress non détécté

L_art_ment

Mes cieux d'âmes bonjour 

   Je vous reviens avec un nouveau petit soucis, bêtte je pense, mais je ne trouve pas le pourquoi du comment ...
Déjà désolé si je ne poste pas dans le bon thème mais je ne savais pas lequel correspondait le mieux à mon soucis.

   Alors passont aux choses sérieuses, je vous expose mon soucis...

   Je suis en train de passer mon temps à me faire un petit lecteur media, bon il y en a des milliers sur Delphifr mais pas d'inquiétudes je ne vais pas le poster comme source lol c'est juste que je fais ma petite interface sympathique à moi bref...

   Donc j'utilise des images sur ma forme, j'ai posé sur l'une des images une listebox, laquelle contient la liste des titres à écouter,
Je souhaiterai utiliser l'évènement OnKeyPress de cette listebox pour supprimer des titres de la liste... Mais lorsque je lance l'exe, j'ai l'impression qu'il ne détècte pô que j'appuie sur "suppr", je vous montre le code que j'utilise :

procedure TFrmPrincipale.LBChansonsKeyPress(Sender: TObject; var Key: Char);
var i : integer;
begin
if (key=Chr(VK_DELETE)) then
  begin
  showmessage('ok');
    with LBChansons do
      begin
        for i := Count-1 downto 0 do
          if selected[i] then
            Items.Delete(i);
      end;
  end;
end;

(Le showmessage est là pour le test seulement et il ne s'affiche même pô...)

   Donc à l'éxecution rien ne se passe lorsque je tape "suppr" et que j'ai séléctionné des items... Serai-ce un probléme de parent (puisque ma ListBox est sur une image), ou autre problème, je ne vois pô...

   Merci de votre lumiére bibliquo-Delphiste en ce jour du seigneur, Amen 

dimanche 8 juin 2008 à 13:51:14 | Re : OnKeyPress non détécté

HAFTARIFOUAD

Bonjour

Désolé pour mon message qui s'affiche pas:

Je pense que vous avez oublier de vaalider KeyPreview de votre TForm

KeyPreview:=True;


dimanche 8 juin 2008 à 14:11:14 | Re : OnKeyPress non détécté

L_art_ment

Bonjour Haftarifouad,

   Merci pour votre rapide réponse, mais même ayant rajouté KeyPreview:=true; dans le OnCreate de ma Form ca ne change rien ...

dimanche 8 juin 2008 à 14:24:42 | Re : OnKeyPress non détécté

Caribensila

Membre Club
Réponse acceptée !

Salut,

Il faut utiliser les événements OnKeyDown ou OnKeyUp de ta ListBox.

L'événement OnKeyPress enregistre le caractère ASCII correspondant à la touche enfoncée, mais la touche Suppr est une touche non-ASCII.

Et pas besoin de KeyPreview := true !


dimanche 8 juin 2008 à 14:34:19 | Re : OnKeyPress non détécté

L_art_ment

Ah bein oui effectivement ca marche beaucoups mieux  

   Désolé pour la question bête, me coucherais moins con s'soir! Je ne savais pas l'histoire de la touche non-ascii 

   Merci Caribensila ! Bonne journée à vous !

lundi 9 juin 2008 à 01:52:10 | Re : OnKeyPress non détécté

f0xi

Membre Club Administrateur CodeS-SourceS


procedure TForm1.ListBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
const
  Chars : array[0..25] of char = 'abcdefghijklmnopqrstuvwxyz';
begin
  case Key of
    VK_DELETE : ListBox1.DeleteSelected;
    VK_INSERT : ListBox1.Items.Add(Chars[random(Length(Chars))]);
  end;
end;




lundi 9 juin 2008 à 13:58:43 | Re : OnKeyPress non détécté

Guillemouze

@cari: "touche Suppr est une touche non-ASCII."
pourtant son code ASCII est 127 !

je pense pas que keypress ai un rapport avec l'ascii ou non, je pense que seules certaines touches sont prises en compte par le keypress. Par contre, je ne sais pas quel mecanisme fait qu'une touche est ou n'est pas gérée par le keypress.


lundi 9 juin 2008 à 14:52:51 | Re : OnKeyPress non détécté

Caribensila

Membre Club

@Guillemouze

Extraits de l'Aide :

« Le gestionnaire d'événement OnKeyPress permet d'effectuer un traitement spécifique quand une touche correspondant à un caractère alphanumérique est enfoncée. »
-
Or, il n'y a pas de caractère correspondant à la touche SUPPR (bien qu'elle ait un code).

« Le gestionnaire OnKeyDown peut répondre à toutes les touches du clavier, y compris les touches de fonction et les combinaisons avec les touches Maj, Alt et Ctrl ainsi qu'avec les boutons de la souris. »


Pour OnKeyPress, reste le mystère de la touche retour (#8) qui répond à l'événement bien qu'il n'y ait pas de caractère associé.
 
Il faut parfois savoir ne pas trop se poser de question.
Mais si qqun a une réponse à ce mystère...


lundi 9 juin 2008 à 18:25:11 | Re : OnKeyPress non détécté

Guillemouze

@cari :
"la touche Suppr est une touche non-ASCII."
" Or, il n'y a pas de caractère correspondant à la touche SUPPR (bien qu'elle ait un code)"

c'etait juste pour etre sur que les choses soient claires. La touche suppr est une touche ASCII, mais pas alphanumerique.


lundi 9 juin 2008 à 18:28:53 | Re : OnKeyPress non détécté

L_art_ment

Hum... Effectivement j'viens de faire le test avec la touche retour et OnKeyPress... J'vais mal dormir cette nuit à cause de toi Caribensila...


1 2

Cette discussion est classé dans : end, soucis, , onkeypress, détécté


Répondre à ce message

Sujets en rapport avec ce message

probleme dans mon programme [ par tarik ] monsieur kerad je crois que j'ai un bug dans mon programme ci-dessousprocedure TForm1.Button1Click(Sender: TObject);begintable1.open;try Table1.First urgent : code à corriger. Cela fait des jours que je suis dessus !!!!!! [ par Marcel ] Le code qui suit sert à créer un compte à rebours. Les 2 dernières lignes de ce code sont incorrecte car le compilateur signale:[Erreur]Unit1.pas(56): MessageBox [ par jia2812 ] Salut!...Ça va peut-être vous faire rire mais bon "Qui ne tente rien n'a rien!..." Alors, voilà, si je comprends ps trop mal Delphi car ça ressemble 1 Erreur: Declaration forward ... [ par Lénaïc ] Avec le code ci-dessous j'ai une erreur "Déclaration forward ou external non satisfaite: 'TFrm_Perso.ComboAddFile'".Je n'arrive pas à trouver l'erreur Pb sur une classe pile [ par ninuko ] Aider moi, au secour!!!! URGENT!!!!!unit UntClasPile; { UntClasPile porteuse de la Classe pile Cette classe permet de : raise Exception.Create : gérer les exceptions ? [ par manudel ] Voilà je ne sais pas comment "catcher" une exception.L'exception se déclenche, et à mon avis remonte au niveau le plus haut, en cherchant un gestionna Datamodule et accès à partir d'une form [ par manudel ] Voilà, je voudrais avoir accès aux événements des objets figurant sur mon datamodule, mais je n'y arrive pas. J'ai l'erreur suivante : "le type de l'e visibilité procédures et fonctions dans une unit [ par manudel ] Je déclare une fonction qui renvoit un résultat de type TPersonne, et je voudrais savoircomment faire pour la mettre au même nivau de visibilité que l Code pas fiable dans un livre [:(!] [ par Youyou0214 ] Voil j'ai achet un livre sur delphi et je fais leurs exercises. Tout march pars un lanceur D'application. Il est compos d'une comboBox ( nom (c le n OnKeyPress les constantes ne sont pas reconnues [ par MasterJ ] Salut sur l'event onKeyPress, je fais ceci : if not(Key in ['0'..'9','.',Key_Return,Key_Backspace]) then Key:=#0;j'ai pourtant bien importer le unit q


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.