Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 211

Раздел: Delphi » Прочее
/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
хателос бы узнат можна ли каким нибут образом управление своей программой через cmd ,например primer.exe/1
при етои команде у меня в программе нажмот кнопку 1

gast Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: gast (статус: Посетитель)
Вопрос отправлен: 20 сентября 2009, 16:51
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, gast!
ParamStr(N) - возвращает N-тый параметр, указанный в команжной строке (параметры разделяются пробелами).

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 20 сентября 2009, 17:12

Ответ #2. Отвечает эксперт: Егор

Здравствуйте, gast!
Делаем так - создаём новую форму, ставим на неё одну кнопку. Делаем двойной щелчок на кнопке - создастся обработчик нажатия на кнопку - в нём прописываем нужный код. Для примера просто сделаем вывод сообщения "Нажата кнопка". Далее - делаем двойной щелчок по форме - появится обработчик создания формы onCreateForm. В этом обработчике прописываем код, который будет перебирать все параметры, переданные программе (всего количество параметров можно получить, используя функцию ParamCount). Если очередной параметр совпадает с "/1", нажмём кнопку.
Если теперь запустить приложение, то при запуске просто будет выдана форма с нашей кнопкой.
Если же запустить приложение с параметром /1, то будет выдано сообщение "Нажата кнопка".
Код в приложении.

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.  
  4. end;
  5.  
  6. procedure TForm1.FormCreate(Sender: TObject);
  7. var
  8. i : integer;
  9. begin
  10. for i:=1 to ParamCount do
  11. if ParamStr(i)='/1' then Button1.Click;
  12. end;
  13.  
  14. end.


Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 20 сентября 2009, 18:44
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 20 сентября 2009, 20:00; участников в обсуждении: 3.
gast

gast (статус: Посетитель), 20 сентября 2009, 17:50 [#1]:

Здравствуйте,Бубырь Александр Николаевич
а можно ли немнога потачнее или пример
Егор

Егор (статус: 10-ый класс), 20 сентября 2009, 18:46 [#2]:

кхм... в ответе опечатка - обработчик не onCreateForm, а FormCreate - но это не суть важно :)

в дельфи (7-ой версии) очень хорошая помощь - посмотрите там статьи про функции ParamCount и ParamStr - очень подробно всё расписано, пример приведён хороший.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
ANBsoft

ANBsoft (статус: Студент), 20 сентября 2009, 19:42 [#3]:

Var N:Integer;
Begin
for N:=1 to ParamCount do begin //перебираем все параметры
if ParamStr(N)='/1' then begin
//делаем здесь все что нужно, например
Button1Click(Nil); //Вызываем нажатие кнопки
end;
end;
Егор

Егор (статус: 10-ый класс), 20 сентября 2009, 19:52 [#4]:

зачем было дублировать мой код? только ради комментариев?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
ANBsoft

ANBsoft (статус: Студент), 20 сентября 2009, 20:00 [#5]:

Меня попросили написать поточнее или пример, я написал.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.02 сек.