Переход с консольного на формы
Здравствуйте! Я новенький, но в С++ старенький, программировал все это время консольные приложения и связь с программой была и есть через ини файлы которые программа удачно генерировала и читала я лишь вносил туда изменения, но при этом мне нужно было программу паузить ...
Решил покончить с этим гемороем и решил самостоятельно перейти на формы с чекбоксами и полями для ввода значений ... Поля научился читать и преобразовывать стр в инт и писать в переменные, так же научился писать события онклик и столкнулся с проблемой: Проблема(Help, Pls); Нужно при нажатии кнопки на форме, очень грубо говоря, чтобы запустился бесконечный цикл как у меня все и есть в консольке или по нажатию кнопки запустилось консольное мое приложение которое закомпилировано в экзешник, и чтобы оно читало данные с формы, но форма собака ВИСНЕТ когда в обработчике онклик стартую программу, я вообще не могу вводить никакие значения в эту форму чтобы управлять переменными программы ... Научите правильно мыслить при работе с формами пожалста ? |
И микровопрос : Можно ли быстро и легко консольную программу объединить с формой в которой множество полей с переменными и читать их на ходу и вносить изменения на ходу выполнения консольной программы
|
на чем пишите?
Цитата:
|
С++ Билдер ... привык писать в консольке типа int main(){ и пошла жара }
Но я хочу чтоб инт мейн мой запустился при нажатии кнопки в форме и пихаю код свой в обработчик онклик ... прога стартует но вешает саму форму так что я туда вообще не могу никакие значения поместить вовремя работы программы ... |
Да всё верно в моих программах в мейне всегда бесконечный цикл, мейн запускает процедуры в нужном порядке а те вызывают функции и это всё делает одна консольная программа что логично и удобно ... и мне надо чтоб эта шня запустилась при нажатии на кнопку да еще так чтобы она все время читала эту форму на изменения переменных ... ведь моя прога читает из ини файла постоянно значения переменных и применяет изменения на ходу, мне нужно чтоб файл ини трансформировался в визуальную форму на ФОРМЕ в виде окошек со значениями )))))
|
Понятно. Дело в том, что этим циклом вы "блокируете" программу. нужно использовать что-то типа потоков. т.е. перед циклом нужно создать новый поток(дочерний процесс) и в него поместить цикл. в итоге обработка идет в "отдельном слое" от основной программы и работа с формой не блокируется. Как это реализовать не знаю. С потоками не работал. но идея такова и в сети инфы много, надо пробовать...
|
Теоретически я тоже знаю что нужно использовать потоки, в принципе я бы это мог бы и реализовывать в консольке ... я думал что эти формы нечто шаманское а оказывается ничего необычного ... консольных программ можно запустить бесчетное множество и все они автоматически запускаются разными потоками даже если код в них одинаковый и работают они с одними и теме же файлами )))))) мне нужно именно чтобы форма не висла от вайла ... иначе смысла переходить на формы нет никакого консоль форева!
|
Так и не будет виснуть. Вы отделяете "консольную часть" программы от самой формы. и форма не блокируется. Если вам знакомы потоки, то советую поэкспериментировать, консольную часть вынести в поток(или организовать дочерний процесс)... Должно получиться
|
Ну это было понятно ... ну и в завершение нашей бесполезной беседы спрошу: Как много одновременно можно потоков запустить в винде?
|
Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 00:19. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.