Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 30.08.2013, 21:57   #1 (permalink)
Shalfey
Новичок
 
Регистрация: 30.08.2013
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Переход с консольного на формы

Здравствуйте! Я новенький, но в С++ старенький, программировал все это время консольные приложения и связь с программой была и есть через ини файлы которые программа удачно генерировала и читала я лишь вносил туда изменения, но при этом мне нужно было программу паузить ...

Решил покончить с этим гемороем и решил самостоятельно перейти на формы с чекбоксами и полями для ввода значений ...

Поля научился читать и преобразовывать стр в инт и писать в переменные, так же научился писать события онклик и столкнулся с проблемой:

Проблема(Help, Pls);

Нужно при нажатии кнопки на форме, очень грубо говоря, чтобы запустился бесконечный цикл как у меня все и есть в консольке или по нажатию кнопки запустилось консольное мое приложение которое закомпилировано в экзешник, и чтобы оно читало данные с формы, но форма собака ВИСНЕТ когда в обработчике онклик стартую программу, я вообще не могу вводить никакие значения в эту форму чтобы управлять переменными программы ...

Научите правильно мыслить при работе с формами пожалста ?
Shalfey вне форума   Ответить с цитированием

Старый 30.08.2013, 21:57
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме ранее создавались топики которые так или иначе похожи на ваш

Какой формы можно вырастить светодиод?
СДНФ, СКНФ, формы Бекуса, кванторы
Открытие формы
Диалоговые формы на HTML на данные функции
Окно красивой формы
Вывод данных с формы на PHP

Старый 30.08.2013, 22:01   #2 (permalink)
Shalfey
Новичок
 
Регистрация: 30.08.2013
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

И микровопрос : Можно ли быстро и легко консольную программу объединить с формой в которой множество полей с переменными и читать их на ходу и вносить изменения на ходу выполнения консольной программы
Shalfey вне форума   Ответить с цитированием
Старый 31.08.2013, 02:44   #3 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

на чем пишите?

Цитата:
Сообщение от Shalfey Посмотреть сообщение
но форма собака ВИСНЕТ когда в обработчике онклик стартую программу, я вообще не могу вводить никакие значения в эту форму чтобы управлять переменными программы ...
Если я правильно понял, то вы при событии onclick запускаете бесконечный цикл?
kreol вне форума   Ответить с цитированием
Старый 31.08.2013, 02:53   #4 (permalink)
Shalfey
Новичок
 
Регистрация: 30.08.2013
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

С++ Билдер ... привык писать в консольке типа int main(){ и пошла жара }

Но я хочу чтоб инт мейн мой запустился при нажатии кнопки в форме и пихаю код свой в обработчик онклик ... прога стартует но вешает саму форму так что я туда вообще не могу никакие значения поместить вовремя работы программы ...
Shalfey вне форума   Ответить с цитированием
Старый 31.08.2013, 02:58   #5 (permalink)
Shalfey
Новичок
 
Регистрация: 30.08.2013
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да всё верно в моих программах в мейне всегда бесконечный цикл, мейн запускает процедуры в нужном порядке а те вызывают функции и это всё делает одна консольная программа что логично и удобно ... и мне надо чтоб эта шня запустилась при нажатии на кнопку да еще так чтобы она все время читала эту форму на изменения переменных ... ведь моя прога читает из ини файла постоянно значения переменных и применяет изменения на ходу, мне нужно чтоб файл ини трансформировался в визуальную форму на ФОРМЕ в виде окошек со значениями )))))
Shalfey вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 31.08.2013, 13:01   #6 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Понятно. Дело в том, что этим циклом вы "блокируете" программу. нужно использовать что-то типа потоков. т.е. перед циклом нужно создать новый поток(дочерний процесс) и в него поместить цикл. в итоге обработка идет в "отдельном слое" от основной программы и работа с формой не блокируется. Как это реализовать не знаю. С потоками не работал. но идея такова и в сети инфы много, надо пробовать...
kreol вне форума   Ответить с цитированием
Старый 31.08.2013, 13:28   #7 (permalink)
Shalfey
Новичок
 
Регистрация: 30.08.2013
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Теоретически я тоже знаю что нужно использовать потоки, в принципе я бы это мог бы и реализовывать в консольке ... я думал что эти формы нечто шаманское а оказывается ничего необычного ... консольных программ можно запустить бесчетное множество и все они автоматически запускаются разными потоками даже если код в них одинаковый и работают они с одними и теме же файлами )))))) мне нужно именно чтобы форма не висла от вайла ... иначе смысла переходить на формы нет никакого консоль форева!
Shalfey вне форума   Ответить с цитированием
Старый 01.09.2013, 10:16   #8 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Так и не будет виснуть. Вы отделяете "консольную часть" программы от самой формы. и форма не блокируется. Если вам знакомы потоки, то советую поэкспериментировать, консольную часть вынести в поток(или организовать дочерний процесс)... Должно получиться
kreol вне форума   Ответить с цитированием
Старый 01.09.2013, 11:22   #9 (permalink)
Shalfey
Новичок
 
Регистрация: 30.08.2013
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну это было понятно ... ну и в завершение нашей бесполезной беседы спрошу: Как много одновременно можно потоков запустить в винде?
Shalfey вне форума   Ответить с цитированием
Старый 01.09.2013, 23:42   #10 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Цитата:
Сообщение от Shalfey Посмотреть сообщение
Ну это было понятно ... ну и в завершение нашей бесполезной беседы
Видать, не понял вас...

Цитата:
Сообщение от Shalfey Посмотреть сообщение
Как много одновременно можно потоков запустить в винде?
Походу, сколько выдержит память(Хром собственно на каждую вкладку плодит процесс, а их у меня бывает открыто больше 20)
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:44.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.