Главная страница
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.013 c
4-81512
z_1
2002-05-20 15:52
2002.07.25
Хендл активного окна


3-81125
DKalinin
2002-07-02 15:31
2002.07.25
что это? - Rowset position cannot be restarted


1-81352
Macuca
2002-07-13 15:14
2002.07.25
Массив элементов управления


3-81198
Gunner
2002-07-04 20:23
2002.07.25
Кто может перечислить типы полей для MsAccess 2000


14-81420
OdinokiyVolk
2002-06-26 12:28
2002.07.25
InstallShield Express for Delphi 6