![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как написать программу без формы. [D5, D6, Win95/98, WinXP]
programmerts © (2002-07-10 20:12:00)У меня возникла такая ситуация, когда нужно написать программу, без формы, типа чтобы можно было писать как в Turbo PascAL. Желательно, чтобы место поменьше забирало приложение.
Каким образом мне это можно сделать?
Заранее спасибо!
unfam (2002-07-12 04:21:00) [1]Вы правы. Я ж без претензий - просто мысли и свои исследования.
Например, в добавление к мною уже написанному: в uses нужно добавить ActiveX (SysUtils можно убрать) и первой строчкой написать CoInitialize(Nil). Возможно, кому-то будет полезно.
Юрий Зотов (2002-07-12 04:01:00) [2]> Оказалось без Application.Initialize паровоз никуда не едет.
А это смотря какой паровоз. Например, вот такой очень даже едет (и не только едет, но еще и громко гудит):
uses
Windows;
begin
while True do MessageBeep(0)
end.
А если Вам нужен другой паровоз, то ведь я давал еще и второй совет: "допишите к этому скелету все, что нужно ".
Вот в этом "все, что нужно" весь паровоз-то и сидит. А уж что он там потребует - это от задачи зависит. Например, он может потребовать окон, а тогда весь смысл затеи как-то исчезает. А может, он систему уравнений решает - и тогда ему кроме математики вообще ничего не требуется.
Паровозы - они ведь РАЗНЫЕ. И подходить к ним надо ПО-РАЗНОМУ.
unfam (2002-07-12 03:28:00) [3]Просто мысли вслух (вспись). Последовал совету Юрия Зотова -"begin end.", импортировал библитеку типов и решил, что обойдусь одним "uses DTS_TLB". Наивный. Оказалось без Application.Initialize паровоз никуда не едет. Полез посмотреть, что же такое делает - "if InitProc<>nil then TProcedure(InitProc)". При этом: InitProc=pointer, а TProcedure=procedure, но попытка самостоятельно это реализовать в своей программе приводило к выводу "Runtime Error 216...".
Пришлось в uses добавлять SysUtils и все заработало.
Юрий Зотов (2002-07-12 01:16:00) [4]Если не жалко беднягу CPU, то можно написать и while true do;
Но лучше написать Service Application. В Delphi и готовая поддержка для этого имеется.
Но кто сказал, что требуется именно резидент? В вопросе это как-то не звучало.
Ascan_ (2002-07-11 11:01:00) [5]А чтобы остаться резидентом написать
while true do;?
Юрий Зотов (2002-07-11 01:03:00) [6]А зачем консоль? Может, и она не нужна.
Запустите Notepad. В нем напишите 2 строки:
begin
end.
Сохраните этот текст в файл с любым именем и расширением dpr.
Все, программа готова. Это абсолютно минимальная, но вполне рабочая программа - что для Turbo Pascal, что для Delphi. Теперь можете загружать этот dpr в Delphi, он вполне успешно скомпилируется и даже выполнится - ничего не сделав, конечно. А чтобы он что-то делал, допишите к этому скелету все, что нужно.
T2 (2002-07-10 22:06:00) [7]NEW\CONSOLE APPLICATION
Anatoly Podgoretsky (2002-07-10 21:52:00) [8]Просто не создавай
program Xl
uses
Windows
begin
WriteLn("Hello Worls");
ReadLn;
end;
Pat (2002-07-10 21:00:00) [9]http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988619531&n=16