Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.11.2010, 19:37
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
Вопрос TabSET и MDI окна

Привет всем !
Люди помогите плиз уже третий день с этим мучаюсь
У меня MDI приложение с множеством дочерних окон в низ главной формы я поставил компонент TabSET.
При создании новой дочерней формы создаю параллельно вкладку в tabset
методом TabSet1.Tabs.Add('Новое окно');
(Пробовал и фокус передавать что я только не пробовал не чего не помогает ).
Вопрос- Нужно чтобы вкладки с tabset переключали дочерние окна и при закрытии доч. Окна исчезала та вкладка которая создавалась вместе с этим доч.окном.
И второй вопросик как узнать индекс дочернего окна (по уровню его создания (открытия))
Ну вроде как разъяснил понятно, помогите плиз.
Заранее большое спасибо
Ответить с цитированием
  #2  
Старый 11.11.2010, 20:58
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Админ пожалуйста удали этот пост...
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 11.11.2010 в 22:53.
Ответить с цитированием
  #3  
Старый 11.11.2010, 21:23
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

и этот пост... я просто поторопился с выводами...ссори
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 11.11.2010 в 22:54.
Ответить с цитированием
  #4  
Старый 11.11.2010, 22:52
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Я пасс...

Проблема в том что в режиме OnChange для компонента Tabset не получается выбрать страницу - и использовать Index страницы..

добавляется всё без проблем - но при клике на второй странице получаешь индекс 4
при клике на 4 страницу получаешь индекс 0
на первой 3
на второй 4 и т.д. - оно сама по себе смешивается не получается получить правильно получить индекс выбранной страницы...


Ребята знатоки может кто то знает как это можно реализовать?(просто мне самому стало интересно как же так не получаться)
вот последний код
Код:
begin
tform2.Create(self);
(activemdichild as tform2).Caption:='New'+' '+inttostr(form1.Tag);
(activemdichild as tform2).Tag:=form1.Tag; //потом по Тегу можно будет их закрывать
tabset1.Tabs.Insert(form1.Tag,(activemdichild as tform2).Caption);
tabset1.TabIndex:=form1.Tag;
form1.Tag:=form1.Tag+1;
end;
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 11.11.2010 в 22:54.
Ответить с цитированием
  #5  
Старый 12.11.2010, 21:33
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

После дня мучения нашел способ как можно переключать формы кликая на страницы Tabset - код как то жудковато получился - но по другому не пашет

Код:
Добавляем MDI окна
procedure TForm1.Button1Click(Sender: TObject);
begin
tform2.create(self);
tabset1.Tabs.Add(inttostr(form1.Tag));
(activemdichild as tform2).Caption:='New '+inttostr(form1.Tag);
(activemdichild as tform2).Tag:=form1.Tag;
form1.Tag:=form1.Tag+1;
end;

Код:
Переключаемся между ними
procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
var
  I: Integer;
begin
tabset1.Tag:=newtab;
for i := 0 to MDIChildCount - 1 do
if tabset1.Tag=mdichildren[i].Tag then
mdichildren[i].SetFocus;
end;

- но пока не получается закрывать форму вместе с страничкой в TabSet
потому до выполнения

Action:=caFree;

надо проверку делать(на то чтоб закрыть нужную страницу) - а это не получается...

Может у кого то есть какое нить предложение?? Как это можно сделать?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025