Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Вниз

Возврат результата   Найти похожие ветки 

 
Piter   (2004-02-04 00:42) [0]

Существует форма, при нажатии на кнопку она должна загрузить в свой ListBox некие данные из интернета.

Существует экземпляр класса TSock. У него есть метод, который инициализирует запрос данных из интернета. Для этого создается новый поток в котором происходит соединение по TCP/IP с нужным хостом, запрос данных и их получение.

Вопрос - каким образом вернуть данные в форму?

Я предпологаю сделать так. Когда форма вызывает метод TMySock для загрузки данных, она передает указатель на свой метод, который нужно вызвать когда данные будут получены.
То есть, поток, созданный TSock отработает и передаст результат, вызвав метод формы.
Я правильно думаю, это оптимальный способ?

Но есть проблема - ко времени получения данных формы уже может не существовать. Как это определить?


 
Rouse_   (2004-02-04 01:00) [1]

Запускаем в отдельном потоке. Поток должен отвечать за обновление, и также проверять наличие формы... Желательно проверять в процессе получения, ибо если наличие формы критично - нужно терминировать поток, ибо траффик...


 
Piter   (2004-02-04 01:07) [2]

Rouse_ © (04.02.04 01:00) [1]

хм, по-моему ты не понял

Запускаем в отдельном потоке

ежу понятно, я ведь так и написал
>Для этого создается новый поток в котором происходит соединение по TCP/IP...

и также проверять наличие формы

блин, Rouse - тебе точно спать пора :) Вторичный вопрос в том и был - каким образом проверять наличие формы?


 
Кщд   (2004-02-04 06:01) [3]

Assigned


 
Piter   (2004-02-04 13:56) [4]

Кщд (04.02.04 06:01) [3]
чего Assigned? Ссылка на экземпляр формы, конечно, не будет nil, с чего бы это...


 
alex_***   (2004-02-04 14:11) [5]

Если форма может задать свой обработчик, то она может его и обнулить на своем destroy


 
Piter   (2004-02-04 14:38) [6]

Ничего не понимаю. Причем здесь обработчик? Форма ПЕРЕДАЕТ указатель на свой метод! И она уже не может его изменить никак.
А ко времени вызова этого метода формы может не существовать, значит и указатель на метод недействителен.


 
VAleksey   (2004-02-04 14:51) [7]


> А ко времени вызова этого метода формы может не существовать,
> значит и указатель на метод недействителен.

Это почему еще?


 
AKul   (2004-02-04 14:54) [8]


> Piter © (04.02.04 14:38) [6]
> значит и указатель на метод недействителен.


Почему? Указатель на метод объекта будет действителен, а вот указатель на сам объект - нет.

Ты же писал:

> Когда форма вызывает метод TMySock для загрузки данных,
> она передает указатель на свой метод, который нужно вызвать
> когда данные будут получены.

Вот в OnDestroy формы и пропиши отмену вызова этого метода, например, вызвав для этого специальный метод TMySock, или установив где-нибудь какой-нибудь флаг и т.д.


 
alex_***   (2004-02-04 14:56) [9]

а если указатель на метод вынести из параметров метода у TSock и сделать поле в public?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.019 c
1-38885
Senti
2004-02-04 17:44
2004.02.13
В чем трабла с ListItems не пойму.........


1-38863
TUser
2004-02-02 09:37
2004.02.13
Электронная подписть


1-38865
Фдуч
2004-02-01 13:51
2004.02.13
как узнать номер текущего mdichild


1-38934
-=Dev-null=-
2004-02-04 10:22
2004.02.13
Как встроить manifest в ресурсы проги ?


4-39135
GUNski
2003-12-09 20:51
2004.02.13
Как в MDI-форме получить message при создании MDI-Child-окна?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский