![]() |
|
#1
|
||||
|
||||
![]() Привет всем !
Люди помогите плиз уже третий день с этим мучаюсь У меня MDI приложение с множеством дочерних окон в низ главной формы я поставил компонент TabSET. При создании новой дочерней формы создаю параллельно вкладку в tabset методом TabSet1.Tabs.Add('Новое окно'); (Пробовал и фокус передавать что я только не пробовал не чего не помогает ). Вопрос- Нужно чтобы вкладки с tabset переключали дочерние окна и при закрытии доч. Окна исчезала та вкладка которая создавалась вместе с этим доч.окном. И второй вопросик как узнать индекс дочернего окна (по уровню его создания (открытия)) Ну вроде как разъяснил понятно, помогите плиз. Заранее большое спасибо |
#2
|
||||
|
||||
![]() Админ пожалуйста удали этот пост...
Нет ничего не возможного. Вопрос только во времени... Последний раз редактировалось Electronic_Arts, 11.11.2010 в 22:53. |
#3
|
||||
|
||||
![]() и этот пост... я просто поторопился с выводами...ссори
Нет ничего не возможного. Вопрос только во времени... Последний раз редактировалось Electronic_Arts, 11.11.2010 в 22:54. |
#4
|
||||
|
||||
![]() Я пасс...
Проблема в том что в режиме 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
|
||||
|
||||
![]() После дня мучения нашел способ как можно переключать формы кликая на страницы 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; надо проверку делать(на то чтоб закрыть нужную страницу) - а это не получается... Может у кого то есть какое нить предложение?? Как это можно сделать? Нет ничего не возможного. Вопрос только во времени... |