Nieprawidłowe dojście okna

0

Witam. Post był w 2002 roku - coś podobnego na ten temat ale nie ma konkretnej odpowiedzi co z tym zrobić. A więc mamy program i dwa wątki. Jeden wątek standardowy formy i jeden przeze mnie tworzony. W wątku ktory tworzę odwołuję się do ListView - Form1.ListView1.Items.Add("jakis text") - pisze z pamieci ale chyba taka jest składnia. Jest ok. - text się doda do ListView. Ale gdy zamiast do ListView napisze do Memo1 to niestety aplikacja się zawiesza i dostaję error 1400 "Nieprawidłowe dojście okna" . Czy ktoś może na to poradzić. <ort>przecieŻ </ort><ort>NIE MA </ort>róznicy zbytniej między Memo a ListView to i to są komponentami VCL jednak jedno sprawia problem.
Pozdrawiam.

0

synchronize jest :>

0

Form1.Memo1.Lines.Add

0

Dobra może to się komuś przyda a więc:
Mamy zabroniony dostęp do komponentów VCL z poziomu wątku pobocznego jednak nie zawsze jak sprawdziłam. w jednym przypadku jest ok a w drugim mamy error nieprawidłowe doście okna. Ktoś mówił że wyślij do okna komunikat Sendmessage lub PostMessage a to gu...no prawda też nie działa. Jest jeszcze synchronizacja ale nad tym trzeba sporo posiedzieć. Sposób trochę prymitywny ale działa. A więc jeśli w wątku mamy Memo1.lines.add lub co kolwiek z VCL to tworzymy zmienna globalną i jej przypisujemy wartość. Wrzycamy Timera na forme i jego na Disabled a interwał na 1ms. nastepnie w timerze przypisujemy wartość memo ze zmiennej globalnej i dajemy też timer na disabled. W takim przypadku mamy to że timer sam tworzy osobny wątek a jak wiemy jest on komponentem VCL więc nie stwarza żadnych problemow.

0

agnieszka gdybyś coś o wielowątkowości w Delphi poczytała to byś nie pisała takich głupot. Synchronizacja (czy to przez mechanizm wbudowany w delphi - synchronize czy też przez mutexy lub sekcje krytyczne) to rzecz normalna jeśli chcesz się z wątku dobrać do obiektów innego wątku, które nie są threedsafe. Twój sposób z timerem jest śmieszny - zrób to po normalnemu i użyj synchronize jak panowie z borlanda przykazali jak Ci się nie chce w mutexy czy sekcje krytyczne bawić

0

Jak bym miała przykład z mutexami czy synchronize w C++Builderze to bym i tak zrobiła. Ale widzisz to co napisałam - mój sposób to każdy zrobi (czy to w Delphi czy w Builderze) a ty zamiast wczesniej coś poradzić jakiś kawałek kodu wkleić - nic- inni też umieją tylko mówić.

0

jaki kawałek kodu?? Miałem się domyślać co tam masz?? Zadałem Ci bardzo proste pytanie - wystarczyło odpowiedzieć tak lub nie to by przynajmniej było wiadomo gdzie szukać błędu - odpowiedziałaś :>

Nastepnym razem jak będziesz o coś pytać to albo rób to konkretnie albo odpowiadaj na pytania, które prowadzą do rozwiązania problemu ...

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