Keresés

Hirdetés

Új hozzászólás Aktív témák

  • BatemanX

    tag

    válasz Erick #467 üzenetére

    1. Helpben file management routines-ra keress rá és kidobja az összes függvényt/eljárást, amire szükséged lehet.
    2. Itt attól függ, mikor és milyen billentyűzetkombinációt akarsz hozzárendelni. Ha pl. csak annyirra van szükséged, hogy ha a Comboboxon állsz, mondjuk F5-re nyiljon le, az viszonylag egyszerű. Az OnKeyDown eseménykezelőhöz kell vmi ilyesmit rendelni:

    procedure TForm1.DriveComboBox1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    if Key = VK_F5 then
    DriveComboBox1.DroppedDown := true;
    end;

    Ha viszont azt szeretnéd, hogy a formon bárhol álllva (tehát nem a DriveComboBox-on van a fókusz) és úgy reagáljon vmi billentyűkombinációra...nos az egy komplikáltabb dolog. :)

    ''Budapest, hajnali fél három, gyenge szél, 14 fok. A hajam tökéletes, de azon a rohadt tesztszerveren még mindig 1000-es várakozási sor van...'' -F-ECT$ a WoW tesztszerverről.

  • _AnTi_

    tag

    válasz Erick #467 üzenetére

    Szia! Ezt egy ezer éves progimból szedtem ki, remélem segít (a billentyű nyomkodásra egy példa)!

    Private/public részben deklaráld mondjuk ezt:
    procedure gomb(var msg: tmsg; var handled: boolean);


    procedure TForm1.gomb(var msg: tmsg; var handled: boolean);
    var
    keybstate: Tkeyboardstate;
    begin
    case msg.message of
    WM_KEYFIRST..WM_KEYLAST:
    begin
    getkeyboardstate(keybstate);

    if (keybstate[VK_LEFT] and 128)=128 then
    balra;

    handled:=true;
    end;
    end;
    end;

    procedure TForm1.FormShow(Sender: TObject);
    begin
    application.OnMessage:=gomb;
    end;

    A billentyűkonstansokat megtalálod a helpben, ha rákeresel mondjuk a VK_LEFT-re! Így elvileg ha aktív a progid, akkor bármely billentyűt le tudod kezelni (ha van rá konstans). Természetesen, ha nagy hülyeséget írtam javítsatok ki!
    Bye!

    Szép vagyok és okos, ügyes és aranyos...

Új hozzászólás Aktív témák