Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
ВнизКак написать программу без формы. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c