![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли создать приложение, в котором нет ни одной формы? [D7, 2000]
Dimon777 © (2005-11-07 12:57:00)Мне необходимо было сделать приложение, в котором нет ни одной формы. Я попробовал использовать Service Application из хранилища объектов, в событии OnCreat которого записал процедуру которая, мне нужна (Вызов диалога открытия файла). В общем добился примерно того что мне было нужно. Но обнаружилась одна проблема: Не удаётся присвоить Application.Title := 'название программы на русском языке', т.е. почему-то не отрабатывает эту строку в файле проекта, как в обычном приложении. выводит вместо этого название exe-файла, как будто этой строки не существует.
Как исправить ситуацию?
Для чего вообще предназначен этот Service Application ?
umbra (2005-11-07 16:03:00) [21]ну, как никак в консольном приложении они отсутствуют :)
Digitman (2005-11-07 16:00:00) [22]
> umbra © (07.11.05 15:55) [18]
ну а формы-то здесь причем ?)
umbra (2005-11-07 15:55:00) [23]
> надеюсь, ты понимаешь, ЧТО эта строчка делает
не уверен, что до конца, но, скорее всего, именно она и говорит компилятору каким будет главное окно программы - GUI или консолью
Digitman (2005-11-07 15:52:00) [24]
> umbra © (07.11.05 15:46) [16]
> то что ниже
это самое "то что ниже" и [13] радикально отличаются одной-единственной. на первый взгляд непреметной строчкой
{$APPTYPE CONSOLE}
надеюсь, ты понимаешь, ЧТО эта строчка делает.
umbra (2005-11-07 15:46:00) [25]2 Digitman © (07.11.05 15:30) [13]
то что ниже - является. ну, может формы там и есть, но увидеть их не удастся
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
end.
2 dimon777 © (07.11.05 15:30) [14]
а где находится этот самыйfrReport?
Digitman (2005-11-07 15:43:00) [26]
> dimon777 © (07.11.05 15:30) [14]
ты несешь несуразицу.
с одной стороны, ты желаешь чтобы приложение не имело ни однойформы.
с другой стороны, ты желаешь чтобы в то время как "говорю frReport.Show" твое приложение визуализировало некую форму (т.е. как минимум одна форма таки присутствует в приложении).
??!!
dimon777 (2005-11-07 15:30:00) [27]
> Digitman © (07.11.05 15:24) [11]
>
> > Как бы существует уже форма просмотра доукумента FastReport
>
>
> вот ее и делай главной
Она недоступна. Это окно видно только при выполнении программы, когда говорю frReport.Show;
Digitman (2005-11-07 15:30:00) [28]
> umbra © (07.11.05 15:26) [12]
> консольное приложение - это прога, в которой нет ни одной
> формы
смелое утверждение.
надо понимать, приложение, код которого выглядит как
program MyProgram;
begin
end.
тоже является консольным ?
umbra (2005-11-07 15:26:00) [29]консольное приложение - это прога, в которой нет ни одной формы. При его запуске появляется окно, похожее на окно cmd.exe. Но, как я понял, форма у вас в проекте все-таки есть. Что мешает сделать ее невидимой, и показать в нужный момент?
Digitman (2005-11-07 15:24:00) [30]
> Как бы существует уже форма просмотра доукумента FastReport
вот ее и делай главной
dimon777 (2005-11-07 15:13:00) [31]Если честно, то я и TService не знаю что такое. Просто случайно нашел в хранилище ServiceApplication и использовал интуитивно.
dimon777 (2005-11-07 15:10:00) [32]
> umbra © (07.11.05 14:46) [6]
> 2 SergP. (07.11.05 13:22) [2]
>
> uses Forms и Application есть. Дествительно, автору вопроса
> нужно скорее консольное приложение, а не сервис
Дурацкий, наверно, вопрос - А что такое "консольное приложение"?
dimon777 (2005-11-07 15:08:00) [33]
> Digitman © (07.11.05 14:42) [5]
> но при чем здесь наличие или отсутствие форм - так и осталось
> великим секретом ...
Попробую пояснить подробнее.
Как бы существует уже форма просмотра доукумента FastReport, я просто ставлю компонент frReport на TService и говорю при OnCreat комп. TService
frReport1.LoadPreparedReport;
frReport1.ShowPreparedReport;
И никаких дополнительных форм мне не надо.
При закрытии окна просмотра документа приложение, использующее TService автоматически закрывается, если же ставить все на форму, то приходится еще и добавлять Application.Terminate; При этом на не очень быстрых машинах заметно что появляется и быстро пропадает главная форма.
Anatoly Podgoretsky (2005-11-07 14:46:00) [34]Dimon777 © (07.11.05 12:57)
Подавляющее большинство программ в мире не имеет форм, формы это особенность Дельфи.
umbra (2005-11-07 14:46:00) [35]2 SergP. (07.11.05 13:22) [2]
uses FormsиApplicationесть. Дествительно, автору вопроса нужно скорее консольное приложение, а не сервис
Digitman (2005-11-07 14:42:00) [36]но при чем здесь наличие или отсутствие форм - так и осталось великим секретом ...
простейшая программаа, реализующая сабж, могла бы выглядеть так :
program Myprog;
begin
PrintReport(ReportFileName);
end.
как видишь, никаких форм здесь нет и в помине
dimon777 (2005-11-07 14:28:00) [37]Нет, это не самоцель. Цель была написать приложение, позоляющее открывать файлы отчетов FastReport (*.frp). Если интересно, ситуация такая - существует локальное приложение, в котором документы формируются с помощью FastReport. Необходимо было написать приложение позволяющее просматривать и распечатывать эти документы где-нибудь на другой машине. С задачей я в основном справился с помощью всего одной короткой процедуры, записанной в обработчике OnCreat компонента TService. Но возникла одна особенность (см.выше), на которую в общем-то можно не обращать внимание, но все таки неприятно.
dimon777 (2005-11-07 14:27:00) [38]Нет, это не самоцель. Цель была написать приложение, позоляющее открывать файлы отчетов FastReport (*.frp). Если интересно, ситуация такая - существует локальное приложение, в котором документы формируются с помощью FastReport. Необходимо было написать приложение позволяющее просматривать и распечатывать эти документы где-нибудь на другой машине. С задачей я в основном справился с помощью всего одной короткой процедуры, записанной в обработчике OnCreat компонента TService. Но возникла одна особенность (см.выше), на которую в общем-то можно не обращать внимание, но все таки неприятно.
SergP. (2005-11-07 13:22:00) [39]Может тебе нужно консольное приложение?
Но там нет объекта Application
Digitman (2005-11-07 13:10:00) [40]
> необходимо было сделать приложение, в котором нет ни одной
> формы
это самоцель ?
> Для чего вообще предназначен этот Service Application ?
уж точно не для того чтобы "приложение не имело ни одной формы"