نمایش نتایج 1 تا 4 از 4

نام تاپیک: تشخیص فشرده شدن کلید Tab

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    104

    تشخیص فشرده شدن کلید Tab

    با سلام
    چطوری فشرده شدن کلید TAB را متوجه بشوم؟

    با vk_tab و حتی کد کلید که عدد 9 است هم نشد

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    معمولا در اکثر کنترلها کلید Tab برای انتقال کنترل Focus به کامپوننت بعدی بکار میرود و شما نمیتوانید آنرا در OnKeydown به دام بیاندازید، اما میتوانید آنرا در OnKeyup بدام بیاندازید:
    procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    if key=VK_TAB then showmessage('Tab Key Pressed');
    end;

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    104
    ممنون از راهنمایی شما

    ولی مثلا من یک کامپونت
    editbox
    دارم خودم برحسب نیاز خودم درست میکنم که نیاز به تشخیص فشرده شدن این کلید در متن کامپونت دارم این را چیکار کنم

    :)

  4. #4
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    15
    شاید این کد بتونه کمی کمک کنه :


    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, AppEvnts;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    ApplicationEvents1: TApplicationEvents;
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    type myeditbox=class(tedit)
    private
    procedure onkeydown(var message :tmessage);message wm_killfocus ; // <- ofcourse it's not real tab key prressed
    end;

    var
    Form1: TForm1;
    i:myeditbox;

    implementation

    {$R *.dfm}


    procedure myeditbox.onkeydown(var message:tmessage);
    begin

    showmessage('tab key pressed');
    // if you want to don't let it to go to the another control after tab key pressed
    //form1.ActiveControl:=i;

    inherited;
    end;



    procedure TForm1.FormCreate(Sender: TObject);
    begin
    i:=myeditbox.create(self);
    i.Left:=50;
    i.Top:=50;
    i.Parent:=form1;
    end;

    end.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •