Форум: "Основная";
Текущий архив: 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