Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.13;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
14-39031
Думкин
2004-01-26 06:29
2004.02.13
С днем рождения! 26 января.


3-38728
eugie
2004-01-21 16:46
2004.02.13
Гранты, TIBDataSet и его Prepare


1-38806
Sour
2004-02-03 11:08
2004.02.13
Как получить все сочетания символов


4-39131
ALEIIIKA
2003-12-10 10:32
2004.02.13
Чтобы CD-ROM не открывался по нажатию кнопки на нем?


4-39132
Kair
2003-12-10 07:25
2004.02.13
Рисование рисунка на окне программы