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

Вниз

построение приложения баз данных   Найти похожие ветки 

 
_drug_   (2009-07-30 13:09) [0]

У меня такой банальный вопрос - есть приложение баз данных, в нем есть главная форма и несколько доп. форм. допформы вызываются через ShowModal. Мне не нравится, что когда сворачиваешь допформу, главная форма остается висеть и при этом неактивна, так как допформа в модальном режиме. Я думаю, что это неправильно. Кто поделится как он строит такие приложения и как из главной формы вызывает дочерние и почему его способ самый лучший? :-)


 
clickmaker ©   (2009-07-30 13:11) [1]

> и почему его способ самый лучший?

объявляешь конкурс?
вообще-то, можно просто тупо запретить сворачивать модальные формы... раз уж они модальные, то это вполне логично


 
stas ©   (2009-07-30 13:28) [2]

И правда "построение приложения баз данных", модальные формы только в приложениях с БД.


 
И. Павел   (2009-07-30 13:48) [3]

Перед ShowModal можно поставить MainForm.Visible:=false, а в OnClose модальной формы написать MainForm.Visible:=true.


 
И. Павел   (2009-07-30 13:50) [4]

Хотя лучше добавить в модальные формы переменную FromMain которая устанавливается в true, если формц вызвала главная, и тогда:
if FromMain then MainForm.Visible:=true


 
clickmaker ©   (2009-07-30 13:54) [5]

> [4] И. Павел   (30.07.09 13:50)

не болтайте ерундой


 
Sergey13 ©   (2009-07-30 13:55) [6]

> [3] И. Павел   (30.07.09 13:48)

ИМХО, это называется "сначала придумаем себе трудности, а потом мужественно их преодолеваем".

> [0] _drug_   (30.07.09 13:09)
> Мне не нравится...
> Я думаю, что это неправильно.

Плач Ярославны напоминает.


 
И. Павел   (2009-07-30 14:00) [7]


> clickmaker ©, Sergey13 ©


А в чем я неправильно ответил на поставленный вопрос? Можно сделать не переменную а счетчик, определяющий глубину дочерней формы, но это не принципиально. Какие варианты решения этой задачи вы придложите?


 
clickmaker ©   (2009-07-30 14:06) [8]

> [7] И. Павел   (30.07.09 14:00)

см. [1]


 
И. Павел   (2009-07-30 14:07) [9]


> clickmaker ©   (30.07.09 14:06) [8]
> > [7] И. Павел   (30.07.09 14:00)
>
> см. [1]


Модальную форму можно просто перетащить, тогда главная форма будет видна, и, если она большая, будет загораживать другие окна.


 
Ega23 ©   (2009-07-30 14:08) [10]


> А в чем я неправильно ответил на поставленный вопрос?


Да дурь полнейшая.


> Какие варианты решения этой задачи вы придложите?


TForm.BorderStyle := bsDialog


 
Sergey13 ©   (2009-07-30 14:08) [11]

> [7] И. Павел   (30.07.09 14:00)
> Какие варианты решения этой задачи вы придложите?

А в чем тут проблема? Человек хочет сворачивать форму, которую сам же открывает модально. ИМХО тут проблема скорее в человеке.


 
Anatoly Podgoretsky ©   (2009-07-30 14:09) [12]

> Sergey13  (30.07.2009 14:08:11)  [11]

Дело не в бобине?


 
И. Павел   (2009-07-30 14:10) [13]

Можно просто при сворачивании формы сворачивать все окна этого приложения сразу.


 
Ega23 ©   (2009-07-30 14:13) [14]


> Можно просто при сворачивании формы сворачивать все окна
> этого приложения сразу.


Можно ещё сексом стоя на лыжах и в гамаке заниматься.
Некоторым нравится.


 
Dennis I. Komarov ©   (2009-07-30 14:13) [15]

А можно не страдать .... (кому что нравится)


 
И. Павел   (2009-07-30 14:14) [16]


> Ega23 ©


Это не ответ... А bsDialog закроет кнопку минимизации. Иногда может потребоваться свернуть программу, и поработать с чем то другим, перед тем, как закрыть диалог. А про Alt+tab пользователь может не знать.


 
clickmaker ©   (2009-07-30 14:15) [17]

> тогда главная форма будет видна, и, если она большая, будет
> загораживать другие окна.

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


 
Ega23 ©   (2009-07-30 14:17) [18]


> ногда может потребоваться свернуть программу, и поработать
> с чем то другим, перед тем, как закрыть диалог.


Покажите мне хоть один windows-диалог, который открывается модально с кнопкой пинимизации.


 
И. Павел   (2009-07-30 14:18) [19]

Да и вообще, если большую часть времени пользователь работает с дочерними формами, то маячащая на заднем плане главная форма, закрывающая весь рабочий стол, просто никчему.


> а зачем мне видеть другие окна, если я работаю в модальной
> форме?


Пользователь может не знать, что такое модальная форма. Ему может потребоваться немедленно что-то ввести в другую программу, например.


 
Anatoly Podgoretsky ©   (2009-07-30 14:19) [20]

> И. Павел  (30.07.2009 14:14:16)  [16]

Ему противопоказоно сворачивание.


 
И. Павел   (2009-07-30 14:20) [21]

Главная форма может быть поверх всех окон, или закрывать панель задач, да и просто закрывать ярлыки нп рабочем столе. Вот я о чем.


 
Ega23 ©   (2009-07-30 14:21) [22]


> Да и вообще, если большую часть времени пользователь работает
> с дочерними формами, то маячащая на заднем плане главная
> форма, закрывающая весь рабочий стол, просто никчему.


Запустите любую программу настройки чего-либо в Windows. Или вы таки считаете, что весь огроменный штат дизайнеров в Microsoft разбирается в эргономике хуже И. Павел?


> Ему может потребоваться немедленно что-то ввести в другую
> программу, например.


Запустите, например, настройку ODBC-источника. Повызывайте модальные формы. Введите данные в другую программу. Вернитесь к настройкам ODBС


 
Anatoly Podgoretsky ©   (2009-07-30 14:23) [23]

> И. Павел  (30.07.2009 14:18:19)  [19]

Это программист не знает, что такое модальная форма, но катит на пользователя.


 
И. Павел   (2009-07-30 14:24) [24]


> Запустите любую программу настройки чего-либо в Windows.
>  Или вы таки считаете, что весь огроменный штат дизайнеров
> в Microsoft разбирается в эргономике хуже И. Павел?


В интерфейсе windows, насколько я знаю, нет или почти нет гиганских (с фиксированным размером) форм поверх всех окон. А у автора вопроса может быть.


 
Anatoly Podgoretsky ©   (2009-07-30 14:25) [25]

> И. Павел  (30.07.2009 14:20:21)  [21]

Зачем ты так делаешь?


 
Ega23 ©   (2009-07-30 14:25) [26]


> Главная форма может быть поверх всех окон, или закрывать
> панель задач, да и просто закрывать ярлыки нп рабочем столе.
>  Вот я о чем.


Вот только что. Запустил Visio, открыл на весь экран, запустил Reverse Engeneer Wizard (модальный).
Почему-то "главная форма" никуда не исчезла и не свернулась. Странно, не правда-ли?

Впрочем, лично вы можете писать программы именно так, как вам хочется. Но не удивляйтесь, когда заказчик плеваться начнёт.


 
И. Павел   (2009-07-30 14:28) [27]


> Зачем ты так делаешь?


Так делают и другие, встречал несколько раз. Если, например, кроме этой программы почти ничего не используется, или если это игрушка. Но не закрывать ярлыки все равно не получится.


 
И. Павел   (2009-07-30 14:30) [28]


> Ega23 ©


Вы так и не написали, почему считаете "дурью" указанный способ. Эргономика программы должна основываться не только на непоколебимом авторитете Microsoft.


 
Dennis I. Komarov ©   (2009-07-30 14:30) [29]


> А у автора вопроса может быть.

"А мужики то не знают"...


 
clickmaker ©   (2009-07-30 14:30) [30]

> [24] И. Павел   (30.07.09 14:24)

это будут проблемы автора вопроса.
есть же правила дорожного движения, ни у кого вопросов не возникает? почему при разработке UI не надо придерживаться правил?


 
И. Павел   (2009-07-30 14:31) [31]


> это будут проблемы автора вопроса.
> есть же правила дорожного движения, ни у кого вопросов не
> возникает? почему при разработке UI не надо придерживаться
> правил?


Ну ведь удобнее, когда огромная главная форма исчезает, когда она не нужна :)


 
И. Павел   (2009-07-30 14:33) [32]

ИМХО надо бы и автору вопроса что-нибудь подсказать... Ато 30 постов ни о чем...


 
Dennis I. Komarov ©   (2009-07-30 14:34) [33]


> ИМХО надо бы и автору вопроса что-нибудь подсказать... Ато
> 30 постов ни о чем...

Как это ни о чем... они все о [15]


 
clickmaker ©   (2009-07-30 14:35) [34]

> Ну ведь удобнее, когда огромная главная форма исчезает,
> когда она не нужна

чем удобнее?

> надо бы и автору вопроса что-нибудь подсказать

уже давно. [1] и [10]


 
И. Павел   (2009-07-30 14:35) [35]

верно :)


 
И. Павел   (2009-07-30 14:37) [36]


> верно :)


Это я о [33]


>
> чем удобнее?

тем, что другие окна не загораживает, что ярлыки на рабочем столе видны (а многие пользователи только через них могут программы запускать), что не маячит перед глазами здоровая форма, наконец :)


 
Anatoly Podgoretsky ©   (2009-07-30 14:38) [37]

> И. Павел  (30.07.2009 14:31:31)  [31]

Меня это пугало бы.


 
Dennis I. Komarov ©   (2009-07-30 14:39) [38]

Win+D спасет отца русской демократии...


 
И. Павел   (2009-07-30 14:39) [39]


> уже давно. [1] и [10]

про bsDialog я уже писал - такую форму пользователь отодвинет, а потом потеряет ее, и будет пытаться в неактивную главную тыкать :)


 
Anatoly Podgoretsky ©   (2009-07-30 14:40) [40]

> И. Павел  (30.07.2009 14:37:36)  [36]

Освой кнопку - "свернуть все окна", это как раз для них.



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

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

Наверх




Память: 0.54 MB
Время: 0.007 c
2-1248933090
Someone
2009-07-30 09:51
2009.10.04
Как изменить значение ключа в реестре (по умолчанию)?


3-1227530650
maxbog
2008-11-24 15:44
2009.10.04
Проблема с исходником Delphi


15-1249167230
DillerXX
2009-08-02 02:53
2009.10.04
нужна электронная мартышка


15-1249322695
Kerk
2009-08-03 22:04
2009.10.04
Рекурсия


2-1248971321
belmol
2009-07-30 20:28
2009.10.04
работа с калькулятором





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