Fermer Actuellement : 3 commentaires Trucs et Astuces pour Delphi

TRUCS ET ASTUCES POUR DELPHI

Retour

 

Tout sur les raccourcis Delphi

 

 

Comment voir si l'utilisateur appuie sur une touche de direction ou une touche de fonction sur une fenêtre ou un composant

Dans l'événement OnKeyDown de votre composant ou votre TForm mettre le code suivant:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
    if Key=VK_LEFT then 
  begin
    {ici vous mettez le traitement à faire}
  end;
end;

Si vous voulez également intercepter dans l'événement OnKeyDown d'une form tous les événements clavier destinés aux composants situés sur cette form, il faut mettre sa propriété KeyPreview à true.

Liste des valeurs possibles pour Key: (merci Raphaël Létocart pour cette liste)

VK_LBUTTON : bouton Gauche Souris
VK_RBUTTON : bouton Droite Souris
VK_MBUTTON : bouton Central Souris
VK_CANCEL : Arrêt Exec. programme
VK_BACK : Retour Arrière
VK_TAB : Tabulation
VK_RETURN : Entrée
VK_SHIFT : Touche de contrôle MAJ
VK_CONTROL : Touche de contrôle CTRL
VK_MENU : Touche de contrôle ALT
VK_PAUSE : Pause
VK_ESCAPE : Echappement
VK_SPACE : Barre d'espacement
VK_PRIOR : Page Haut
VK_NEXT : Page Bas
VK_END : Fin
VK_HOME : Début
VK_LEFT : Flèche gauche
VK_UP : Flèche haut
VK_RIGHT : Flèche droite
VK_DOWN : Flèche bas
VK_SNAPSHOT : Impression d'écran
VK_INSERT : Insérer
VK_DELETE : Supprimer
VK_HELP : Aide
VK_NUMPAD0..VK_NUMPAD9 : Touche pavé numérique 0 à 9
VK_MULTIPLY : Touche pavé numérique *
VK_ADD : Touche pavé numérique +
VK_SEPARATOR : Touche pavé numérique Entrée
VK_SUBTRACT : Touche pavé numérique -
VK_DECIMAL : Touche pavé numérique . (décimal)
VK_DIVIDE : Touche pavé numérique /
VK_F1..VK_F12 : Touches de fonction F1 à F12
VK_NUMLOCK : Verrouillage pavé numérique
VK_SCROLL : Verrouillage scrolling
VK_CAPITAL : Verrouillage majuscules

Une remarque / variante de Jean-Yves Queinec :(08/09/99)

S'il existe des composants fenêtrés sur la fiche (boutons par exemple), les touches fléchées ne peuvent pas être interceptées en positionnant simplement KeyPreview à true. Si par exemple je veux dessiner sur une paintbox à l'aide des touches fléchées, ce sont les boutons qui reçoivent systématiquement les messages des touches de direction, ainsi que ceux produits par <Tab>. Voici une solution : -->

Implémentez l'événement OnCreate de votre TForm ainsi :

procedure TForm1.FormCreate(Sender: TObject);
var
  bmp : Tbitmap;
  i : integer;
begin
  Application.OnMessage := TraiteMessages;
  ......  

dans la déclaration de la Tform, juste sous

procedure FormCreate(Sender: TObject);  

Ajoutez :


procedure TraiteMessages(Var msg : TMsg; Var Handled: boolean);
{ Gestionnaire de message au niveau application }

Puis dans la partie implémentation :


{ Intercepte les messages clavier et en particulier les touches flèchées }
Procedure Tform1.TraiteMessages(Var msg : TMsg; Var Handled: boolean);
var
  dx, dy : integer;
begin   dx: 0; dy := 0; 
  With msg do
  begin
    IF Message = WM_KEYDOWN then
    Case  wparam of
      VK_LEFT  : dx := -1;
      VK_RIGHT : dx :=  1;
      VK_UP    : dy := -1;
      VK_DOWN  : dy :=  1;
    end;
  end;
  IF (dy = 0) AND (Dx = 0) then Handled := false else
  begin
    handled := true;     // message traité
    Mouvement(dx, dy)    // exécution du tracé 
  end;
end;

 

Comment pouvoir utiliser des images JPEG et des Gif dans un composant TImage (15/11/97)

(En D4 (et +?): pas besoin de faire cette manip, cela existe d'origine.)
Pour pouvoir, à la conception, utiliser des images JPEG dans le composant TImage, choisissez Composant / Installer un composant, puis remplir en prenant les précautions suivantes:

  • mettre jpeg comme Fichier unité
  • Ne rien toucher au chemin de recherche
  • Le nom du fichier paquet peut être ce que vous voulez sauf JPEG ( j'ai choisi ImJPEG)
  • Vous remplissez la description comme bon vous semble.

 

faire OK

Le composant TImage vous propose maintenant le format Jpeg !

Pour pouvoir utiliser des JPEG dans une application à l'exécution, incluez l'unité JPEG dans la clause USES de votre unité.

Pour les GIF, allez voir sur le site http://www.delphi32.com/vcl/673/ et récupérez le composant TGIFImage. L'installation et les résultat sont entièrement similaire à ce que l'on vient de voir pour les JPEG.

 

Une astuce de JP Bouret : comment, pour un ComboBox, avoir directement la liste déroulante en position déroulée (19/11/98)

Dans mes programmes de compta, j'utilise souvent le combobox et comme les données sont entrées au clavier il est intéressant lors de la tabulation sur le combobox d'avoir la liste déroulante sans avoir à utiliser la souris pour cliquer sur le bouton. J'ai regardé dans la VCL et j'ai trouvé une propriété non publiée qui est bien utile. J'ai simplement ajouté dans l'événement OnEnter : MonComboBox.DroppedDown:= true;

 

comment transformer une version D4 française en version US ? (20/12/98)

Il est tout a fait possible de transformer une version FR en version US par exemple pour installer un patch non encore disponible en version Française:
Dans le repertoire BIN de Delphi 4, il faut supprimer ou deplacer tous les fichiers avec l'extension .FR et votre Delphi Francais préféré devient un delphi US.

 

retour au sommaire