Zablokowanie komponentu MainMenu TMenu

0

Witam!

Temat ten częściowo przewijał się przez forum, ale niestety muszę założyć własny.

Problem brzmi:
Mam przycisk, po kliknięciu w który wykonywane są w pętli obliczenia, trwa to długo. Ponieważ chcę żeby okno się odświeżało i żeby wyświetlać postęp na Gauge to używam w pętli Application.procesmesages.
Podczas obliczeń zablokowałem, wszystkie przyciski, groupboxy, toollbary, przełączanie się po zakładkach, ale nie mogę wyłączyć Menu!

Owszem, piszecie w innych tematach, że trzeba każdą opcję z osobna zrobić Enable := False. Ale tak czy siak będzie wciąż możliwe kliknąć na Menu Plik (szare, nieaktywne) i wtedy jestem jakby w menu, chociaż ono nie działa, nie rozwinie się, nie wykona akcji. Problem polega na tym, że w tym właśnie momencie przestaje działać moja pętla obliczeniowa For. Dalsze obliczenia wznawiane są gdy kliknę na inny komponent (wyjdę z menu o zablokowanych wszystkich opcjach).

Dla mnie to jest bez sensu taka pauza. Próbowałem przejrzeć zdarzenia, menu, fromatki i poszczeszególnych elementów menu, zakryć je labelem, panelem, czymkolwiek, ale nie da się, nie umiem.

Proszę o pomoc i przedstawienie raz na zawsze działającego sposobu, żeby kliknięcie na Menu nie powodowało absolutnie nic, tak jakby tego menu tam nie było :]. Oczywiście musi to być uzależnione od jakiejś zmiennej, żeby dało się następnie przywrócić normalną pracę Menu.

Proszę bardzo o pomoc.

0
  1. wątki
  2. aby zablokować okno modalne z info 'proszę czekać'
0

ja czasem robie tak

begin
  MojFormularz.menu := nil;
  {tu obliczenia}
  MojFormularz.menu := MainMenu1;
end;

Rozwiazanie oczywiscie nie pozbawione wad...
na czas obliczen zmienia Ci sie wyglad formularza - bo znika menu.

0

Proszę o przykład rozwiązania, bo nie umiem tego zrobić na wątkach.

Nie widziałem, że Microsoft i Borland wyprodukowali takie badziewie, że żeby menu zablokować to muszę wątków używać. Ci informatycy, którzy to wymyślili to kompletni nieudacznicy, już nie pierwszy raz spotykam się z czymś takim.

Co do drugiej odpowiedzi, to znikające menu mnie nie interesuje, widziałeś coś takiego w jakimś programie?
Zresztą znikające menu umiałem zrobić, bo to jest banalne.

Może będę ręcznie komendami odmalowywał okno programu zamiast Application.procesmessages albo zrobię dodatkowe okno ShowModal z paskiem postępu.

Teraz wiem, dlaczego ten temat się ciągle pojawia i dlaczego będzie się dalej pojawiał. Bo rozwiązania problemu nie ma, a jak jest, to wiara rzuca hasło i tyle, i nadal nikt nic nie wie.

0
MS_250 napisał(a)

Proszę o przykład rozwiązania, bo nie umiem tego zrobić na wątkach.
godzina mojej pracy kosztuje 30zł - reflektujesz :>

Nie widziałem, że Microsoft i Borland wyprodukowali takie badziewie, że żeby menu zablokować to muszę wątków używać. Ci informatycy, którzy to wymyślili to kompletni nieudacznicy, już nie pierwszy raz spotykam się z czymś takim.
lepiej już nic nie pisz bo to to tylko śmiech wywołuje. Mam dla ciebie dobrą radę - <font size="4">programowanie - nie dla idiotów</span>

Może będę ręcznie komendami odmalowywał okno programu zamiast Application.procesmessages albo zrobię dodatkowe okno ShowModal z paskiem postępu.
powodzenia

Teraz wiem, dlaczego ten temat się ciągle pojawia i dlaczego będzie się dalej pojawiał. Bo rozwiązania problemu nie ma, a jak jest, to wiara rzuca hasło i tyle, i nadal nikt nic nie wie.
a który to jest 'ten temat' bo jeśli chodzi ci o tematy, gdzie po szumnym dajcie wskazówkę potem jest zróbcie za mnie to rzeczywiście masz rację - jest ich pełno a jeleni jak na lekarstwo ...

0

'ten temat' - miałem na myśli, to, że na tym forum pytanie o zablokowanie menu (różne odmiany) pojawiło się wiele razy.

Masz rację, trzeba być idiotą, żeby tak skomplikować możliwość zablokowania komponentu. Zgadzam się z Tobą w zupełności.

Nie trać czasu na ten temat, bo godzina minie i będziesz 30 zł w plecy.

0

Nie widziałem, że Microsoft i Borland wyprodukowali takie badziewie, że żeby menu zablokować to muszę wątków używać. Ci informatycy, którzy to wymyślili to kompletni nieudacznicy, już nie pierwszy raz spotykam się z czymś takim.

Zaiste, perełka. Prosimy o więcej.

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