![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
pagecontrol и tabcontrol посоветуйте
clix © (2013-05-04 21:09:00)задача создать чтото типа браузера с вкладками где на каждой вкладке будет выполняться свой запрос idhttp(свой для каждой вкладки), делаю парсинг данных по мере поступления. количество вкладок заранее неизвестно и при переключениях между вкладками запрос продолжает выполняться. тоесть собираюсь создавать и удалять вкладки динамически. на всех вкладках будут одни и теже компоненты, тоесть идентичные вкладки только разные запросы.
незнаю что выбрать, может есть какие др компоненты?
clix (2013-05-05 13:15:00) [1]на счет костыля я знаю) идеально в потоках делать каждый запрос.
на данном этапе разрабоики костыль немешает, в дальнейшем в потоках реализую.
на данный момент нужно создание вкладок для работы с разными запросами и одновременное их выполнение, куки одни на всех.
DVM (2013-05-05 12:51:00) [2]
> clix © (05.05.13 12:38) [11]
> ну и антифриз на форме.
Антифриз это костыль, для быстрого построения приложения на компонентной основе, но он не панацея, все равно есть шанс заблокировать интерфейс на длительное время.
clix (2013-05-05 12:38:00) [3]класс это конечно хорошо, у меня все в основном потоке сейчас, смысла в отдельных потоках невижу, парсинг делаю в onwork по мере поступления данных и вывожу в ри чедит. ну и антифриз на форме.
clickmaker (2013-05-05 12:29:00) [4]лучше оформить запросную часть в виде отдельного класса, типа THttpQuery, где и будут создаваться потоки для IdHttp
clix (2013-05-05 12:21:00) [5]
> DVM
спасибо за совет, постараюсь оформить парсинг и события компонентов которые находятся во фрейме в виде функций.
DVM (2013-05-05 11:37:00) [6]
> clix © (05.05.13 09:44) [7]
> тоесть в контейнере просто интерфейс будет?
Я бы так сделал. Идеально вообще сделать отдельным классом-компонентом, одним из свойств которого будет источник данных. Или наоборот у источника данных сделать свойство типа Display (как у TMediaPlayer например). Надо просто сесть и хорошо подумать. Кидание на панели и фреймы компонентов TIDHTTP - это стандартный подход предлагаемый средой быстрой разработки, но он в данном случае неудобен потом окажется.
clix (2013-05-05 09:44:00) [7]
> Лучше отделить представление (вкладки и вообще интерфейс)
> от данных (загрузка парсинг и т.д.)
тоесть в контейнере просто интерфейс будет? а парсинг и тд как процедуру или. функцию оформить?
DVM (2013-05-05 00:36:00) [8]
> clix © (04.05.13 21:09)
Вступаете на порочный путь смешивания контроллера, модели, представления в одну кучу. Лучше отделить представление (вкладки и вообще интерфейс) от данных (загрузка парсинг и т.д.). Иначе потом проблем будет много.
Особенно учитывая, что TIDHTTP блокирующий, то вызов его методов придется производить в доп потоке иначе ни о какой одновременности и параллельности не может быть и речи.
Кстати, во, вместо pagecontrol и tabcontrol рекомендую:
https://code.google.com/p/delphi-chrome-tabs/
clickmaker (2013-05-04 23:14:00) [9]> вкдадки будут работать независимо друг от друга?
ну да, экземпляры-то разные. Параметры запроса можно оформить как свойства этого фрейма
clix (2013-05-04 23:12:00) [10]тоесть как я понял добавлю фрейм на несколько вкладок (весь функционал компонентов уже реализован) и вкдадки будут работать независимо друг от друга? тупо сделать мою программу фреймом и добавлять в новые вкладки и из вкладок делать разные запросы?
clickmaker (2013-05-04 22:50:00) [11]ну вот и создай фрейм с этими компонентами, а потом просто создавай его экземпляры на динамически добавленных табшитах
clix (2013-05-04 22:41:00) [12]я имел ввиду на вкладках будет одинаковый набор компонент ричедит, две кнопки и эдит, и для каждой вкладки придется делать свои компоненты и idhttp свой тк запросы разные
clickmaker (2013-05-04 22:23:00) [13]> на всех вкладках будут одни и теже компоненты
оформи содержимое вкладки в виде фрейма (или компонента), потом динамически создавай TabSheet с этим фреймом