Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Form.Show и Form.ShowModal - разница? Отображение скрытых форм 
:(
    Опции темы
Diver
  Дата 21.3.2005, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.2.2004

Репутация: нет
Всего: нет



Для отображение скрытых форм можно использовать два способа: Form.Show и Form.ShowModal.

Вопрос: Какая между ними разница и что лучше?

PM MAIL   Вверх
Satana
Дата 21.3.2005, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 564
Регистрация: 15.9.2004
Где: Ставрополь, СЗ ра йон

Репутация: 1
Всего: 5



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


--------------------
 Работай на себя 
www.abalentsev.com - Сайт портфолио.
www.pokushau.ru - Рецепты со всего мира.
PM MAIL WWW ICQ   Вверх
drinkOut
Дата 21.3.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

Репутация: нет
Всего: нет



Когда ты исподьзуешь метод ShowModal, то вызванная форма становится модальной, т.е. нельзя получить доступ к другим формам приложения, пока эта вызванная форма не закрыта.

Трудно дать ответ на твой вопрос "Что лучше?"... Надо просто посмотреть, что лучше подходит под конкретную ситуацию. smile
Добавлено @ 23:40
Satana, опередил...
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
FRAGNATIC
Дата 21.3.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



разница большая
когда т используеш ShowModal то тогда программа приостонавливает своё выполнение и ты мож работать ток с той формой которую ты так показал а к главной форме ты не сможеш получить доступ
дапустим
Код

var i: integer;
begin
form2.showmodal;
i:=10
end;

сдесь сначало покажется окно и программа будет ждать его закрытия и тока после его закрытия i присвоится значение 10
Код

var i: integer;
begin
form2.showl;
i:=10
end;

здесь покажется окно и моментально i присвоится значение 10 )
вообще если надо работать сразу с двумя окнами то лучше просто show если дапустим окно "о программе" то лучше showmodal + можно определит как было закрыто окно (если есть пару кнопок) то в модальном окне можно определить как было закрыто окно нажатием кнопки ОК или НО )
Добавлено @ 23:41
гы опередили оба(
PM MAIL   Вверх
SPrograMMer
Дата 21.3.2005, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 2
Всего: 6



Когда ты использушь просто Show, у тебя откроется новое окно, и ты сможешь "перепрыгивать" из одного окна во воторое безо всяких ограничений.
ShowModal немного другая штука. Она открывает новое окно модальным образом. Что это значит? А то что пока ты не расправишься с эти окном, то есть пока ты его не закроешь, к первому окну ты не вернешься. Как не пытайся.
Для примера, вспомни диалог сохранения или открытия файлов в многих программах. Ну так вот Щелкнул ты по кнопке окрыть, выскочило окно, и пока ты не выберешь файл и не скажешь "Окрыть" или "отменя", или закроешь окно "крестиком", к главному окну ты доступа не получишь.
Что лучше - решать тебе. ShowModal, обычно используется как раз в диалоговых окнах, когда нужно узнать что нажал пользователь, тогда удобна конструкция вида
Код

...
  case FormDialog.ShowModal Of
    mrOk: // пользователь нажал на Ok
    mrCancel: // на отмену
    mrNo: // на нет
    Else
       //закрыл окно другим способом
...

Естестно, в твоем диалоге в этом случае должны быть эти кнопки, я имею ввиду Ok, Cancel,Yes, No и др.
Добавлено @ 23:45
Млин, какие вы все быстрые...


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
FRAGNATIC
Дата 21.3.2005, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



Цитата
Естестно, в твоем диалоге в этом случае должны быть эти кнопки, я имею ввиду Ok, Cancel,Yes, No и др

добавлю что кнопки должны быть с модальным результатом а это тип TBitBtn у каторой в свойстве modalresult указываеш ок или но и так далее)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0902 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.