Hirdetés
- Bemutatkozott a HHKB legújabb, Topre kapcsolókkal szerelt billentyűzete
- Intel Raptor Lake-U Refresh architektúrás mini PC érkezett az MSI színeiben
- A Chrome egyeduralmára tör a ChatGPT böngészője
- Kompakt AIO-val használható rackmount ház jött a Chieftec fémjelzésével
- Már nagyon közel van az AI szerverekbe szánt SOCAMM2 szabvány véglegesítése
- Androidos tablet topic
- Azonnali alaplapos kérdések órája
- DUNE médialejátszók topicja
- Azonnali informatikai kérdések órája
- Milyen hangkártyát vegyek?
- Milyen egeret válasszak?
- Sony MILC fényképezőgépcsalád
- Samsung Galaxy Tab S11 - tizenegyes
- Milyen billentyűzetet vegyek?
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
Új hozzászólás Aktív témák
-
BatemanX
tag
válasz
Flashback
#501
üzenetére
Megvannak azok a komponensek, csak nincsennek kirakva a komponenspalettára (nem tudom miért). A lehetőségeid a következők:
A usesben elhelyezed a ScktComp, Sockets, Winsock unitokat és utána már használhatod a TServerSocket és TClientSocket objektumokat, persze ekkor kódból kell létrehozni őket. A másik lehetőség, hogy vmelyik package-ben el kell helyezni az ScktComp unitot (sajna nem emlékszem melyikben), ezután az internet palettán megjelennek a komponensek. -
BatemanX
tag
válasz
Terrorista
#493
üzenetére
FileName : string;
...
FileName := FileListbox1.Items[FileListbox1.ItemIndex]; -
BatemanX
tag
Na ja. A WndProc-cal való szembenállásom onnan eredeztethető, hogy ha nem vigyáz nagyon az ember, itt keletkezhetnek a legszebb Access Violation hibák (amik néha a fejlesztőkörnyezetet is hazavágják...ó hány órányi munkám veszett oda 1-2 alkalommal emiatt
) és az ide írt kódrészek szinte teljesen ''debugolhatatlanok''. (Próbáljon az ember egy olyan eljárásba flag-et helyezni, ami már akkor meghívódik, ha megmozdítja az egeret.)
Nekem a hook sokkal jobban bevált. -
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). -
BatemanX
tag
-
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
- Okos Otthon / Smart Home
- Adobe Lightroom topic
- A ZTE sem maradt adós csúcstelefonnal
- Xiaomi 15T Pro - a téma nincs lezárva
- Magga: PLEX: multimédia az egész lakásban
- Androidos tablet topic
- Azonnali alaplapos kérdések órája
- Kuponkunyeráló
- DUNE médialejátszók topicja
- Linux kezdőknek
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! I5 10500T / RTX 3050 / 32GB DDR4 / 512 SSD!
- DELL Universal Dock UD22
- HIBÁTLAN iPhone 15 Pro Max 256GB Natural Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3591
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA -Kártyafüggetlen, MS3613
- 123 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év garancia
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





