Subject Re: [IBO] SemiAuto inserting text into gridcell
Author Rita Lavoie
Try :



const WHATEVER1 = 'Whaterver1 your want';
const WHATEVER2 = 'Whaterver2 your want';

USAGE :

procedure Tyourform.EditYourEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Sender = (?Sender1)) or (Sender = (?Sender2)) then
begin
if (Key = VK_F9) then
SendKeys(WHATEVER1) else
if (Key = VK_F8) then
SendKeys(WHATEVER2);
end;
end;


procedure SendKeys(s : string);
procedure SimulateKeystroke(Key : byte;extra : DWORD);
procedure SimulateKeyDown(Key : byte);
procedure SimulateKeyUp(Key : byte);

procedure SendKeys(s : string);
var
i : integer;
flag : bool;
w : word;
begin
{Get the state of the caps lock key}
flag := not GetKeyState(VK_CAPITAL) and 1 = 0;
{If the caps lock key is on then turn it off}
if flag then
SimulateKeystroke(VK_CAPITAL, 0);
for i := 1 to Length(s) do begin
w := VkKeyScan(s[i]);
{If there is not an error in the key translation}
if ((HiByte(w) <> $FF) and
(LoByte(w) <> $FF)) then begin
{If the key requires the shift key down - hold it down}
if HiByte(w) and 1 = 1 then
SimulateKeyDown(VK_SHIFT);
{Send the VK_KEY}
SimulateKeystroke(LoByte(w), 0);
{If the key required the shift key down - release it}
if HiByte(w) and 1 = 1 then
SimulateKeyUp(VK_SHIFT);
end;
end;
{if the caps lock key was on at start, turn it back on}
if flag then
SimulateKeystroke(VK_CAPITAL, 0);
end;

procedure SimulateKeystroke(Key : byte;
extra : DWORD);
begin
keybd_event(Key,
extra,
0,
0);
keybd_event(Key,
extra,
KEYEVENTF_KEYUP,
0);
end;

procedure SimulateKeyDown(Key : byte);
begin
keybd_event(Key, 0, 0, 0);
end;

procedure SimulateKeyUp(Key : byte);
begin
keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);
end;

procedure SimulateKeyUp(Key : byte);
begin
keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);
end;