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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2011, 17:59   #1
Fog
Пользователь
 
Аватар для Fog
 
Регистрация: 29.08.2010
Сообщений: 76
Вопрос Где прописать процедуру загрузки опций приложения

Где в приложении на Delphi следует загружать опции из файла options.ini т.е
в каком событии формы? По началу я решил сделать это из FormCreate
примерно так:
Код:
MainForm.FormCreate(Owner:TComponent);
begin
LoadOptions;
end.
Procedure LoadOptions;
begin
//здесь загружаю свои настройки
end.
Так не получилось компилятор пишет что Procedure 'LoadOptions' not defined
почему не определена не понял? Видимо инициализировать приложение из FormCreate нельзя потому как из других мест процедура LoadOptions вызывается нормально а из FormCreate не вызывается. Скажите как вы обычно инициализируете свои приложения при старте (где?).
Fog вне форума Ответить с цитированием
Старый 10.06.2011, 18:01   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Надо просто эту процедуру дописать туда где все процедуры обработчики компонентов. Там где TForm1 = Class(TForm)
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 10.06.2011, 18:19   #3
Fog
Пользователь
 
Аватар для Fog
 
Регистрация: 29.08.2010
Сообщений: 76
По умолчанию

Вы имеете в виду что процедуру LoadOptions надо методом класса TForm1 сделать?
У меня при этом возникают проблемы созданием обектов внутри процедуры
LoadOptions. Привожу свой код:
Код:
MainForm.FormCreate(Owner:TComponent);
var
hMutex:THandle;
begin
hMutex:=CreateMutex(nil,true,"APPLICATION_MUTEX_MX"); //Один запуск нужен
if GetLastError=ERROR_ALREADY_EXISTS then
  begin
  MessageBox(0,'Уже одна копия запущена','Внимание',MB_OK);
  CloseHandle(hMutex);
  Application.Terminate;
  end;
LoadOptions; //Вот тут и вызываю загрузку опций
end.
//------------------------------
Procedure LoadOptions;
begin
//здесь загружаю свои настройки
end.
Так вот если теперь сделать LoadOptions методом класса TForm1 приложение больше не запускается - мол одна копия уже активна не смотря на то что ни одна копия приложения вообще не запущена(а если не сделать методом класса TForm1 такой прблемы не возникает). Может кто знает что делать? Плиз подскажите.
Fog вне форума Ответить с цитированием
Старый 10.06.2011, 18:27   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если уж не делать LoadOptions методом формы, то разместите ее перед FormCreate.
Цитата:
Так вот если теперь сделать LoadOptions методом класса TForm1 приложение больше не запускается - мол одна копия уже активна не смотря на то что ни одна копия приложения вообще не запущена(а если не сделать методом класса TForm1 такой прблемы не возникает). Может кто знает что делать? Плиз подскажите.
Явно чего-то накуралесили
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.06.2011, 18:33   #5
Fog
Пользователь
 
Аватар для Fog
 
Регистрация: 29.08.2010
Сообщений: 76
По умолчанию

Цитата:
Явно чего-то накуралесили
Думаю вы правы так как проблема возникает только когда я чего то Create - чу ))) т.е создаю какой нибудь обект внутри процедуры загрузки например: List.Create почему то при этом еще раз FormCreate вызывается (да... да знаю дурацкая проблема у меня). А если все Create - ы витащить из процедуры все идет нормально - не вызывается FormCreate дважды.
Fog вне форума Ответить с цитированием
Старый 10.06.2011, 18:39   #6
Fog
Пользователь
 
Аватар для Fog
 
Регистрация: 29.08.2010
Сообщений: 76
По умолчанию

Народ разобрался. Процедуру загрузки настроек поместил в Form1.Show и все заработало. Проблему с Form.Create так и не решил. Ну и "nop" с ним.
Fog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где в памяти храняться данные моего приложения? FarStar Visual C++ 2 02.06.2011 09:59
Где прописать условиэ для ОСТАТКА (залишок) незнайка315 Microsoft Office Access 11 30.05.2011 12:20
Замена опций Дикий JavaScript, Ajax 4 22.07.2010 19:02
где найти паскаль-процедуру для метода Гира натка:) Помощь студентам 3 01.02.2010 13:27
Где и как прописать функцию а имменно subbota Помощь студентам 1 28.07.2009 20:47