Страница 1 из 2

консольная программа в windows окне

СообщениеДобавлено: 19.12.2010 15:13:16
AlexGordon
сабж. Возможно ли это?

Re: консольная программа в windows окне

СообщениеДобавлено: 19.12.2010 19:40:51
Vadim
AlexGordon писал(а):сабж. Возможно ли это?

Краткость - не всегда сестра таланта. Чаще всего краткость - причина непонимания. ;)
В модуль WinCRT не пробовали заглядывать?

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 13:59:49
AlexGordon
Vadim, я пробовал его подключать, но программа все равно выполнялась в dos'овском окне.

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 14:20:40
Vadim
Да, действительно... А Turbo Pascal с этим модулем создавал виндовое окно. :)

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 14:28:18
AlexGordon
Кинте мне пожалуйста этот модуль для турбо паскаля, а то я никак не мог его найти

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 14:48:58
Vadim
AlexGordon писал(а):Кинте мне пожалуйста этот модуль для турбо паскаля, а то я никак не мог его найти

Нельзя. Он, наверное, не будет работать.
Вот Вам, лучше, пример, который точно работает:
Код: Выделить всё
Program wc1;
Uses windows;

Var
  Hndl: THandle;

Begin
  AllocConsole;
  Hndl:=GetStdHandle(STD_OUTPUT_HANDLE);
 
  SetConsoleTitle('Типа это заголовок окна...');
  SetConsoleTextAttribute(Hndl, FOREGROUND_BLUE or
        BACKGROUND_BLUE or BACKGROUND_GREEN or BACKGROUND_RED or BACKGROUND_INTENSITY);
 
  Write('Хи-хи');
  ReadLn;
 
  FreeConsole;
End.

Запускать откомпилированную программу можно только из Проводника, иначе вторая консоль просто не создастся.

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 20:03:56
AlexGordon
Нет, не работает, все то же досовское окно

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 20:46:51
Vadim
AlexGordon
Во-первых, работает. Раз Вы видите окно, значит работает. Во-вторых - консольное окно - это самое настоящее виндовое окно. Его отличие от традиционного - оно не определяется вручную и по умолчанию имеет чёрную окраску. Если Вы ожидали чего-то гиперфантастического, то свои ожидания, по поводу вида окна, Вы тут не изложили. ;)

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 20:57:13
AlexGordon
Vadim, но согласитесь, во всем этом коде особого смысла кроме смены заголовка окна нет. Консольная программа и так генерируется паскалем. А мне нужно именно формовое окно!

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 21:02:43
Vadim
AlexGordon писал(а):во всем этом коде особого смысла кроме смены заголовка окна нет.

Вы можете менять цвет текста, можете менять цвет фона. Можете на участке с готовым текстом, не меняя его, поменять цвет фона. Можете и наоборот.
Заголовок - это просто пример.
AlexGordon писал(а):А мне нужно именно формовое окно!

Это какое?

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 21:16:31
AlexGordon
Ну вы когда в лазарусе работаете, нажимаете New Form, вот такое окно мне и нужно

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 21:41:45
Nik
Если нужна 100% схожесть с обычным GUI Windows, то можно извратиться и сделать собственную консоль: приём команд и вывод результатов в Memo.

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 21:51:51
AlexGordon
Nik, ну это сложновато, должны же быть пути проще)

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 22:25:33
Brainenjii
создайте обычное лазаруское оконное приложение, которое в фоне запустит невидимое консольное... Или не вариант? ^_^

Re: консольная программа в windows окне

СообщениеДобавлено: 20.12.2010 22:53:42
Nik
2AlexGordon
Сходу могу только один простой путь предложить: написать прогу в Borland C++ 5.0 - там чудная виндовая консоль :)

А зачем вообще нужен сабж? Может не консоль нужна, а просто приложение без GUI (и LCL)?