Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2018, 16:38   #21
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Ну не копипасть ты, не глядя, ёмаё.
Посмотри внутрь модуля ufMain.pas и возьми оттуда только нужное. И вообще, прочитай код и пойми, как он работает, и почему.
Молодой человек, мне некогда разбирать Ваш код с приколами, чтобы убедится, что да, ошибка в моем есть. Я лучше уделю это время на совет Алара.
exyl вне форума Ответить с цитированием
Старый 14.02.2018, 16:41   #22
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от exyl Посмотреть сообщение
Молодой человек, мне некогда разбирать Ваш код с приколами, чтобы убедится, что да, ошибка в моем есть. Я лучше уделю это время на совет Алара.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.02.2018, 04:04   #23
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Ситуация прояснилась.
Поубирал вызовы процедуры создания вкладок из внешнего модуля, кнопку закрытия расположил на форме в дизайн-тайме, закрываю вкладку просто:
Код:
if PageControl_Browser.Visible and (PageControl_Browser.ActivePageIndex>0) then
    PageControl_Browser.Pages[PageControl_Browser.ActivePageIndex].Free;
Тут стоят проверки на:
  • видимость всего пейджконтрола (т.к. может быть виден другой, с логом, его трогать нельзя)
  • на номер вкладки (нельзя закрывать самую первую с индексом [0], она создана в дизайн-тайме и всегда присутствует)

Если на вкладке нет TWebBrowser'а, то и ошибок нет.
Если создать еще одну вкладку с браузером в ран-тайме и после ее закрытия кликнуть на ярлычке оставшейся (первой) вкладки, то вылетает ошибка доступа к памяти.
Если создавать несколько вкладок, и закрывать их, то ошибок иногда нет (закономерность понял не до конца).

Есть какие-то соображения, что это такое и как лечится?
И почему при удалении вкладки не наступает события OnChange пейджконтрола, а если его вызвать вручную (даже с пустым телом), то сразу получаю акцесс виолейшн?

Последний раз редактировалось exyl; 17.02.2018 в 07:45.
exyl вне форума Ответить с цитированием
Старый 17.02.2018, 17:15   #24
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от exyl Посмотреть сообщение
Я лучше уделю это время на совет Алара.
ну как, время было потрачено не зря, чувак?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.02.2018, 17:28   #25
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
ну как, время было потрачено не зря, чувак?
Если ты о своем, то точно зря )
И я бы его потратил так же, ковыряя неизвестно зачем навороченный пример. Кроме того, нет веббраузера - нет ошибок, чувак (тут так принято обращаться?).
exyl вне форума Ответить с цитированием
Старый 17.02.2018, 17:34   #26
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от exyl Посмотреть сообщение
Если ты о своем, то точно зря )
И я бы его потратил так же, ковыряя неизвестно зачем навороченный пример. Кроме того, нет веббраузера - нет ошибок, чувак (тут так принято обращаться?).
Да не надо так слюной брызгать. Достаточно было ответить "да" или "нет".
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.02.2018, 17:44   #27
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Проблема решена.
Я до сих пор не имею понятия, кто и зачем обращался к браузеру при освобождении вкладки, но проблемы исчезли, когда я сначала прописал освобождение браузера, а потом вкладки:
Код:
procedure TForm_Main.Action_BrowserCloseTabExecute(Sender: TObject);
begin
  if PageControl_Browser.Visible then  //только если виден педж контрол с браузерными вкладками
    if PageControl_Browser.ActivePageIndex>0 then  //первая вкладка не закрывается никогда
      begin
        TMyBrowserTabSheet(PageControl_Browser.Pages[PageControl_Browser.ActivePageIndex]).FBrowser.Free;  //вручную освобождаем браузер, который хранится в FBrowser типа TexBrowserTabSheet  = class(TTabSheet)
        PageControl_Browser.Pages[PageControl_Browser.ActivePageIndex].Free;  //освобождаем вкладку
        PageControl_BrowserChange(Sender);  //инициируем процедуру при смене вкладки
      end;
end;
exyl вне форума Ответить с цитированием
Старый 25.02.2018, 15:52   #28
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Shift+F11 нажми.
А нельзя форум не загружать exe файлами, и только исходники выкладывать, без шаманства.

И места много не занимает, и сразу все понятно что где как зачем. а пример работы можно как сейчас картинкой оставлять. т.е. картинка + код. без exe

а?
Alar вне форума Ответить с цитированием
Старый 25.02.2018, 16:23   #29
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
А нельзя форум не загружать exe файлами, и только исходники выкладывать, без шаманства.

И места много не занимает, и сразу все понятно что где как зачем. а пример работы можно как сейчас картинкой оставлять. т.е. картинка + код. без exe

а?
Можно. Но это не имеет никакого смысла.
Это прекратится, когда ты добавишь соответствующий пункт в правила и начнёшь за это банить. А пока формально мой подход ничего не нарушает. Ведоносный код я не делаю.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.02.2018, 17:49   #30
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

1. пользователи не хотят качать экзешники
2. пользователи не знают как достать исходники

итог размещение экзешника бесмыслленно, если так. то какой смысл? бесполезный труд и самолюбование только, а не помощь форумчанам.

А народ обижается уходит.
Alar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера динамически созданного StringGrid на динамически созданной форме loom12 Общие вопросы Delphi 2 08.09.2014 15:35
Работа с динамически созданной формой Airou C++ Builder 1 12.07.2011 10:58
Прозрачность динамически созданной формы Lime Общие вопросы .NET 1 03.04.2010 16:25
Передать Title загружаемой страницы в Caption созданной вкладки PageControl-a Verst Общие вопросы Delphi 6 24.11.2009 01:43
Событие для динамически созданной Button Dogmat Помощь студентам 8 24.07.2008 12:44