Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

Как написать программу без формы.   Найти похожие ветки 

 
programmerts   (2002-07-10 20:12) [0]

У меня возникла такая ситуация, когда нужно написать программу, без формы, типа чтобы можно было писать как в Turbo PascAL. Желательно, чтобы место поменьше забирало приложение.
Каким образом мне это можно сделать?
Заранее спасибо!


 
Pat ©   (2002-07-10 21:00) [1]

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988619531&n=16


 
Anatoly Podgoretsky ©   (2002-07-10 21:52) [2]

Просто не создавай

program Xl
uses
Windows
begin
WriteLn("Hello Worls");
ReadLn;
end;


 
T2 ©   (2002-07-10 22:06) [3]

NEW\CONSOLE APPLICATION


 
Юрий Зотов ©   (2002-07-11 01:03) [4]

А зачем консоль? Может, и она не нужна.

Запустите Notepad. В нем напишите 2 строки:

begin
end.

Сохраните этот текст в файл с любым именем и расширением dpr.

Все, программа готова. Это абсолютно минимальная, но вполне рабочая программа - что для Turbo Pascal, что для Delphi. Теперь можете загружать этот dpr в Delphi, он вполне успешно скомпилируется и даже выполнится - ничего не сделав, конечно. А чтобы он что-то делал, допишите к этому скелету все, что нужно.


 
Ascan_   (2002-07-11 11:01) [5]

А чтобы остаться резидентом написать while true do; ?


 
Юрий Зотов ©   (2002-07-12 01:16) [6]

Если не жалко беднягу CPU, то можно написать и while true do;
Но лучше написать Service Application. В Delphi и готовая поддержка для этого имеется.

Но кто сказал, что требуется именно резидент? В вопросе это как-то не звучало.


 
unfam ©   (2002-07-12 03:28) [7]

Просто мысли вслух (вспись). Последовал совету Юрия Зотова -"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 04:01) [8]

> Оказалось без Application.Initialize паровоз никуда не едет.

А это смотря какой паровоз. Например, вот такой очень даже едет (и не только едет, но еще и громко гудит):

uses
Windows;
begin
while True do MessageBeep(0)
end.

А если Вам нужен другой паровоз, то ведь я давал еще и второй совет: "допишите к этому скелету все, что нужно ".

Вот в этом "все, что нужно" весь паровоз-то и сидит. А уж что он там потребует - это от задачи зависит. Например, он может потребовать окон, а тогда весь смысл затеи как-то исчезает. А может, он систему уравнений решает - и тогда ему кроме математики вообще ничего не требуется.

Паровозы - они ведь РАЗНЫЕ. И подходить к ним надо ПО-РАЗНОМУ.


 
unfam ©   (2002-07-12 04:21) [9]

Вы правы. Я ж без претензий - просто мысли и свои исследования.
Например, в добавление к мною уже написанному: в uses нужно добавить ActiveX (SysUtils можно убрать) и первой строчкой написать CoInitialize(Nil). Возможно, кому-то будет полезно.



Страницы: 1 вся ветка

Текущий архив: 2002.07.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
6-81394
chernoruk
2002-05-13 07:53
2002.07.25
Последний раз про IP и GetHostByName


14-81456
elektro
2002-06-28 10:01
2002.07.25
Про байк-шоу


1-81262
V.Turecky
2002-07-14 15:30
2002.07.25
Как можно записать строку, содержащию знак ( )?


1-81218
MARcoDEN
2002-07-14 10:33
2002.07.25
Как вытаскивать определенное значение из HTML страницы


1-81349
olookin
2002-07-13 13:18
2002.07.25
Запись Variant в файл