Zamro?żony program

0

Jak zrobić, aby na czas wykonywania jakiejś procedury (bardziej złożonej), zamrozić okno programu tzn. aby wszystkie obiekty znajdujące się na formie, nie reagowały na kliknięcia?

0

Spróbuj na początku wykonywania procedury:

[code]Form.Enabled:=False[/code]

a po jej wykonaniu

[code]Form.Enabled:=True;[/code]

[browar]

Pozdrawiam

0

przecież to jest standardowa sytuacja - jeśli nie stosujesz wielowątkowości ani application.processmessages, to na czas wykonywania kodu formatka "zdycha".

0

ale jak coś naciskasz mimowoli i tak po wykonaniu procedury moze sie wywołąćobsługa do danego zdarzenia.

0

Właściwość Enabled to niezbyt dobre rozwiązanie, gdyż blokuje cały program, łącznie z paskiem systemowym, co uniemożliwia przesuwanie formy/minimalizację.
Może macie jakieś inne pomysły??

0

wszystkie komponenty dać na TPanel a potem dawać do pętli w procedurze Application.proccessMessages i na początku napisać Panel1.Enabled:=false a po wykonaiu Panel1.Enabled:=true;
wtedy powinno dać się przesuwać formę itd. a nie będzie dało się nic robić na formie.

0
procedure TForm1.zablokuj;
var
  q: Integer;
begin
  for q := 0 to Form1.ComponentCount -1 do
    if Form1.Components[q] is TControl then
      (Form1.Components[q] as TControl).Enabled := not (Form1.Components[q] as TControl).Enabled;
end;

na poczatku zablokuj i na koncu zablokuj ... :-8

0

ok. Dzięki.

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