Глобальная переменная
Модераторы: m0p3e, edward_K, Модераторы
Глобальная переменная
Как объявить глобальную переменную уровня проекта (без привязки к конкретному фейсу), чтобы была видимость из разных интерфейсов, с возможностью изменения значения этой переменной из этих фейсов. При этом переменную нужно еще предварительно инициализировать (в каком месте это сделать и как). Заранее спасибо!
Вот один из моих prj-файлов:
Код: Выделить всё
var
MarkMK : longint;
#include C:\Forms\TPP\Marsh.vpp
#make 'C:\Forms\TPP\MarshCard.rtf'
#make 'C:\Forms\TPP\MarshOboz.vip'
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
например так
#include CreateTune.vih
#ifdef ComponentVersion
#component "F_USERREPORT"
#end
Handler with replace M_TranspTest_DateModifyTune on ExtensionPoint
epDateModifyTuneEx (TS : ObjStartCreateTuneEx)
Action
{
TS.SetLastDateModTuneComp('#__COMPONENT__', 29, 03, 2008);
Result := true;
}
Handler with replace M_TranspTest_CreateTune on extensionPoint
epCreateTuneComponent (TR: ObjCreateTune) [220]
Action
{
Result := true;
TR.SetComponent('#__COMPONENT__');
TR.SetNextNumberTune(30000); //
TR.SetParent('RARS_TRANSP')
TR.AddTuneU('RARS_TRANSP.FILTR_PODR','наименование', ftList, '0', '', 'AvtoNastroikaPravaDostupa');
TR.AddList(0, 'да');
TR.AddList(1, 'нет');
}
#include CreateTune.vih
#ifdef ComponentVersion
#component "F_USERREPORT"
#end
Handler with replace M_TranspTest_DateModifyTune on ExtensionPoint
epDateModifyTuneEx (TS : ObjStartCreateTuneEx)
Action
{
TS.SetLastDateModTuneComp('#__COMPONENT__', 29, 03, 2008);
Result := true;
}
Handler with replace M_TranspTest_CreateTune on extensionPoint
epCreateTuneComponent (TR: ObjCreateTune) [220]
Action
{
Result := true;
TR.SetComponent('#__COMPONENT__');
TR.SetNextNumberTune(30000); //
TR.SetParent('RARS_TRANSP')
TR.AddTuneU('RARS_TRANSP.FILTR_PODR','наименование', ftList, '0', '', 'AvtoNastroikaPravaDostupa');
TR.AddList(0, 'да');
TR.AddList(1, 'нет');
}
Всем привет! Столкнулся таки с настройками. Сейчас мне нужна настройка, в которой я буду хранить путь к файлам -> шаблонам отчетов. Соответственно эту настройку нужно уметь читать из разных фейсов. Вопросы:
1) есть ли стандартный способ задания такой настройки -> скажем чтобы я через Галактику мог просматривать и соотвественно править эту настройку, то что привел edward_K насколько я понимаю - программное создание, хотелось бы средствами самой Галки
2) как программно быстрей и легче всего вытянуть значение настройки в своем фейсе -> я так понимаю как-то ч/з GetStringParameter, если можно пример кода
Заранее спасибо!
1) есть ли стандартный способ задания такой настройки -> скажем чтобы я через Галактику мог просматривать и соотвественно править эту настройку, то что привел edward_K насколько я понимаю - программное создание, хотелось бы средствами самой Галки
2) как программно быстрей и легче всего вытянуть значение настройки в своем фейсе -> я так понимаю как-то ч/з GetStringParameter, если можно пример кода
Заранее спасибо!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
если сделать как я писал, то настройку потом можно задавать из обычных настроек. Для пути только надо указать ftstring ну и AddList не нужно.
2 путь - задать путь где либо в неиспользуемых настройках из конфигуратор-параметры( ну или напрмер на пат отчеты и там сделать подпапку). Свою там создать нельзя. 3 - самый простой - завязаться на exe. Помимо упомянутой могет пригодиться TranslatePath, например TranslatePath('%ClientRoot%') или TranslatePath('%StartPath%') - в 3 звенке это разные значения. По ctrl+F4 попробуйте.
2 путь - задать путь где либо в неиспользуемых настройках из конфигуратор-параметры( ну или напрмер на пат отчеты и там сделать подпапку). Свою там создать нельзя. 3 - самый простой - завязаться на exe. Помимо упомянутой могет пригодиться TranslatePath, например TranslatePath('%ClientRoot%') или TranslatePath('%StartPath%') - в 3 звенке это разные значения. По ctrl+F4 попробуйте.
edward_K
Спасибо!!! Но можно по шагам?
1)
не слетит ли настройка с патчами? будет ли она системной, т.е. доступной всем юзерам?
2)
3)
Спасибо!!! Но можно по шагам?
1)
т.е. мне нужно прогнать предложенный вами код один раз и настройка появится в настройках пользователя? А как ее там найти, по какому пути?если сделать как я писал, то настройку потом можно задавать из обычных настроек. Для пути только надо указать ftstring ну и AddList не нужно.
не слетит ли настройка с патчами? будет ли она системной, т.е. доступной всем юзерам?
2)
как вычитать этот параметр потом? Ну и настройка ведь будет для меня, а как ее на всех юзеров распространить? Про пат отчеты вообще не понял, вы пишите -> создать подпапку и в то же время свою создать нельзя... Какой параметр отвечает за пат? Как мне его потом получить программно?путь - задать путь где либо в неиспользуемых настройках из конфигуратор-параметры( ну или напрмер на пат отчеты и там сделать подпапку). Свою там создать нельзя.
3)
на exe завязываться не хочется. Придется еще дополнительно определять в какой среде работаем, а такого способа я пока не знаю, да и просто душа не лежит[/quote]самый простой - завязаться на exe. Помимо упомянутой могет пригодиться TranslatePath, например TranslatePath('%ClientRoot%') или TranslatePath('%StartPath%') - в 3 звенке это разные значения. По ctrl+F4 попробуйте
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
1. он исполниться в автомате при старте галки под админом или при проверке реестра настроек. Найдете там где пропишите - пример приведен для автотранспорта - TR.SetParent('RARS_TRANSP')
2. там смотреть, а вносить правки в startup.cfg, как вычитать вы уже сами написали . getStringParameter('Files','OutputFilesDirectory',0)
3. завяжитесь на pat. Зато в этом случае вы будете уверены, что шаблон из этого exe совместим с подключенным ресом.
2. там смотреть, а вносить правки в startup.cfg, как вычитать вы уже сами написали . getStringParameter('Files','OutputFilesDirectory',0)
3. завяжитесь на pat. Зато в этом случае вы будете уверены, что шаблон из этого exe совместим с подключенным ресом.