Zacinanie aplikacji.

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Zacinanie aplikacji.

Nowy postprzez mervinjmicky » środa, 10 lutego 2010, 10:42

Mam taki drobny problem. Napisałem prostą aplikacje, która pobiera pliki z serwera ftp i po każdym pobranym pliku wysyła zapytanie get oraz wyświetla wynik w TMemo. Pobieranie oraz zapytania get obrazuje na TProgresBar. Dodatkowo mam dodany komponent TIdAntiFreeze. Wszystko działa poprawnie tylko czasami gdy mam więcej plików np 10 to gdy chce przesunąć scrola w memo program robi się biały i dostaje w okienku windowsowy komunikat "brak odpowiedzi". Oczywiście program działa i po wykonaniu "odwiesza się" i pokazuję pełen raport w TMemo. Jest na to jakaś rada?
Avatar użytkownika
mervinjmicky
Bladawiec
Bladawiec
 
Posty: 9
Dołączył(a): środa, 27 stycznia 2010, 18:36
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Kubuntu 9.10
Kompilator: C++ Builder 6
Gadu Gadu: 0
    LinuxChrome

Re: Zacinanie aplikacji.

Nowy postprzez Cyfrowy Baron » środa, 10 lutego 2010, 10:48

Możesz dodać funkcję

Kod: Zaznacz cały
Application->ProcessMessages();


gdzieś w kodzie, gdzie dane są zapisywane w Memo.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zacinanie aplikacji.

Nowy postprzez mervinjmicky » środa, 10 lutego 2010, 10:57

Dodałem w onChange dla TMemo działa rewelacyjnie. Wielkie dzięki. ;]
Avatar użytkownika
mervinjmicky
Bladawiec
Bladawiec
 
Posty: 9
Dołączył(a): środa, 27 stycznia 2010, 18:36
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Kubuntu 9.10
Kompilator: C++ Builder 6
Gadu Gadu: 0
    LinuxChrome

Re: Zacinanie aplikacji.

Nowy postprzez Cyfrowy Baron » środa, 10 lutego 2010, 11:16

Umieszczanie tej funkcji w zdarzeniu OnChange nie jest dobrym pomysłem, jeżeli użytkownik ma możliwość pisania w tym obiekcie, gdyż takie nieustanne wywoływanie tej funkcji praktycznie uniemożliwi pisanie w Memo.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zacinanie aplikacji.

Nowy postprzez mervinjmicky » środa, 10 lutego 2010, 11:38

Cyfrowy Baron napisał(a):Umieszczanie tej funkcji w zdarzeniu OnChange nie jest dobrym pomysłem, jeżeli użytkownik ma możliwość pisania w tym obiekcie, gdyż takie nieustanne wywoływanie tej funkcji praktycznie uniemożliwi pisanie w Memo.

Użytkownik nie ma możliwości pisania w TMemo. Bynajmniej u mnie.
Avatar użytkownika
mervinjmicky
Bladawiec
Bladawiec
 
Posty: 9
Dołączył(a): środa, 27 stycznia 2010, 18:36
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Kubuntu 9.10
Kompilator: C++ Builder 6
Gadu Gadu: 0
    LinuxChrome

Re: Zacinanie aplikacji.

Nowy postprzez Darek_C++ » sobota, 13 lutego 2010, 10:52

Wszelkie operacje sieciowe jak żądania HTTP, FTP które mogą czekać na odpowiedź serwera powinny być wykonywane w osobnym wątku inaczej program ma tendencję do "zawieszania" się. Na szczęści W BCB obsługa wątków jest stosunkowo prosta...
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

Re: Zacinanie aplikacji.

Nowy postprzez Cyfrowy Baron » sobota, 13 lutego 2010, 20:01

Co do wątków, masz rację. Myślę jednak, że autorowi wątku chodziło o proste odświeżanie listy komunikatów w Memo, lub czegoś w tym rodzaju. W dalszej pracy nad aplikacja użycie wątków może okazać się jednak konieczne, więc może lepiej zacząć od razu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

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

cron