Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
Sniper
96 / 64 / 4
Регистрация: 28.01.2010
Сообщений: 326
1

Ошибка при закрытии вкладки созданой програмно в PageControl

20.09.2010, 12:42. Показов 3925. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте. Такое дело. На форме есть PageControl(без вкладок), вкладки создаются програмно, и на каждой вкладке есть РичЕдит(Один). Создаю владки с РичЕдитами так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure AddPage(ACaption: string; AControl: TPageControl);
var NewPage: TTabSheet ;
    NewSEdit: TRichEdit;
begin
  NewPage := TTabSheet.Create(AControl.Owner);
  NewPage.PageControl := AControl;
  NewPage.Caption := ACaption;
  NewPage.Show;
  AControl.TabWidth :=0;
  NewSEdit :=  TRichEdit.Create(Teditor// главная форма);
  with NewSEdit do
    begin
       // здесь параметры
    end;
    NewSEdit.Name:='SEdit'+IntToStr(AControl.PageCount);
    NewSEdit.Clear;
end;
На каждой созданой вкладке отображается кнопка закрытия. Все вкладки закрываются нормально, но последняя оставшеяся, при закрытии, выдает ошибку: Access Violation at address 00455750 in module: "Project1.exe" read of address 000001CC
и так бесконечно... что делать? Заранее благодарен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2010, 12:42
Ответы с готовыми решениями:

Доступ к обьектам созданых програмно на вкладках PageControl
Здравствуйте. Возник следующий вопрос. У меня на форме есть TPageControl без единой вкладки. После...

Не переключаются вкладки PageControl'a
Есть PageControl с двумя TabSheet. На каждом TabSheet Image в alClient и кнопки на Image'e. Когда...

Вкладки слева на PageControl?
Можно ли стандартными средствами (без особых извращений) у компонента TPageControl вкладки TabSheet...

Как переименовывать вкладки в PageControl?
как переименовывать вкладки в PageControl?

11
КотЪ
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
20.09.2010, 12:58 2
А каким образом вы их закрываете? Код можно?
0
Sniper
96 / 64 / 4
Регистрация: 28.01.2010
Сообщений: 326
20.09.2010, 13:16  [ТС] 3
Закрываю нажатием кнопки закрыть(событие onExit) - ошибка
уничтожаю вот так
Delphi
1
PageControl.ActivePage.Destroy
всё равно ошибка. может надо удалить сперва компонент РичЕдит с вкладки? Как?
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
20.09.2010, 14:04 4
Цитата Сообщение от dimafe6 Посмотреть сообщение
Закрываю нажатием кнопки закрыть(событие onExit)
чет либо я не догоняю либо че, но событие OnExit наступает в момент потери элементом фокуса, в момент его переключения на другой элемент
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
20.09.2010, 14:45 5
вообще я как-то работал с динамическими вкладками, я их закрывал по двойному клику мышки.
0
Sniper
96 / 64 / 4
Регистрация: 28.01.2010
Сообщений: 326
20.09.2010, 14:48  [ТС] 6
Цитата Сообщение от Larsus Посмотреть сообщение
чет либо я не догоняю либо че, но событие OnExit наступает в момент потери элементом фокуса, в момент его переключения на другой элемент
Ну значит не OnExit . На каждой вкладке кнопка закрыть есть, вот ее нажатием и закрываю. Так чё делать кто-нить скажет?
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
20.09.2010, 15:15 7
Цитата Сообщение от dimafe6 Посмотреть сообщение
PageControl.ActivePage.Destroy
а попробуй
PageControl1.ActivePage.free;
0
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
20.09.2010, 15:41 8
Хоть бы написал что за ошибка или выложил проект чтоб не годать что да как у тебя там, а вообще если у тебя там созданы какие-либо компоненты то нужно их в перед уничтожать, освобождая память, а затем вкладки.
0
Sniper
96 / 64 / 4
Регистрация: 28.01.2010
Сообщений: 326
20.09.2010, 17:17  [ТС] 9
PageControl1.ActivePage.free;
Тоже побовал, некати
Вот сам проект:
Editor.rar.rar
0
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
20.09.2010, 17:46 10
К сожелению с вашим кодом поработать не могу у меня нет таких сторонних компонентов и ошибку определить так трудно, но предлагаю пример который набрасал, может чем то и поможет.
Вложения
Тип файла: rar Proj.rar (313.1 Кб, 138 просмотров)
1
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
20.09.2010, 21:45 11
Ну во первых вы оставляете много муссораЮ вам нужно совободится от элементов которые есть на вкладке и во вторых возникает ошибка когда у вас нет не одной вкладки вам нужно проверять это в программе, и очищать от ричедит и вского другого которое может быть у вас на вкладке примерно так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.BtDestroy(Sender: TObject);
var
  I: Integer;
begin
  if PageControl1.PageCount>0
    then
      begin
        for I := 0 to PageControl1.ActivePage.ControlCount - 1 do
          PageControl1.ActivePage.Controls[I].Destroy;
        PageControl1.ActivePage.Destroy;
      end
    else ShowMessage('dimafe6 ->  У вас нет вкладок и следвательно PageControl1.ActivePage выдаст ошибку');
end;
0
Sniper
96 / 64 / 4
Регистрация: 28.01.2010
Сообщений: 326
21.09.2010, 09:54  [ТС] 12
Спасибо, приду с пар посмотрю.
0
21.09.2010, 09:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2010, 09:54
Помогаю со студенческими работами здесь

Как в PageControl использовать динамические вкладки?
Нужно создать что-то на подобии вложенного рисунка. + - создать вкладку определённого содержания, а...

Экспорт файлов из активной вкладки PageControl
Ребят, нужна Ваша помощь с реализацией экспорта файлов. Суть вот в чем: Есть 4 формы. 1 форма...

PageControl: как сделать вкладки невидимыми?
добрый день, подскажите пожалуйста, как сделать невидимыми листы в pagecontrol. свойство...

Закрыть все вкладки кроме текущей в PageControl
Каким образом можно закрыть все вкладки кроме одной - текущей?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru