Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли создать приложение, в котором нет ни одной формы? [D7, 2000]


Страницы:   1 2

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 ?


уж точно не для того чтобы "приложение не имело ни одной формы"


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо