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

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

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

Сообщение AlexGordon »

сабж. Возможно ли это?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

AlexGordon писал(а):сабж. Возможно ли это?

Краткость - не всегда сестра таланта. Чаще всего краткость - причина непонимания. ;)
В модуль WinCRT не пробовали заглядывать?
AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

Сообщение AlexGordon »

Vadim, я пробовал его подключать, но программа все равно выполнялась в dos'овском окне.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Да, действительно... А Turbo Pascal с этим модулем создавал виндовое окно. :)
AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

Сообщение AlexGordon »

Кинте мне пожалуйста этот модуль для турбо паскаля, а то я никак не мог его найти
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение 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.

Запускать откомпилированную программу можно только из Проводника, иначе вторая консоль просто не создастся.
AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

Сообщение AlexGordon »

Нет, не работает, все то же досовское окно
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

AlexGordon
Во-первых, работает. Раз Вы видите окно, значит работает. Во-вторых - консольное окно - это самое настоящее виндовое окно. Его отличие от традиционного - оно не определяется вручную и по умолчанию имеет чёрную окраску. Если Вы ожидали чего-то гиперфантастического, то свои ожидания, по поводу вида окна, Вы тут не изложили. ;)
AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

Сообщение AlexGordon »

Vadim, но согласитесь, во всем этом коде особого смысла кроме смены заголовка окна нет. Консольная программа и так генерируется паскалем. А мне нужно именно формовое окно!
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

AlexGordon писал(а):во всем этом коде особого смысла кроме смены заголовка окна нет.

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

Это какое?
AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

Сообщение AlexGordon »

Ну вы когда в лазарусе работаете, нажимаете New Form, вот такое окно мне и нужно
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

Если нужна 100% схожесть с обычным GUI Windows, то можно извратиться и сделать собственную консоль: приём команд и вывод результатов в Memo.
AlexGordon
новенький
Сообщения: 28
Зарегистрирован: 07.12.2010 20:02:15

Сообщение AlexGordon »

Nik, ну это сложновато, должны же быть пути проще)
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

создайте обычное лазаруское оконное приложение, которое в фоне запустит невидимое консольное... Или не вариант? ^_^
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

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

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