Dynamiczne tworzenie obiektów w wątku

dział ogólny

Dynamiczne tworzenie obiektów w wątku

Nowy postprzez mate006 » piątek, 20 czerwca 2014, 12:19

Witam serdecznie,

Od kilku dni męczę się z problemem dynamicznego tworzenia obiektów na formularzu w wątku, jednak wyświetla mi się ciągle komunikat

Nieprawidłowe dojście okna



a mianowicie chce by po zmianie kategorii tworzyło obiekt groupbox a na nim w zależności od wybranej kategorii ustawiało obiekt label, edit, checkbox lub inne, jednak podczas dynamicznego tworzenia obiektu groupbox, nie pojawia się on ani inne obiekty. W jaki sposób mogę to uczynić.

Prosiłbym o podpowiedź
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Chrome

Re: Dynamiczne tworzenie obiektów w wątku

Nowy postprzez polymorphism » piątek, 20 czerwca 2014, 14:26

A dlaczego tworzysz okna/kontrolki w wątkach? Sprawa jest taka, że okna, a dokładniej ich obsługa, należą do wątka, w którym zostały stworzone. Czyli pewne komunikaty będą wysyłane do pętli komunikatów w rzeczonym wątku. Problem w tym, że tam - jak mniemam - nie ma żadnej pętli ;)

Tworzenie kontrolek/okien oddeleguj do wątka głównego, w przypadku klasy TThread - użyj metody Synchronize (oczywiście warto się zastanowić, czy przy takim rozwiązaniu użycie wątka ma jeszcze jakiś sens).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Dynamiczne tworzenie obiektów w wątku

Nowy postprzez mate006 » sobota, 21 czerwca 2014, 18:03

Zdecydowanie ma sens, gdyż nie wiem jaki komponent będzie mi potrzebny, wszystko zależy od kategorii, np. jedna będzie miała tylko TEdit, inna będzie miała 2 TEdit i TComboBox, inna CheckBox i Tedit a inna jeszcze co innego, dlatego potrzebuje tworzyć je w wątku by nie zawieszać programu.
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Chrome

Re: Dynamiczne tworzenie obiektów w wątku

Nowy postprzez Darek_C++ » poniedziałek, 23 czerwca 2014, 18:39

mate006 napisał(a):dlatego potrzebuje tworzyć je w wątku by nie zawieszać programu.
Na pewno coś masz nie tak z logiką tej aplikacji. Potrzebne komponenty powinieneś utworzyć przed wywołaniem roboczego watka i do niego przekazać jako wskaźniki i ewentualnie w metodzie Synchronize() wyświetlać aktualizować ich dane, co tworzy wizualny interfejs programu i user widzi, że "program działa".
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 36 gości

cron