Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Меню, Запуск программы с параметрами 
V
    Опции темы
RTV
Дата 20.4.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 11.4.2006
Где: Днепропетровск

Репутация: нет
Всего: нет



Добрый вечер! подскажите пожайлуста каким образом можно запустить программу с параметром, так что бы в меню появлялся дополнительное меню.
Например
Выполняем программу Zakaz.exe -S или - setup, ну что то типа того. При открытии появлятся скрытое меню "Особые установки". и т.д. если можно покажите пример.  smile  
PM MAIL   Вверх
_hunter
Дата 20.4.2006, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



ParamStr(1) (или второй -- не помню я ваших (делфийских) приколов) и смотри -S он или нет (или по всем пройдись (ParamCount()) в поисках нужного
 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
x77
Дата 20.4.2006, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



меню проектируется как обычно и целиком. далее, у меню "Особые установки" будет некий итем, на котором всё это меню висит. у этого итема есть удивительное свойство Visible. знающие люди говорят, что его можно попробовать поставить в FALSE smile 

а проверку - как сказал _hunter. в Form1.OnCreate прописать что-то типа 

MySecretItem.Visible := (AnsiUpperCase (ParamsStr (1)) = '-S'); 


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Sunvas
Дата 21.4.2006, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



А если ты зачочешь, чтобы параметров было много, то тогда придется еще фор заводить от 1 до paramcount, и в нем обрабатывать paramstr(n) для каждого параметра. 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
AKN
Дата 21.4.2006, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.11.2005

Репутация: нет
Всего: нет



Все правильно, в ParamStr(1) висит твой параметр в виде строки. Дальше ты можешь проверить его на то, что в параметре действительно указан -s и сделать видимым (нивидимым) некий итем в менюшке или другие действия.
Код

procedure TForm1.FormCreate(Sender: TObject);
var parametr:String;
begin
parametr:=ParamStr(1);
if UpperCase(parametr) = 'S' then //UpperCase() стоит для того, чтобы в качестве параметра понималось 's' и 'S'
  begin
    //  тут ставим итем меню видимым или выполняем другой код. В переменной parametr  висит твой первый по счету параметр
  end
end;
 
PM MAIL   Вверх
RTV
Дата 21.4.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 11.4.2006
Где: Днепропетровск

Репутация: нет
Всего: нет



Делаю так 

  parametr:=ParamStr(1);
    if UpperCase(parametr) = 'as' then
    MainMenu1.Items.Items[4].Visible:=True;   не работает

Делаю так 

  parametr:=ParamStr(1);
    if UpperCase(parametr) = '123' then
    MainMenu1.Items.Items[4].Visible:=True;   работает
Почему??? 
PM MAIL   Вверх
x77
Дата 21.4.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



возможно потому, что UpperCase работает только с 7-ми битной кодировкой. попробуй всё-таки AnsiUpperCase. 


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Демо
Дата 21.4.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(RTV @  21.4.2006,  11:09 Найти цитируемый пост)
if UpperCase(parametr) = 'as' then
    MainMenu1.Items.Items[4].Visible:=True;   не работает


А ты отладчиком пройди. Тогда увидишь, что ты сравниваешь - первую строку, преобразованную в верхний регистр со строкой в нижнем регистре. 


--------------------
    
PM MAIL ICQ Skype   Вверх
x77
Дата 21.4.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



точно smile слона-то я и не заметил. 


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
RTV
Дата 21.4.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 11.4.2006
Где: Днепропетровск

Репутация: нет
Всего: нет



Все работатет с AnsiLowerCase
Всем огромное спасибо.  smile  
PM MAIL   Вверх
Sunvas
Дата 22.4.2006, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(RTV @  21.4.2006,  11:09 Найти цитируемый пост)
 if UpperCase(parametr) = '123' then

Разве цифры имеют регистр (верхний/нижний)? smile  


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.