Hirdetés
- Milyen okostelefont vegyek?
- Samsung Galaxy S25 - végre van kicsi!
- Örömkönnyek és üres kezek a TriFold startjánál
- iPhone topik
- Korai iOS árulkodik arról, milyen eszközök várhatók az Apple-től a közeljövőben
- iOS alkalmazások
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- One mobilszolgáltatások
- Samsung Galaxy A55 - új év, régi stratégia
Új hozzászólás Aktív témák
-
_AnTi_
tag
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! -
BatemanX
tag
Hűha, akkor ehhez kicsit jobban a dolgok mélyére kell ásni. Most lehet, hogy sok hülyeséget fogok írni, a szakértőbbek majd kijavítanak, mivel amit leírok csak tapasztalati tényeken alapszik és nem ismerem hozzá a Delphi mélylélektanát.
Szóval a probléma ekkor az, hogy mindig az a komponens kapja meg a billentyűleütést, amelyiken a fókusz van, így 3 lehetőséged van:
Legrosszabb:
Minden formon lévő komponensed onkeydownjához odaírod a már említett kódot.
Valamivel egyszerűbb, de nem javasolt undorító heggesztés:
Override-olod a WndProc eljárást és figyeled a Message paraméterét. Ha az általad kívánt billentyűkombináció jön, meghívod a megfelelő eljárást.
Elegáns, jó megoldás:
Csinálsz egy ''hook''-ot a billentyűzet eseményekre. Erre most konkrét kódot nem írnék, mert elég komplikált, inkább google-ban keress rá a CallNextHookEx eljárárásra és a találatok között biztos lesz olyan ami rávilágít a megoldásra (annó én is ezt csináltam). -
Szalma
őstag
(Hát az elég fogós. Írni kell egy saját üzenet diszpeccselőt, amiben elcsíped a neked kellő windows message-kat, a többit pedig tovább passzolod. A fő form ablakának az üzenetkezelőjébe kellene beilleszkedned. WndProc környékén kell nézelődni, a VCL-ben megtalálod, onnan ki lehet lesni...
''Sajnos'' most nincs delfim, nem tudok pontosabb infóval szolgálni...)
Szeretettel:
Szalma -
BatemanX
tag
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.
Új hozzászólás Aktív témák
- Autós topik látogatók beszélgetős, offolós topikja
- Íme az év legszebb játékai - a Digital Foundry szerint
- Háztartási gépek
- Külső 3,5'' mobil rack-ek topikja
- ASUS notebook topic
- Milyen okostelefont vegyek?
- Okos Otthon / Smart Home
- PlayStation 5
- Tápokról alaposan - mélyvíz
- Derült égből villámcsapás: vége a Ford elektromos kalandjának
- További aktív témák...
- Felsőkategóriás Gamer PC-Számítógép! Beszámítás! X870 /R9 9950X / RX 9070XT / 32GB DDR5 / 2TB SSD
- Macbook Air 2018 i5/8gb ram/128Gb
- Eladó Clevo 870 DM/-G
- Dell Latitude 5440 14" FHD IPS Core i5 1345U VPro 16GB RAM 256GB NVME, Magyar Bill, Dell Gar.
- Asztali PC - Gigabyte Z170M - i7-6700K - 32 GB DDR4 - RX550 Pulse 2 GB - 240 GB M2 SSD - fullconfig
- Bomba ár! HP EliteBook 840 G6 - i7-8GEN I 16GB I 512GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- HIBÁTLAN iPhone 12 Pro Max 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4025
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- 134 - Lenovo Legion Pro 7 (16IRX8H) - Intel Core i9-13900HX, RTX 4090 - 3 év garancia
- Mio Star Coffe One Milk Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest




