Главная страница
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.02 c
3-81204
Filat
2002-07-04 09:16
2002.07.25
Сделал Create Table, не погу подключить програмно. Help!


1-81260
CA
2002-07-13 07:53
2002.07.25
матем


14-81416
Феликс
2002-06-26 23:13
2002.07.25
Бразилия-Германия! Ваши предположения.


1-81214
Andy BitOff
2002-07-04 19:24
2002.07.25
Незнаю как сделать!!!!


3-81181
alexvan
2002-07-04 11:10
2002.07.25
Не могу вывести в DBComboBox весь список