|
Вопрос # 3 670/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Есть некая программа с формой,
можно ли как нибудь запускать её коммандной строкой, без отображения формы на экране?
 |
Вопрос задал: slava863 (статус: Посетитель)
Вопрос отправлен: 20 января 2010, 16:23
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, slava863!
Все достаточно просто. открываем dpr файл и находим там три строки вида
Application.Initialize;
Application.CreateForm(...);
Application.Run;
эти строки создают и запускают окно.
мы же делаем так - завернем их в условие.
if (paramCount >=1) and (paramstr(1) = 'console') then //запустили с параметром console
begin
AllocateConsole();//включим консоль.
writeln('write to console!');
//делаем другую работу.
FreeConsole();
end
else begin
//тут старые 3 (а может и больше их) строки с Application.
end;
end;
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 21 января 2010, 15:38
Оценка за ответ: 5
Комментарий к оценке: Спасибо
|
Мини-форум вопроса
Всего сообщений: 26; последнее сообщение — 28 января 2010, 17:55; участников в обсуждении: 5.
Страницы: [1] [2] [Следующая »]
|
Жикльор (статус: 5-ый класс), 20 января 2010, 17:21 [#1]:
Просто сделай ее консольной.
File - New - Other - Console Application
И будет выводится не форма а команд. строка
Если бы строители строили дома так, как программисты пишут программы, то первый же дятел уничтожил бы цивилизацию.
|
|
Вадим К (статус: Академик), 20 января 2010, 17:28 [#2]:
Или хочется, что бы можно было запускать и как программу с формой, так и как консоль?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 20 января 2010, 19:59 [#3]:
Цитата (slava863):
Есть некая программа с формой
Чья программа? Исходники есть?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
vlsavkin (статус: 2-ой класс), 21 января 2010, 02:08 [#4]:
Есть программы Photoshop и MediaPlayer Classic как их запустить в консольном режиме?
slava863, уточните вопрос, пожалуйста
|
|
slava863 (статус: Посетитель), 21 января 2010, 15:13 [#5]:
программа поиска и замены файлов
Я напишу поддержку коммандной строки, надо что бы можно было запускать её с коммандной строки (консольном или фоновом режиме), короче она не должна отображаться на экране
|
|
slava863 (статус: Посетитель), 21 января 2010, 15:14 [#6]:
Хочу запускать её и с формой и как консоль
|
|
min@y™ (статус: Доктор наук), 21 января 2010, 15:21 [#7]:
Так запускать надо как КОНСОЛЬНОЕ приложение или просто как оконное приложение с невидимой главной формой?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
vlsavkin (статус: 2-ой класс), 21 января 2010, 15:45 [#8]:
Как-нибудь так не пойдет? Ключ -r, с которым запускается программа переключает режим
program Project1;
{$APPTYPE CONSOLE}
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
if paramstr(1)='-r' then
begin
FreeConsole;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end else
begin
writeln('jggiu');
readln;
end;
end.
|
|
slava863 (статус: Посетитель), 22 января 2010, 15:04 [#9]:
Можно с невидемой главной формой.
|
|
vlsavkin (статус: 2-ой класс), 22 января 2010, 15:10 [#10]:
slava863, тогда в исходном коде проекта добавьте строчку
application.ShowMainForm:=false;
|
|
slava863 (статус: Посетитель), 22 января 2010, 15:10 [#11]:
vlsavkin спасибо идея хорошая но немного не то, так видемо придётся пол программы переписывать.
|
|
slava863 (статус: Посетитель), 22 января 2010, 15:26 [#12]:
Всем спасибо за участие.
Я узнал информации даже больше чем хотел.
|
|
slava863 (статус: Посетитель), 22 января 2010, 16:15 [#13]:
Вопрос на ту же тему, ниже код.
В Console.pas поиск из консоли, а в Search_and_replacement.pas на форме, как сделать чтобы по ключу в коммандной строке выполнялся код из Console.pas (в консоле),а если нет ключа то по Search_and_replacement.pas форме
program Search_and_replacement1;
uses
Forms,
Search_and_replacement in 'Search_and_replacement.pas' {Form1},
Console in 'Console.pas';
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
// Application.ShowMainForm:=false;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
|
|
vlsavkin (статус: 2-ой класс), 23 января 2010, 12:30 [#14]:
slava863, все зависит от того как выглядит console.pas, может там одна главная процедура ИскатьФайлы, которую и надо будет вызвать.
|
|
slava863 (статус: Посетитель), 27 января 2010, 11:09 [#15]:
Вадим К:
Я решил воспользоваться твоим предложением,
но при компиляции вылазит ошибка
[DCC Error] Search_and_replacement.dpr(13): E2003 Undeclared identifier: 'AllocateConsole'
program Search_and_replacement;
uses
Forms, SysUtils,
Search_and_replacement_ in 'Search_and_replacement_.pas' {Form1},
Console1 in 'Console1.pas';
begin
if (paramCount >=1) then //запустили с параметром console
begin
AllocateConsole();//включим консоль.
writeln('write to console!');
FreeConsole();
end
else begin
{$R *.res}
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
|
|
Вадим К (статус: Академик), 27 января 2010, 11:23 [#16]:
Я давно не писал на делфи. если память не изменяет, то эта процедура называется AllocConsole;
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 27 января 2010, 11:27 [#17]:
Цитата (slava863):
[DCC Error] Search_and_replacement.dpr(13): E2003 Undeclared identifier: 'AllocateConsole'
Замени на AllocConsole().
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
slava863 (статус: Посетитель), 27 января 2010, 11:57 [#18]:
[DCC Error] Search_and_replacement.dpr(13): E2003 Undeclared identifier: 'AllocConsole'
[DCC Error] Search_and_replacement.dpr(16): E2003 Undeclared identifier: 'FreeConsole'
|
|
Вадим К (статус: Академик), 27 января 2010, 12:29 [#19]:
вверху, в список uses надо добавить модуль windows
Галочка "подтверждения прочтения" - вселенское зло.
|
|
slava863 (статус: Посетитель), 27 января 2010, 12:42 [#20]:
Спасибо.
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|