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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2008, 11:10   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 661
Восклицание Проверка событий в onCreate

Я задавал этот вопрос но хочу задать немного по другому,
Программа запускается с автозапуска,минимизируется в трее и оттуда работает,в OnCreate обрабатываю две процедуры:
OnlyOne;{Процедура для проверки запуска второй копии}
Application.ShowMainForm:=false;
Программа работает нормально,но если запустить вторую копию то выскакивает ошибка приложения
Ошибка наверное из за того что два события работают в OnCreate.Подскажите можно ли эти события обрабатывать как то по другому
Меня моя процедура для проверки второй копии устраивает
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 12.06.2008, 11:15   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

А ты это делай в проджекте
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin
  Application.Initialize;
  //типа тут.....
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 12.06.2008, 11:22   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ошибка наверное из за того что два события работают в OnCreate
Ошибки возникают только от кривых ручек. Тут либо твоя OnlyOne неверно работает либо... код в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.06.2008, 11:31   #4
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 661
По умолчанию

Код:
Procedure TForm1.OnlyOne;
Var
HMutex: Integer;
Begin
HMutex:=CreateMutex(Nil, TRUE, '5');
If GetLastError <> 0 Then
Begin
ReleaseMutex(HMutex);
Halt;
End;
End;
Если я что нибудь одно убираю из OnCreate то ни каких ошибок нет
За частые поиски был забанен во всех известных
поисковых системах!

Последний раз редактировалось Stilet; 12.06.2008 в 13:15.
Михаил Юрьевич вне форума Ответить с цитированием
Старый 12.06.2008, 13:02   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Я вот так смотрю, есть ли копия программы:
Код:
program Proj;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas'; {Form1}

{$R Proj.res}
Var HM :THandle;

function Check: boolean;
begin
  HM:=OpenMutex(MUTEX_ALL_ACCESS, false, 'Proj');
  Result:=(HM<>0);
  if HM=0 then HM:=CreateMutex(nil, false, 'Proj');
end;

begin
 If Check then Exit;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
И ошибки не возникают.
Alter вне форума Ответить с цитированием
Старый 12.06.2008, 13:17   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Михаил Юрьевич
Alter подал хороший пример. Замечу только то что еще можно вместо Мютиксов Атомы применить та же чихарда только с другим названием (в данном случчае).
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват событий клавиатуры CODeRUS Win Api 8 06.07.2009 11:08
обраьотка событий Geddar PHP 5 04.07.2008 23:53
обработчик событий ben95 Помощь студентам 5 28.01.2008 17:46
Ловля событий (hooks) Domoffou Win Api 1 06.01.2008 15:48