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

Вниз

MDI приложение !!!   Найти похожие ветки 

 
Максим   (2003-10-08 10:26) [0]

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


 
AndrewPo   (2003-10-08 11:48) [1]

вот так:
создаем панель TToolBar без кнопок, ставим Align=alBottom

обработчик для пункта меню, который должен открывать форму делаем такой:

procedure TForm1.N3Click(Sender: TObject);
var TB1: TToolButton;
begin
N3.Enabled:=False; // Запрещаем пункт меню: нафига нам 2 одинаковые формы
Application.CreateForm(TForm2, Form2); // Создаем дочернюю форму
Form2.Tag:=MDIChildCount-1;
Form2.Show; // Показываем ее
TB1:=TToolButton.Create(ToolBar1); // Создаем кнопку на панели
TB1.Parent:=ToolBar1;
TB1.Caption:=Form2.Caption;
TB1.Tag:=MDIChildCount-1;
TB1.OnClick:=TBsClick; // Назначем событие на клик по кнопке
TB1.Show; // Показываем ее
end;


В описании класса TForm1 объявляем метод
procedure TBsClick(Sender: TObject);

... и определяем его
procedure TForm1.TBsClick(Sender: TObject);
var i: Integer;
begin
for i:=0 to MDIChildCount-1 do
if TForm(MDIChildren[i]).Tag = TToolButton(Sender).Tag then
begin
TForm(MDIChildren[i]).BringToFront;
Break;
end;
end;


теперь при клике на кнопку соответствующая форма вылезет на передний план. Соответствие устанавливается с помощью свойств Tag формы и кнопки.


 
Максим   (2003-10-08 13:19) [2]

Не работает !!! Во-первых нет имени формы на кнопке, во вторых когда сворачиваешь окно то она болтается над ТулБаром .........


 
panov   (2003-10-08 13:48) [3]

Поменьше восклицательных знаков в темах топиков, пожалуйста.


 
clickmaker   (2003-10-08 14:41) [4]

TabControl со стилем tsButtons внизу формы. Принцип аналогичен AndrewPo © (08.10.03 11:48) [1]


 
AndrewPo   (2003-10-08 17:12) [5]

2 Максим:

1.

> нет имени формы на кнопке

как это нет??? а што по-твоему делает вот эта строчка кода???
TB1.Caption:=Form2.Caption;

2.
> когда сворачиваешь окно то она болтается над ТулБаром

а я запретил сворачивать дочерние формы... а то жирно будет :))
дочернюю форму показываю по центру родительской


 
webpauk   (2003-10-08 17:15) [6]

используй компонент ELegantMDI


 
Oleg_Al   (2003-10-09 11:35) [7]

А если усложнить задачу: есть n- цадть (очень много) дочерних форм и хочется поиметь такой же ToolBar, но крайне не хочется к методу вызова каждой из форм цеплять вышеозначенный код.
Есть ли некое событие, реагирующее на создание дочерней формы для заданной главной, к которому и можно было бы привязаться?
Может быть кто-нибудь знает, как работает механизм генерации списка дочерних форм для главного меню (свойство TForm WindowMenu) и можно ли использовать как-то его?



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
3-65361
Fast
2003-09-28 23:02
2003.10.20
ADOStoredProc параметры


3-65362
SER
2003-09-28 23:37
2003.10.20
Работа с MySQL


1-65480
Deimos
2003-10-07 23:04
2003.10.20
Окно не таскается....


1-65407
Peter
2003-10-09 14:01
2003.10.20
загрузка из файла


14-65615
Mosia
2003-10-01 10:32
2003.10.20
землетресение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский