Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 13:51   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Как запустить форму только один раз

Добрый вечер! Думал, что легко найду в Интернете информацию по своему вопросу, а оказалось, что нет. Вопрос собственно в названии темы. Как показать формы только один раз? Например, как в некоторых программах стоит галочка "Не показывать при следующем запуске". Когда пользователь выбирает такую галочку, то при следующем запуске своей программы форма уже не показывается.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.11.2010, 14:02   #2
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

artemavd, а файл настроек? Или реестр?
Храните где-нибудь флаг о "показать" и все, а ,потом в зависимости от состояния этого флага, показывайте/не показывайте форму

Не все надо искать в интернете.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 28.11.2010, 14:31   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Файл настроек? Мм...просто думал, что можно как-то без дополнительных файлов, кодом, программно.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.11.2010, 14:52   #4
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

artemavd, тогда реестр.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 28.11.2010, 15:18   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Мой способ.

Код:
uses SyncObjs;
...
CheckEvent: TEvent;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckEvent:= TEvent.Create( nil, false, true, 'MYPROJECT_CHECKEXIST' );
If CheckEvent.WaitFor(10)<>wrSignaled then
begin
ShowMessage('Сколько можно запускать одну и ту же программу ?');
Application.Terminate;
end else
...
mihali4 вне форума Ответить с цитированием
Старый 28.11.2010, 15:27   #6
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Код:
if FindWindow('TForm1', 'Заголовок окна')<>0 then application.terminate;
А вообще, способов немеряно. Начиная от перебора списка процессов, заканчивая SendMessage.
Bad-XxX вне форума Ответить с цитированием
Старый 28.11.2010, 15:34   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Имеется в виду "сплеш" форма. У неё функа "не показывать при следующем запуске". Либо пишите в реестре, либо в файл. Можете, конечно еще на сервере хранить или делать изменения в самом exe. Так же можно использовать Launcher.exe
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 28.11.2010, 15:38   #8
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

ТС хочет всего лишь показывать/не показывать какую-то дополнительную форму(из разряда подсказок, при запуске основного приложения). Закрывать все приложение ему не надо.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 28.11.2010, 15:44   #9
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

В компонентах JEDI есть крутой компонент JvTipOfDay.
Там же в его опциях есть свойство toShowOnStartUp. Но это свойство все равно где-то сохранять нужно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 28.11.2010, 16:43   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Но это свойство все равно где-то сохранять нужно.
Можно в файл сохранять, а при запуске проги считывать его значение оттуда и присваивать компоненту.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить действие только один раз? dolphin705 Общие вопросы Delphi 5 25.08.2009 09:33
timer срабатывает только один раз! KWN, lnc Общие вопросы Delphi 1 05.03.2009 12:58
Как сделать, чтобы программа запускалась один раз, т.е. повторно запустить нельзя??? Kamikadze_666 Безопасность, Шифрование 7 31.07.2007 08:34
Как высчитывать ячейку только один раз? Человек Microsoft Office Excel 2 20.12.2006 20:57
Как сделать что-бы Таймер срабатывал только один раз? Greg Компоненты Delphi 11 16.12.2006 01:25