Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[delphi] enable dla wszystkich obiektów na TPanel

prokopcio 10 Kwi 2018 11:19 216 9
  • #1 10 Kwi 2018 11:19
    prokopcio
    Poziom 29  

    Witam.
    Mam na TPanel wiele różnych obiektów / edit, checkbox, combobox, etc... , w jaki sposób zrobić wszystkie nieaktywne? Jak robię nieaktywny panel to w sumie nie da się zmienić zawartości kontrolek ale wyglądają jak aktywne / w sumie ich parametr enable nadal jest aktywny więc pewnie dlatego. Ja chciałbym, żeby użytkownik widział że są nieaktywne.

    0 9
  • Pomocny post
    #2 10 Kwi 2018 11:32
    JacekCz
    Poziom 35  

    Pętla po wszystkich elementach z Controls

    0
  • #3 10 Kwi 2018 11:52
    prokopcio
    Poziom 29  

    Wiem że jakoś się da :) tylko nie wiem jak tzn potrafię pętlę zrobić po editach, comboboxach etc ale nie po wszystkim razem co się znajduje na Panel1 powiedzmy.

    0
  • #4 10 Kwi 2018 12:01
    JacekCz
    Poziom 35  

    prokopcio napisał:
    Wiem że jakoś się da :) tylko nie wiem jak tzn potrafię pętlę zrobić po editach, comboboxach etc ale nie po wszystkim razem co się znajduje na Panel1 powiedzmy.


    to pokaż, co masz na myśli, dla mnie to co piszesz jest ... ciekawe.
    Zwłaszcza że przedstawiałeś się jako weteran Delphi

    0
  • #5 10 Kwi 2018 13:22
    prokopcio
    Poziom 29  

    Nie czuję się weteranem Delphi, korzystam, ale jestem słaby...

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0
  • #6 10 Kwi 2018 13:41
    JacekCz
    Poziom 35  

    No to masz:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0
  • #7 10 Kwi 2018 15:57
    prokopcio
    Poziom 29  

    ale jak sprawdzić czy jest na panelu ?

    0
  • Pomocny post
    #8 10 Kwi 2018 16:25
    JacekCz
    Poziom 35  

    prokopcio napisał:
    ale jak sprawdzić czy jest na panelu ?


    A ten swój fragment rozumiesz? Albo "swój" ... bo mój jest w kontekście twojego / "twojego"...
    Klawisz Ctrl-F1 Ci się zaciął? W praktyce taki sam fragment jest w helpie.
    Zdziwiony jestem, że można cokolwiek GUI wyklikać nie spotykając się z koncepcją Parent / Child.

    0
  • Pomocny post
    #9 10 Kwi 2018 17:36
    Dżyszla
    Poziom 42  

    @prokopcio - własność controls wskazuje na wszystkie kontrolki (TControl), których parentem jest właśnie dany obiekt. Czyli Panel1.Controls zawiera tablicę umieszczonych kontrolek bezpośrednio na Panel1.
    Pamiętaj, że jeśli tam są zagnieżdżenia (np. na tym panelu będzie kolejny, w którym też chcesz zmieniać) to trzeba rekurencyjnie wywołać. Ponadto, jeśli zależy Ci na typach - możesz zawsze sprawdzać też operatorem is (bo nie dla wszystkich kontrolek ich wyłączenie da efekty, jakich się oczekuje, np. nie jest dobrze wyłączać scrollboxów czy paneli).

    @JacekCz - porównanie Components i Controls bywa dla początkujących mylące, bo Components znajdują się w kontekście formy (przynajmniej te umieszczone na etapie projektowania), natomiast Controls jest już w pełni drzewiaste. Więc nie dziwię się, że ktoś nie wychwytuje różnicy od razu.

    0
  • #10 11 Kwi 2018 09:39
    prokopcio
    Poziom 29  

    Dziękuję Wam bardzo - teraz dopiero rozumiem :), co jeszcze nie znaczy, że sobie poradzę... wieczorkiem sprawdzę.

    0