|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.03.2009, 12:52 | #1 |
Пользователь
Регистрация: 11.05.2008
Сообщений: 62
|
Т.к. один вопрос одна тема:
Есть некое подобие многостраничного InternetExplorer'a Вкладки создаются динамически и записываются в массив как TabSheet[i] Внутри каждой вкладки создается WebBrowser так же записывается как WebBrowser[i] В процессе выполнения нужно удалить вкладку Код на удаление: Код:
Если во время удаления какаято вкладка загружалась, то вылетает ошибка, т.е. как я понимаю программа пытается загрузить страницу в уже удаленный (или передвинутый) элемент массива WebBrowser[i] Заблокировать выполнение программы до полной загрузки всех страниц не получается, да и нерационально, т.к. можно подвесить программу на долго. Проблема 2: Если я уже удалял вкладку 4(к примеру), а потом создал еще 10 вкладок, то удаляя снова 4ю получаю ошибку. Посоветуйте как удалить красиво вкладку без тормозов и ошибок? У меня PAgeControl. Последний раз редактировалось Stilet; 17.03.2009 в 13:14. |
17.03.2009, 13:18 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну при удалении останавливай ВебБраузер и делайему а потом и вкладке free.
I'm learning to live...
|
17.03.2009, 13:28 | #3 |
Пользователь
Регистрация: 11.05.2008
Сообщений: 62
|
Не все так просто, Остановить удаляемый (i) браузер можно, а вот если следующий (i+1) браузер не загрузился до конца, то вылетает ошибка, т.к. получается путаница в массиве и программа не знает что куда грузить (догружать).
|
17.03.2009, 14:10 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
17.03.2009, 15:08 | #5 |
Пользователь
Регистрация: 11.05.2008
Сообщений: 62
|
Наверху же код удаления написан. По существу ответы будут?
|
17.03.2009, 15:48 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Во-первых: Destroy замени на Free.
Во-вторых: Еще раз повторяю - Останавливай перед удалением.
I'm learning to live...
|
17.03.2009, 16:26 | #7 |
Пользователь
Регистрация: 11.05.2008
Сообщений: 62
|
Я это уже пробовал. Останавливать все вкладки я не могу, остановка удаляемой не помогает. Destroy/Free эффект одинаковый - ошибка 000000000
Проблема похоже с самими массивами, но я не могу понять как все исправить. |
17.03.2009, 16:42 | #8 |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
Может для начала попробовать удалять браузер с активной вкладки?
Код:
|
17.03.2009, 17:40 | #9 |
Пользователь
Регистрация: 11.05.2008
Сообщений: 62
|
Последовательность следующая:
Браузер(1):= Браузер(2) Вкладка(1):=Вкладка(2) Браузер(2):= Браузер(3) Вкладка(2):=Вкладка(3) Браузер(3) стоп Браузер(3) удаляем Вкладка(3) удаляем Если в это время Браузер(2) не загрузился до конца, то ошибка. Вобщем я скланяюсь к тому, что задача удалить элемент из середины динамического массива не влияя на работу остальныех элементов... Т.е. удалил 2й, а 1й и 3й в это время делают то что делали. Но не понятно как это сделать. P.S. Зачем Вы закоментировали строку изменения названия вкладки так и не понял. |
17.03.2009, 17:42 | #10 |
Пользователь
Регистрация: 11.05.2008
Сообщений: 62
|
Что означает результат
WebBrowser=(D1:0;D2:0;D3:0;D4: (0,0,0,0,0,0,0,0)) ? Это мне показала программа при наведении курсора на строку при ошибке. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
необходимо засечь время выполнения части алгоритма | Lord Lex | Win Api | 12 | 03.03.2009 21:36 |
определить время выполнения процедуры? | Bezdar | Microsoft Office Excel | 4 | 20.01.2009 13:57 |
Как узнать время работы программы в паскаль? | bullvinkle | Помощь студентам | 2 | 26.12.2008 11:20 |
Цикл, время выполнения шага | KiDoki | Общие вопросы Delphi | 9 | 19.12.2008 22:37 |
Как замерить время выполнения программы | Gracel | Общие вопросы Delphi | 5 | 12.06.2007 22:16 |