- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sziku69: Szólánc.
- btz: Internet fejlesztés országosan!
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- weiss: Logi MX Master 3S FW NEM frissítés
- bambano: Bambanő háza tája
Hirdetés
Új hozzászólás Aktív témák
-
vz12
tag
válasz
Tomi_78 #2128 üzenetére
"Focus is the ability to receive user input through the mouse or keyboard. Only the object that has the focus can receive a keyboard event. Also, only one component per form can be active, or have the focus, in a running application at any given time.
Some components, such as TImage, TPaintBox, TPanel and TLabel cannot receive focus. In general, components derived from TGraphicControl are unable to receive focus. Additionally, components that are invisible at run time (TTimer) cannot receive focus."
-----------------
Itt van még valami:
To trap keystrokes at the form level instead of passing them to the form's components, set the form's KeyPreview property to True (using the Object Inspector). The component still sees the event, but the form has an opportunity to handle it first - to allow or disallow some keys to be pressed, for example.Magát a formot közvetlenül NEM bill. inputra tervezték (az a rátehető objektumok egy részének a feladata), de eseménykezelője van, a form csak úgy figyel a háttérben.
Ha a formon beállítod a "KeyPreview=true"-t, akkor ELSŐDLEGESEN (központosítva) a form eseménykezelője dolgozza fel a bill. eseményeket, pl. a keydown-t is, MAJD AZUTÁN annak az objektumnak (pl. gombnak) a pl. keydown-ja is lefut, ahonnan a bill. lenyomás érkezett. A sorrend fontos, a form eseményben trükközni is lehet, mielőtt az objektum feldolgozná a bill. nyomást.
Ha a "KeyPreview=false", akkor a form bill. kezelő eseményei hatástalanok (ez történt nálad is, mert a "false" az alapértelmezett). Ilyenkor az általam írt "központosítás", mint módszer/trükk használható, tehát a formon lévő OBJEKTUM eseménykezelője kapja el a bill. nyomást (mert a formé nem fogja), de a form eseménykezelője hajtra végre. Ez jó akkor, ha pl. nem akarod, hogy minden objektum esetén végrehajtódjon a "központi" kód, csak azoknál amelyeknél beállítod, illetve nem akarsz többszörösen (redundánsan) kódolni.
A gyakorlatban: (a kilepgomb.OnKeyDown ki van kommentelve)
form1.KeyPreview:=true;
kilepgomb:=TButton.Create(form1);
kilepgomb.Parent:=form1;
kilepgomb.Top:=2;
kilepgomb.Left:=2;
kilepgomb.Caption:='Esc';
// kilepgomb.OnKeyDown:=@FormKeyDown;
kilepgomb.OnClick:=@kilepgombkatt;
Új hozzászólás Aktív témák
Hirdetés
- Autós topik
- Kerékpárosok, bringások ide!
- Hardcore pizza és kenyér topik
- Steam Deck
- Fejhallgató erősítő és DAC topik
- Kormányok / autós szimulátorok topikja
- Szünetmentes tápegységek (UPS)
- Nők, nőügyek (18+)
- WoW avagy World of Warcraft -=MMORPG=-
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- További aktív témák...
- Samsung Galaxy A21s 32GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo IdeaPad 3 17ITL6 - 17.3" HD+ Intel 6305 - 8GB - 256GB SSD - Win11 - MAGYAR
- BESZÁMÍTÁS! Asus B360M i7 9700 16GB DDR4 512GB SSD RX 6650 XT 8GB ZALMAN N4 600W
- HIBÁTLAN iPhone 14 Pro Max 256GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3147
- Samsung Galaxy Book2 NP750XED i7-1255U 16GB 512GB GARANCIA: 1 ÉV
Állásajánlatok
Cég: FOTC
Város: Budapest