Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Повторный запуск приложения


Beton ©   (2004-07-07 09:52:00) 

Часто бывает, что приложение после старта не сразу отображает главную форму, а пользователь, думая, что программа не запустилась, запускает ещё один(или сто, есть такие придурки) экземпляр приложения. Подскажите как этого избежать.


Reindeer Moss Eater   (2004-07-07 14:35:00) [1]

Глупость какая


TUser   (2004-07-07 14:32:00) [2]


> Скажу больше: есть даже программисты-придурки, создающие
> такие приложения.

Они работают в M$ и создают IE и Проводник :)


Reindeer Moss Eater   (2004-07-07 13:46:00) [3]

Часто бывает, что приложение после старта не сразу отображает главную форму,

Обычно в таком приложении 100 форм, на каждой есть экземпляр наследника TDataSet у которого Active := True еще в дизайне выставлено. И обычно все формы создаются автоматически.

... а пользователь, думая, что программа не запустилась, запускает ещё один(или сто, есть такие придурки) ...

Скажу больше: есть даже программисты-придурки, создающие такие приложения.


Beton   (2004-07-07 13:12:00) [4]

Спасибо всем


StarWolf   (2004-07-07 10:23:00) [5]

Ой, извини TUser. Я не заметил твоего сообщения.
2 Beton: мое можно считать как-бы разширением TUser'a.


StarWolf   (2004-07-07 10:22:00) [6]

Ну я бы посоветовал для этого сделать сплеш-форму, которую выдавать перед появлением главного окна. Т.е. первой строчкой в FormCreate показывать эту сплеш (только НЕ в модальном режиме), а последней (или первой в FaorActivate) убирать.


TUser   (2004-07-07 10:03:00) [7]

splash-окошко приделай и путь он не думает.


grom   (2004-07-07 09:57:00) [8]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15


Думкин   (2004-07-07 09:56:00) [9]

1. Для начала посмотреть FAQ - местный.
2. SemaphoreID := CreateSemaphore(nil, 0, 1, PChar('C86AEE87-5875-4ABF-B5A1-1D614A80A826'));
    {чтобы не запускалось приложение повторно}
    if GetLastError = ERROR_ALREADY_EXISTS then Halt(0);

3. Пользователь не должен так думать, думать надо вам, чтобы сделать так чтобы он так не думал. уфф.
4. А ваша программа не должна принципиально 2 раза запускаться или только при запуске?


Наверх

Титульная страница Поиск, карта сайта Написать письмо