[bcb] Tworznie pochodnych formularza

0

Witam
Próbuje sobie stworzyć komunikator sieciowy, napisałem już swoją klasę dzięki której loguje sie, odbieram, wysyłam wiadomosci, zmieniam stan... itd. Wszystko <ort>elegandzko </ort>działa ale napotkałem na spory problem mianowicie chodzi o tworzenie egzemplarzy formularza (klasy) czatu, ustawiłem sobie że przy odbiorze wiadomości dynamicznie tworzę formularz i tam juz np w memo1 wpisywane są treści. Problem w tym że po takim utworzeniu cała aplikacja się zawiesza z <ort>nie wiadomych</ort> mi powodów. Czy ktoś wie jak rozwiązać ten problem, albo ma pomysł jak inaczej mozna tworzyć okna czatu których liczba jest nie znana i do których później można by było się odwoływać ?? Z góry dzięki za Odp.

0

"Kupiłem sobie czerwone auto, ale nie jeździ, nie wiecie dlaczego ?"

A tak na poważnie napisz coś więcej, kiedy się zawiesza, użyj debugera ... W dynamicznym tworzeniu formularzy nie ma nic złego, a my nie jesteśmy jasnowidzami.

0

Bo to nie jest tak prosto wytłumaczyć...
No więc tak mam wątek a w nim pętle odbierającą wiadomości, w przypadku gdy nadejdzie nowa wiadomość ma zostać utworzony klon formularza rozmowy. Problem polega na tym że w ten sposób aplikacja się wiesza, moge oczywiście zrobić tak

 TForm5 *MyForm = new TForm5(Application);
MyForm->ShowModal();
MyForm->Memo1->Lines->Add(message);
Application->ProcessMessages();

ale nie widać wtedy żadnych wypisywanych wiadomości, natomiast taki kod

 TForm5 *MyForm = new TForm5(Application);
MyForm->Show();
MyForm->Memo1->Lines->Add(message);

zawiesza całą aplikację ...

0

A który wątek tworzy okna ? Nie jestem pewein, ale podobno vcl jest słabo przystosowany do wielowątkowości i prawdopodobnie wszystkie okna powinny być tworzone w tym samym wątku.

0
adf88 napisał(a)

[...] i prawdopodobnie wszystkie okna powinny być tworzone w tym samym wątku.

W tym samym GŁÓWNYM wątku ;)

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