Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание вкладки в дочернем окне из родительского 
V
    Опции темы
chiffa
Дата 5.8.2011, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Добрый день. Делаю следующее: создаю дочернее окно (Form2) в нем по oncreat создаю вкладку:

Код

procedure TFrmShow.AddTab;
var
    mysrlbox: TScrollbox;
    mytab: TTabSheet;
  begin

mytab:=TTabSheet.Create(self);
mytab.PageControl:=FrmShPgCont;
mytab.Caption:='Page '+IntToStr(FrmShPgCont.PageCount) + '   ';
   
  end;



Далее на родительской форме (Form1) есть кнопка которая должна добавлять вкладки на Form2, но это не происходит, а выдает ошибку (обращение к памяти и т.д.), при этом первая вкладка создается нормально. ОТсюдова возникает вопрос: как из родительского окна правильно создать обьект в дочернем?... Заранее благодарен всем за помощь!
PM MAIL   Вверх
maniaks1
Дата 7.8.2011, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Наверно что то делаеш неправильно. Проблем быть не должно.


Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  ______.rar 166,16 Kb
PM MAIL ICQ   Вверх
chiffa
Дата 8.8.2011, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Так то работает... а в дочернем окне? (МидиЧайлд...)
PM MAIL   Вверх
maniaks1
Дата 8.8.2011, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Извиняюсь, не вник в суть. Может так?


Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Primer2.rar 164,05 Kb
PM MAIL ICQ   Вверх
chiffa
Дата 9.8.2011, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Странно что то... Переношу все как у тебя, но ругается на строку   T := TTabSheet.Create(FrmShPgCont);

Правда у меня еще Дочернее окно создается по клику TFrmShow.Create (Application);
PM MAIL   Вверх
maniaks1
Дата 9.8.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



сделай минимальный пример как делаеш, вечером гляну

PM MAIL ICQ   Вверх
chiffa
Дата 9.8.2011, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



И создание вкладок идет из другого дочернего окна, может это как влияет...
PM MAIL   Вверх
chiffa
Дата 9.8.2011, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Выкладываю "пример". Буду крайне признателен за помощь.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  min_primer.rar 175,55 Kb
PM MAIL   Вверх
maniaks1
Дата 9.8.2011, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Окно создал... но оно не активное, а активное то, на котором у тебя кнопка и на нём естественно нету PageControl)
В этом случае ActiveMDIChild тебе не помощник.

procedure TForm2.btn1Click(Sender: TObject);
var Form3:TForm3;
begin
  //if open_form = False then TForm3.Create (Application);
  //else
  //TForm3(ActiveMDIChild).NewPage('Íîâàÿ âêëàäêà');
  if open_form then exit;

  Form3:=TForm3.Create(Application);
  Form3.NewPage('Íîâàÿ âêëàäêà');
  Form3:=nil;
  Form3.Free;
end;



Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  min_primer2.rar 178,25 Kb
PM MAIL ICQ   Вверх
chiffa
Дата 10.8.2011, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



А как тогда такое реализовать?.....
PM MAIL   Вверх
maniaks1
Дата 10.8.2011, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Я же показал как это без ошибок сделать.
Если у тебя форма созда]тся в одном месте, а вкладки из другого, то имеет смысл перебрать все дочерние окна

Например так:

for i:=0 to Form1.MDIChild.....Count-1 do
if TForm3(Form1.MDIChild.....[i]).Caption='Нужная форма' then
TForm3(Form1.MDIChild....[i]).NewPage('Новая вкладка');

Можно также перебирать по tag (при создании присваивать)
Или по имени класса.
PM MAIL ICQ   Вверх
chiffa
Дата 11.8.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Огромное спасибо!!!! То что нужно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1384 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.