Jak zablokować zamknięcie formy poprzez Alt-F4?
Nie wiem czy to bedzie jakaś różnica ale pracuję w NT (XP)
[stuk]
Jak zablokować zamknięcie formy poprzez Alt-F4?
Nie wiem czy to bedzie jakaś różnica ale pracuję w NT (XP)
[stuk]
FAQ!
OnCloseQuery
CanClose ustaw na False
Dzięki ale nie o to mi chodziło
Znalazłem to juz wcześniej w FAQ.
Tylko że to rozwiązanie jest pomyślane w ten sposób aby w ogóle nie można było zamknąć okna, a ja chcę aby to było zablokowane tylko przez Alt-F4.
Np. jak masz w oknie logowania.
Po podaniu logina i hasła okno zostanie zamknięte. Ale trzeba się zabezpieczyć aby nikt nie wszedł do programu klikając przez Alt-F4.
O coś takiego mi chodzi.
[stuk]
Ustawiaj sobie jakąś zmienną globalną. Jeżeli klikniesz OK to wtedy ustawiasz ją na True i później w OnCloseQuery CanClose:=Zmienna;
Patrz no!!!
Takie proste rozwiązanie a nie pomyślałem o nim.
A czy wie ktoś może czy idzie przechwycić skrót Alt-F4 w zdarzeniu OnKeyPress formy? I co by wtedy dać?
Wiem że po nacisnięciu Alt-F4 są generowane dwa znaki.
Pierwszy jest znakiem pustym (#0) a drugi to #107.
Co tam by wpisać trzeba aby przechwycić i zablokować?
[cya]
Action:=nil; <<?
Application.Run; <<?
Sorry nie mam Delphi przy sobie ;)
Niestety ale Action := nil nie działa.
A z tą aplikation.run to nie za bardzo jarzę?
[stuk]
albo wstaw TActionMenager i utwórz nową akcję w skrócie klawiszowym Alt+F4, akcja:
Action:=nil;
albo
Application.Run;
mam nadzieję, że wiesz o co mi chodzi... ;)
Teraz jarzę.
Spoko
Wielkie dzięki wszystkim
[hurra] [cya]
A nie prościej zrobić w onkeydown:
if key=VK_F4 then
key:=0;
:)
Robisz to tak: na stronie forum jest duzy przycisk SZUKAJ. Naciskasz, wpisujesz w okienko 'Alt+F4'. I co? wyskakuja 3 posty, kazdy na ten temat. Rozwiazanie zaproponowane przeze mnie (troche lepsze niz to thenklesa) to:
Ustaw KeyPreview formy na True i daj w OnKeyDown:
if (Key=VK_F4) and (ssAlt in Shift) then Key:=0;
I pochodzi z watku:
http://www.4programmers.net/forum/viewtopic.php?id=10516
ja jak blokuje alt+F4 zeby nikt nie wyłączył formy wale ostro i blokuje wszystkie skróty klawiaturowe masz kodzik jak zablokowac:
SystemParametersInfo(97,Word(False),@l,0); potem dalesz na true jak chcesz aby działały te skróty !!!! [diabel]
Dzięki wielkie Adamie.
To prawdopodobnie nie raz mi się przyda :-)
[browar] [cya]
ja jak blokuje alt+F4 zeby nikt nie wyłączył formy wale ostro i blokuje wszystkie skróty klawiaturowe masz kodzik jak zablokowac:
SystemParametersInfo(97,Word(False),@l,0); potem dalesz na true jak chcesz aby działały te skróty !!!! [diabel]
Tylko niestety nie działa to na systemach opartych na technologii NT.
Szkoda bo w tym momencie już odpada wykorzystanie tego kodu na większą skalę jeśli nie jesteś pewien czy program będzie wykorzystywany na nt czy nie.
;-|
Tylko niestety nie działa to na systemach opartych na technologii NT.
Na NT trzeba użyć Hook niskiego poziomu na klawiaturę. Już o tym kiedyś pisałem przy problemie z klawiszami windowsa.