Форум: "Начинающим";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];
Внизпереключение между формами программы Найти похожие ветки
← →
xyz (2009-07-28 07:42) [0]Как это лучше организовать? Какую для этого назначить комбинацию клавиш, есть какие-то общепринятые варианты? И как пользователю дать понять, что именно эта комбинация переключает формы? В хэлпе написать - это понятно. Но не все же его читают. На форме открытым текстом напечатать? Не вариант.
Есть статьи на эту тему?
← →
Anatoly Podgoretsky © (2009-07-28 08:45) [1]> xyz (28.07.2009 07:42:00) [0]
Для чего надо изобретать, когда еще со времен Win 1.0 для переключения есть стандартные комбинации Ctrl+Tab и Alt+Tab
← →
xyz (2009-07-28 09:36) [2]А как обработать Ctrl+Tab? Чтоб он работал также, как в Photoshop например?
← →
Dennis I. Komarov © (2009-07-28 09:38) [3]
> Anatoly Podgoretsky © (28.07.09 08:45) [1]
> Для чего надо изобретать...
он сам же написал: Но не все же его читают
← →
Юрий Зотов © (2009-07-28 09:42) [4]> xyz (28.07.09 09:36) [2]
> А как обработать Ctrl+Tab?
Сначала попробуйте никак не обрабатывать. Вдруг оно уже обработано?
:o)
← →
xyz (2009-07-28 09:47) [5]Нет, не обработано.
← →
Palladin © (2009-07-28 09:56) [6]
> Есть статьи на эту тему?
в msdn поиск по "Guidelines for Keyboard User Interface Design"
← →
Юрий Зотов © (2009-07-28 11:23) [7]> xyz (28.07.09 09:47) [5]
Обработано для MDI-CHILD. Это стандартная комбинация клавиш для переключения между дочерними окнами.
← →
Kolan © (2009-07-28 12:44) [8]Может лучше заменить MDI-интерфейс на другой. Я вижу два варианта:
Использовать TabDI, он лучше тем, что открытые окна видны сразу, да и многие к ним привыкли в браузерах.
Сделать одно окно — имхо, может оказаться лучше, если только у вас не многодокументное приложение.
Покажите скриншоты окон и дайте небольшое описание, если требуется.
← →
xyz (2009-07-28 12:47) [9]Что-то не получается без исключений создать дочерние формы. Пытался просто менять стиль form2.FormStyle:=fsMDIChild в событиях OnShow.
Такой код выполнить тоже не получается:procedure TForm1.FormCreate(Sender: TObject);
...
begin
...
PostMessage(Handle, WM_PostInit, 0, 0);
end;
procedure TForm1.WMPostInit(var Msg: TMessage);
begin
form2.FormStyle:=fsMDIChild;
end;
Как сделать, чтобы сообщение WMPostInit обрабатывалось? А то сейчас пишет undeclared identifier: "WMPostInit". Или как проще сделать окна дочерними?
← →
xyz (2009-07-28 13:08) [10]Опишу подробнее проблему. После того, как я поставил у форм formstyle в fsMDIChild, в dpr-файле при запуске приложения возникало исключение "Cannot create form. No MDI forms are currently active. Код dpr-файла такой:
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.Run;
end.
Причем если я делаю дочерней 2-ю форму, то отладчик выделяет синей строкой 3-ю. Т. е. следующую после первой дочерней. Менять стиль форм прямо во время выполнения тоже не получалось, везде исключения.
← →
Kolan © (2009-07-28 13:11) [11]Почитайте, может, Delphi 5 Руководство разработчика, том 1, стр. 718?
← →
xyz (2009-07-28 14:58) [12]Почитал. Сделал. Но окно теперь создается дочернее прямо в родительском. А мне-то надо чтобы они как бы сами по себе были. Т. е. получается, надо обрабатывать Ctrl+Tab самому?
← →
Kolan © (2009-07-29 11:29) [13]Скриншот помог бы прояснить вопрос. Не очень понятно что вы пытаетесь сделать. Может что-то вроде старого Винампа?
← →
xyz (2009-07-29 11:35) [14]Я имею в виду что дочерние окна могут выходить за пределы родительского окна. У меня родительское окно кстати маленькое.
← →
Kolan © (2009-07-29 11:46) [15]Ну если я понял, то это что-то вроде Винампа. Зачем тогда между ними переключаться, может можно сделать, чтобы они все были видны.
А если они такие большие, то почему ин обязательно нужно выходить за пределы родительского. Можно сделать стандартный MDI, а то окно что у вас сейчас родительское и маленькое сделать не главным, а палитрой.
← →
xyz (2009-07-29 12:01) [16]Палитрой - это как?
← →
Kolan © (2009-07-29 12:18) [17]Палитра — это такое окно в котором собраны элементы управления и которое «парит» над всеми документами в MDI. Пример — палитры в фотошопе.
← →
MonoLife © (2009-07-30 04:03) [18]
> xyz (28.07.09 07:42)
>
> Как это лучше организовать? ...
А что, главного меню у твоей программы нет?
А так, можно в главном меню "Window" добавлять Caption по порядку открытых дочерних окон, соответственно, назначая им Ctrl+1, Ctrl+2 и т.д.
И "хот кей" есть, и пользователю видно...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c