Zablokowanie kombinacji klawiszy

0

Szukałem wszędzie w internecie i nie mogłem znaleźć rozwiązania.

Mój problem:

Jak zrobić żeby formy nie dało się w jakikolwiek sposób zamknąć ?

Usunąłem z formy SystemMenu, Minimize, Maximize, Help...

Formę da się niestety zamknąć np. za pomocą kombinacji klawiszy ALT-F4. Czy ktoś wie jak temu zapobiec ?

Z góry serdecznie dziękuję.
Pozdrawiam.
Łukasz.

0

a to W jaki sposób uniemożliwić zamknięcie programu ?? w formie OnCloseQuery daj CanClose := False; ... jeszcze tez warto ukryc z ctr alt del
application.title := '';

0

Dziękuję :) Jeszcze jedno pytanie:

A da się coś takiego zrobić:

user image

Pzdr.
Łukasz.

0

Application.Terminate chyba zawsze działa :)

0

Kombinowałem różnie z Application.Terminate : wkładałem go i do OnClose i OnCloseQuery.

Dokładnie chodzi mi o to:

Po kliknięciu w któryś zaznaczony elipsą przycisk mam procedurę zamykającą tą formę (form5.close;) i automatycznie uruchamia się pierwsza forma (Form1). W zasadzie miał być to splashscreen, ale go przerobiłem na formularz z darmową rejestracją...

Chce, żeby za pomocą tych dwóch zaznaczonych przycisków można było zamknąć tą formę (Form5), ale nie chce, żeby się zamykała w żaden jakikolwiek sposób.

Pzdr.
Łukasz.

0

Prosta sprawa, w sekcji private deklarujesz zmienną Bool:

private
FCanClose: Boolean;
public

i następnie przy tworzeniu formy przypisujesz jej wartość 0,
a pod przyciskiem (przyciskami ...) zmieniasz jej wartość na 1.
Jeszcze tylko przy zamykaniu formy sprawdzasz stan zmiennej jeśli jest 1 to można zamknąć formę.

procedure TForm1.FormCreate(Sender: TObject);
begin
FCanClose := False;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if not FCanClose then Action := caNone;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FCanClose := True;
Close;
end;
</b>

0

to może nie zamykaj a ukrywaj? dla użytkownika i tak będzie tak samo wyglądać ;)

0

Następny problem: Zrobiłem tak jak napisał użytkownik Dixie wyskakuje coś takiego przy kompilacji:

user image

Co robić ?

Pzdr.
Łukasz.

0

Już wiem :)

Użytkownik Dixie żle napisał jedną rzecz. Instrukcję:

FCanClose: Boolean;

trzeba wsadzić do instrukcji VAR, ale nie do private :)

0

Dobrze napisałem, tylko ty źle zrobiłeś. Zmienne należy deklarować przed procedurami a nie odwrotnie.

private FCanClose: Boolean; procedure ProcessRights; public

end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1