Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Переход на формы по закладкам   Найти похожие ветки 

 
CyBeR ©   (2004-07-06 04:49) [0]

Добрый день! Кто нить знает как перемещаться по формам с помощью закладок. Имеется куча модальных окон, надо, чтобы при открытии формы создавалась закладка (Tabset), а при закрытии формы она ес--но удалялась.


 
CyberSpy88   (2004-07-06 05:03) [1]

Посмотри на torry


 
CyBeR ©   (2004-07-06 05:37) [2]

2 CyberSpy88 извини, эт где???


 
CyBeR ©   (2004-07-06 05:39) [3]

понял, не дурак ;-) смотрю


 
CyBeR ©   (2004-07-06 05:46) [4]

че-то не нашел нихрена


 
TUser ©   (2004-07-06 07:06) [5]

Не работал, честно говоря, с этим компонентом ни разу, но в справке сказано
One tab is created for each string.
Соотв. при создании форму - создавай новую строчку, при закрытии формы - удаляй ее. Зачем тут торри?


 
Кщд ©   (2004-07-06 07:24) [6]

tcChildren: TTabControl;
Sender: TForm;

так добавляем
tcChildren.Tabs.AddObject(Sender.Caption{tvNavigate.Selected.Parent.Text}, Sender);

так показываем
на OnChange TTabControl:
TForm(tcChildren.Tabs.Objects[tcChildren.TabIndex]).BringToFront;


 
CyBeR ©   (2004-07-06 23:13) [7]

Спасибо, дома попробую.


 
CyBeR ©   (2004-07-07 00:53) [8]

я делал так, на событие OnCreate формы.
Закладка не добавляется.
На всякий случай:
формы удалены из списка автосоздаваемых.
Когда создаешь еще одну форму (та же форма, тока капшн другой) появляются две закладки, одна пустая, одна с Caption второй формы.
Может надо делать так??: MainTabset.Tabs.AddObject("bla-bla",Form1).
Плохо проверить не могу делфа не установлена. Но я точно помню, так как долго с этим фозился и спрашивал уже.


 
TUser ©   (2004-07-07 09:38) [9]

[5] точно работает.


 
CyBeR ©   (2004-07-07 10:03) [10]

Проверил я дома - эффект тот же.

Вот код, который я использую:
onCreate формы:
......
procedure TGroupsForm.FormCreate(Sender: TObject);

begin
with ParentFM.TabSet do begin
Tabs.AddObject("nevermind",GroupsForm);
end;
ParentFM.TabSet.RePaint; //приходится прорисовывать, иначе закладка просто не появляется//
onChange Tabset-a:
......
if (Sender is TTabset) then
   with (Sender as TTabset) do

TForm(TabSet.Tabs.Objects[TabSet.TabIndex]).Show;
......

Короче, при попытке перехода он есс-но пишет Tabindex is out of bounds(-1)


 
CyBeR ©   (2004-07-07 10:05) [11]

2 TUser ©
>[5] точно работает.

что работает-то, закладки создаются???


 
CyBeR ©   (2004-07-07 14:22) [12]

ну что, никто не поставит на путь истиный??? ;-)


 
TUser ©   (2004-07-07 14:30) [13]

А тебе что надо? Создай закладку для каждой формы и переключайся м. ними.


 
CyBeR ©   (2004-07-07 14:34) [14]

суть в том что они создаются, но переключения не происходит, смотри [10]


 
TohaNik ©   (2004-07-07 14:48) [15]

Я сделал так...
на OnCreate MDI формы на главной форме создаю ToolBar-е
кнопку с именем = имени, кепшеном = кепшену и Tag = Handle создаваемой формы
В OnClick кнопки проверяю на всяк случай существует-ли форма
если да то BringWindowToTop(сюда таг нажатой кнопки)
А на FormDestroy уничтожаю кнопку с именем формы
Второй день работает - пока без проблем.


 
CyBeR ©   (2004-07-07 23:13) [16]

TohaNik ©
форм много создаешь???
при нажатии те формы активизируются???
ща попробую, посмотрим
Просто я хотел именно с Табсетом
Кстати когда у тебя заполнено все пространство тулбара, размер кнопок уменьшатся???


 
TUser ©   (2004-07-08 07:53) [17]


> суть в том что они создаются, но переключения не происходит,
> смотри [10]

Сделай проще
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
i:=length(Form2);
setLength(Form2,i+1);
Form2[i]:=TForm2.create(Application);
Form2[i].Caption:="Form2 ("+inttostr(i)+")";
TabSet1.Tabs.Add(inttostr(i));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Cur:=-1;
end;

procedure TForm1.TabSet1Click(Sender: TObject);
var i:integer;
begin
i:=TabSet1.TabIndex;
if i <> Cur then
  if (i<length(Form2)) and (i>=0) then begin
     Cur:=i;
     for i:=0 to length(Form2)-1 do
        Form2[i].Hide;
     Form2[Cur].Show;
     Form2[Cur].SetFocus;
     end;
end;

Form2 - это здесь дин. массив.


 
TohaNik ©   (2004-07-08 09:25) [18]

>CyBeR ©  (07.07.04 23:13) [16]
Сколько нужно пользователю столько и создается.
Ест-но активизируются иначе зачем это нужно.:)

>Кстати когда у тебя заполнено все пространство тулбара, размер кнопок уменьшатся???

Красоту еще не наводил - проверяю пока чтоб работало без проблем.
Ну а так думаю над двумя вариантами:
-Либо уменьшать размер кнопок(кстати SpeedButton плохо подходит-нет выравнивания и кепшены обрезаются по краям хотя Hint на весь кепшен, но всеравно не красиво)

- Или когда не помещаются как-то в два ряда создавать



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.102 c
14-1089114335
Григорьев Антон
2004-07-06 15:45
2004.07.25
Нужны оппоненты для диссертации


1-1088730903
Xerx
2004-07-02 05:15
2004.07.25
Иконки


1-1089176228
pupus
2004-07-07 08:57
2004.07.25
Лаба по искусственному интеллекту


1-1089274655
aliced
2004-07-08 12:17
2004.07.25
Панель Delphi отсутствует при открытии проекта


4-1086715252
Вжик
2004-06-08 21:20
2004.07.25
Потоки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский