Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Дельфи: как из консольного приложения открыть форму?

Автор: schiza
Дата сообщения: 11.12.2004 15:44
нужно чтобы консольное приложение в определенный момент открывало форму, а потом не закрывая ее продолжало работу. создаю проект консольного приложения, добавляю в него форму, пишу Form1.Show запускаю программу а она ничего не обьясняя вылетает помогите пожалуйста
Автор: krast
Дата сообщения: 11.12.2004 16:04
Вообще-то, консольное приложение - это программа, которая не требует графического интерфейса, тип приложения ты и задаешь инструкцией компилятора:
{$APPTYPE CONSOLE}. Когда ты запускаешь программу, то Windows создает окошко для нее в текстовом режиме, к нему же прицепляет Input, Output, поэтому графический интерфейс тут никаким местом не нужен и не будет работать.
Автор: schiza
Дата сообщения: 11.12.2004 16:29
krast
прошу прощения я плохо обьяснил.. мне нужно чтобы в консольном приложении допустим после выбора юзером определенного пункта меню открывалась графическая форма на канву которой выводился бы график функции. проблема в том что я не знаю как вызвать из консоли эту форму, а так то я в дельфи более менее разбираюсь
Автор: UncoNNecteD
Дата сообщения: 11.12.2004 17:01
schiza
Делай неконсольное приложение.
Автор: schiza
Дата сообщения: 11.12.2004 17:21
UncoNNecteD
не вижу смысла

Добавлено
у меня все заработало.

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils,
Unit1 in 'Unit1.pas' {Form1};

begin
Form1 := TForm1.Create ( nil );
Form1.Show;
Form1.Caption := 'a';
readln;
end.
Автор: krast
Дата сообщения: 12.12.2004 12:01
schiza

Цитата:
у меня все заработало.

как сказать. во-первых, идут глюки с прорисовкой формы, во-вторых - у меня она совсем не реагирует ни на что (это и понятно, у нас как минимум траблы возникли с глобальными объектами Application - это совсем не инициализирован получается перед созданием формы, Screen), проблемы с разрушением формы - destroy окна не вызывается при закрытии программы,...

Не, я бы на товем месте прежде чем скрещивать слона с мухой подумал - 'а не фигней ли я маюсь?' Закон жизни: если мне нужны окна и прочие прелести GUI, то я НЕ использую консольное приложение.
Если же тебе нужно какие-то окна в консольном режиме - поищи библиотеки для отрисовки окон с псевдографикой прям в консольном окне.

зы. рассказал бы ты еще что за консольную прогу такую ваяешь что ей надо окно?
Автор: schiza
Дата сообщения: 12.12.2004 22:56
krast
все траблы с прорисовкой и зависанием решаются посредством замены

Код:
Form1.Show;
действия с формой
Автор: ShIvADeSt
Дата сообщения: 13.12.2004 12:46

Цитата:
прога - обычная лаба по алгоритмированию.. в ней возможности графической оболочки только в одном месте нужны - для вывода графика, так что делать ею всю с использованием GUI - большооой геморой. графики прошлых лаб, кстати, вообще выводилась прямо на мировое окно уж лучше "муху со слоном" чем как раньше

Рисуй прямо на рабочий стол, и не будет никаких проблемы, тем более что рисование на десктопе очень старый ФАК, если не найдешь дам кусок кода.
Автор: krast
Дата сообщения: 14.12.2004 09:27
schiza

Цитата:
так что делать ею всю с использованием GUI - большооой геморой

да ну, геморрой, обычно переделать ее не составляет большого труда и времени. ты же не будешь переписывать логику, ты только навесишь интерфейс, зато будет слон со слонихой, мух с мухой
Автор: schiza
Дата сообщения: 14.12.2004 17:31
ShIvADeSt
хм разве десктоп и мировое окно не одно и то же? если нет то пардон, на десктоп прошлые лабы графику и выводили. проблем у меня никаких нету

krast

Цитата:
слон со слонихой, мух с мухой
конечно, это было бы чудесно, но а) у меня нету опыта в написании оконных приложений ( так они назывются? ) б) Главный Принцип программиста: "если программа работает значит она хорошая"
Автор: Sleepwalker
Дата сообщения: 14.12.2004 18:03
schiza
главный принцип: "работает - не трогай!"

кстати, интересно, использовать консоль, чтобы выводить графики на десктоп - это сильно, наверное
Автор: schiza
Дата сообщения: 14.12.2004 18:31
Sleepwalker
для вывода использовался WinAPI а не консоль но впечатления все равно незабываемые
Автор: ShIvADeSt
Дата сообщения: 15.12.2004 02:06

Цитата:
графики прошлых лаб, кстати, вообще выводилась прямо на мировое окно

Ну такого термина раньше не встречал . Как вариант могу предложить следующее, создаешь ДВЕ проги, первая консольная, вторая ГУИ. В первой все обсчитываешь, а потом раз и запускаешь вторую и рисуешь на ней. А вообще, как говориться, лучше день потерять, потом за час долететь Разберись как сделать нормальное ГУИ приложение и рисуй все в нем. Или юзай чистый Turbo Pascal, там все без проблем рисуется
Автор: schiza
Дата сообщения: 17.12.2004 18:48
ShIvADeSt

Цитата:
создаешь ДВЕ проги

зачем этот выпендреж??? моя программа прекрасно работает
Автор: Pinocchio
Дата сообщения: 20.12.2004 15:57
schiza
Могу предложить поэксперементировать. Думаю мысль будет ясна.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
ReadLn;
Application.Run;
end.
Автор: schiza
Дата сообщения: 22.12.2004 23:12
Pinocchio
у меня почему-то не работает, пишет File not found: 'Project1.res'
Автор: ShIvADeSt
Дата сообщения: 23.12.2004 02:01

Цитата:
у меня почему-то не работает, пишет File not found: 'Project1.res'

убери вот эту строку и он ничего писать не будет. Все равно тебе этот ресурс не нужен будет

Цитата:
{$R *.res}

Автор: schiza
Дата сообщения: 25.12.2004 14:19
ShIvADeSt
Pinocchio
спасибо! так намного лучше

Страницы: 1

Предыдущая тема: Платформа Eclipse


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.