PDA

View Full Version : کی برد مجازی



sasan23
شنبه 09 اردیبهشت 1391, 19:51 عصر
سلام دوستان
-چطور میشه کد اسکی یک دکمه از صفحه کلید رو داخل یه دکمه گذاشت
مثلا: می خام کد اسکی 75 (که فکر کنم مال K باشه ) رو داخل یه دکمه بذارم که بعد از اجرا وقتی روی دکمه کلیک کنیم انگار دکمه ی k از صفحه کلید رو فشار دادیم - من خودم میذارم key:=75 ولی بعد از اجرا دکمه رو که میزنم کار نمیکنه اصلا وظیفه ی این کد چیه

mbshareat
شنبه 09 اردیبهشت 1391, 20:20 عصر
سلام و درود بر شما برادر بزرگوار .
یه دکمه و یه ادیت روی فرم بذارین و این کد رو به رویداد کلیک دکمه انتساب بدین.
با فشار دکمه داخل ادیت K تایپ می کنه! (فقط نمی دونم چرا کل متن ادیت رو پاک می کنه!)

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.SetFocus;
keybd_event(75, 0, 0, 0);
end;

سعید صابری
شنبه 09 اردیبهشت 1391, 21:20 عصر
Edit1.Text:=Edit1.Text+Char(75);

zidane
شنبه 09 اردیبهشت 1391, 23:49 عصر
من پيشنهاد مي كنم براي هر حرف يك SpeedButton قرار بديد(چون فوكوس جابجا نشه) كه Caption اون همون حرفي باشه كه قراره تايپ بشه. حالا از كد زير براي رويداد كليك همشون استفاده كنيد:

var
hwnd:THandle;
begin
hwnd:=Screen.ActiveControl.Handle;
SendMessage(hwnd,WM_CHAR,word(TSpeedButton(Sender) .Caption[1]),0);
end;