Bonjour à Tous,
Voici mon probléme, j'ai selectionner les caractéres d'un TEdit et je dois simuler l'appui de la Touche F12 sans perdre le Focus de mon TEdit avec les caractéres Selectionner.
Merci d'avance pour vos reponses.
Bonjour à Tous,
Voici mon probléme, j'ai selectionner les caractéres d'un TEdit et je dois simuler l'appui de la Touche F12 sans perdre le Focus de mon TEdit avec les caractéres Selectionner.
Merci d'avance pour vos reponses.
Bonjour,
Essayer un SendMessage avec WM_keyDown (enfin je crois que c'est key down)
Comme dit Tardiff Jean-François.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SendMessage(activecontrol.handle, WM_KEYDOWN, VK_F12, 0);
Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
Aymond d'Alost
j'ai egalement besoin de cette information et debutant sur le langage Pascal je n'arrive pas a utiliser ceci (en rouge sont soulignee mes erreur par borland):
cependant avant de voire cette rubrique dans le forum j'ai mis en place ceci (je doit simuler l'appuie de la combinaison ALT+R):
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(activecontrol.handle, WM_KEYDOWN, VK_R, 0);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 sleep(100); keybd_event(VK_LMENU, 0, 0, 0); keybd_event(Word('R'), 0, 0, 0); sleep(100); keybd_event(Word('R'), 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0);
Merci pour votre aide.
Activecontrol est le Tcontrol qui doit lancer l'événement .
Par exemple si voulez que simuler un événement lancer par le TEdit nommé Edit1 , c'est le handle de Edit1.
Les touches VK_... sont les "virtual keys". Ce sont les équivalent des touches à envoyer à l'aide des messages. Elles sont dans l'unité Windows.
Les virtual Key sont aussi ce qui est utilisé a la réception des messages.
Se sont des numero et non des lettres (voir les fonction ORd est asc)
Regarder aussi a cette adresse http://tcharles.developpez.com/simul/?delphi=1
Pardonne moi, je n'ais pas saisit ton explication. En effet j'ai commencer a me pencher sur ce langage hier et j'ai un programme a faire au plus vite.
j'explique, je doit faire en sorte que l'ordinateur execute tout seul une combinaison de touches car par la suite il y auras ni clavier, ni souris d'installer. De plus je n'ais pas le choix du langage.
Voici ou j'en suis, si quelqu'un peut m'expliquer qu'elles sont mes erreur je lui en serait reconnaissant :
A ce que j'ai compris, 82 = VK_R = word ('R')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 unit AppletModule1; interface uses Windows, Messages, SysUtils, Classes, Graphics, CtlPanel; type TAppletModule1AppletModule = class(TAppletModule) private { private declarations } protected { protected declarations } public { public declarations } end; var AppletModule1AppletModule: TAppletModule1AppletModule; hFore: HWND; implementation begin hFore := GetForegroundWindow(); //SendMessage(activecontrol.AppletModule1AppletModule, WM_KEYDOWN, VK_R, 0); sleep(100); keybd_event(VK_LMENU, 0, 0, 0); keybd_event(Word('R'), 0, 0, 0); sleep(100); keybd_event(82, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0); end.
Je me suis baser sur le site mit dans le post precedent pour en arriver la.
MERCI pour vos infos,
malheureusement rien ne se passe quand je met la commande
alors que quand je met le code ci-dessous l'action F12 se lance bien mais apparement je perd le focus de mon Edit juste à cet instant et le recupére apres
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(activecontrol.handle, WM_KEYDOWN, VK_F12, 0);
Pour être plus precis, sur le PC il y a un logiciel (ClickTel) qui par l'action d'une touche paramétrée (F12) recupére les caratéres numeriques de la zone selectionner (en bleu) qui peut être sous n'importe quel logiciel (Word, Excel, Access,etc...), il l'a copie puis lance la numerotation via un autre logiciel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Keybd_Event(Key, 0, 1, 0); Keybd_Event(Key, 0, 2, 0);
Dans mon Appli quand l'utilisateur Click sur le grille je fait plusieurs manip (Mettre à jour une table, modifié la couleur de la zone, recupére le numero de téléphone , verifie s'il est conforme, le copie dans un TEdit puis selectionne tous les chiffres de celui-ci et enfin lance la commande F12 et c'est là que le logiciel ClickTel rentre en action et me dit qu'il faut "selectionner un numero" alors que mes caractéres sont bien selectionnés dans mon TEdit, par contre si j'appuie sur le touche F12 le ClickTel ce lance bien !!!!!!!
j'espére avoir été assez claire dans mon explication.
Si vous avez une idée je suis preneur.
Merci d'avance.
Bonjour Edam,
je fait déjà un Setfocus, voici ce que je fait dans mon doubleclic de ma grille
j'ai essayé avec le Post ou avec le Send, pour les 2 j'ai essayé avec que le KEYDOWN ou avec le KEYDOWN et KEYUP, rien ne se passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ENum.Text := DBGrid1.Fields[7].Text; ENum.SetFocus; ENum.SelectAll; //PostMessage(Enum.Handle, WM_KEYDOWN, VK_F12, 0); //SendMessage(ENum.handle, WM_KEYDOWN, VK_F12, 0); Keybd_Event(VK_F12, 0, 0, 0); Keybd_Event(VK_F12, 0, KEYEVENTF_KEYUP, 0);
avec le Keybd le logiciel ClickTel la detecte bien mais trouve pas la selection de l'Edit !!!!! je cale.
je vais chercher vers une autre direction.....quand on appuie sur la touche paramétré par le logiciel ClickTel (exemple : F12), ce logiciel copie en memoire le numero selectionné (Style Ctrl+V), comment puis je copier cette selection en memoire sans utiliser la simulation de touche clavier.
Merci pour votre aide.
C'est peut-être simplement ça qu'il faut faire, le copier dans le presse-papier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ENum.CopyToClipboard;
Delphi 7/XE2/XE3
C#
Oracle 9i à 12c
SQL Server 2008 à 2014
MERCI pour votre coup de main,
Bon pour l'idée duje n'y avais pas pensé....mais non ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ENum.CopyToClipboard;
et pour lenon plus.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part application.processemessage;
je continue mes recherches.....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager