Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91

Запуск формы отдельным потоком

21.04.2018, 22:59. Показов 1911. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

С показом формы пользователю все просто

PureBasic
1
form2.show
А как сделать, чтобы форма 2 запустилась в отдельном потоке?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2018, 22:59
Ответы с готовыми решениями:

Запуск внешних приложений из формы VB
Добрый день! Возникла проблема, с которой не могу справиться: Нужно в программе запустить подряд два внешних приложения, причем второе...

Автоматический запуск и закрытие формы.
Как сделать в VB чтобы при запуске проекта сначала открывалась форма заставка которая автоматически (допустим секунд через 5)закрывалась...

Запуск отдельным потоком
Имеется стандартный шаблон mainwindow mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> ...

19
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
22.04.2018, 06:36
См. тут (вообще в блогах The trick мног интересного, но надо шарить в VB)
https://www.cyberforum.ru/blog... g1965.html
1
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
22.04.2018, 11:51
Цитата Сообщение от siemens33 Посмотреть сообщение
А как сделать, чтобы форма 2 запустилась в отдельном потоке?
Для чего? Обычно в основном потоке как раз GUI и обработка UI.
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
22.04.2018, 12:07  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Для чего? Обычно в основном потоке как раз GUI и обработка UI.
Есть форма 1, в ней пользователь выбирает необходимое действие.
Но при выборе некоторых из них создается впечатление, что программа зависла (окончание процесса не известно, точный пр бар сделать не получится).
Как решение хотел показывать на это время пользователю форму 2
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
22.04.2018, 12:08
Цитата Сообщение от siemens33 Посмотреть сообщение
Но при выборе некоторых из них создается впечатление, что программа зависла (окончание процесса не известно, точный пр бар сделать не получится).
Нужно сделать так чтобы не создавалось впечатление. Причем тут отдельная форма в потоке? А если пользователь эту форму закроет?
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
22.04.2018, 12:39  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Нужно сделать так чтобы не создавалось впечатление. Причем тут отдельная форма в потоке? А если пользователь эту форму закроет?
Ну так вот как сделать чтобы не создавалось впечатление? :-0
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
22.04.2018, 12:40
Цитата Сообщение от siemens33 Посмотреть сообщение
Ну так вот как сделать чтобы не создавалось впечатление? :-0
Ну ты же делаешь так что зависает? Делай так чтобы не зависало. К примеру в длинных циклах вставляй DoEvents или более легкий вариант с прокруткой сообщений. Вместо Sleep'ов используй таймеры и т.п.
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
22.04.2018, 12:44  [ТС]
Не получится. Взаимодействует с ms office из-за него то и тормоза.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
22.04.2018, 14:08
siemens33, я ничего не понял.
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
22.04.2018, 14:55  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
siemens33, я ничего не понял.
Программа взаимодействует с ms office, vba оптимизировать не получится. При исполнении кода vba в офисе окно программы "подвисает" до сохранения документа в офисе.
0
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
22.04.2018, 16:25
Цитата Сообщение от siemens33 Посмотреть сообщение
При исполнении кода vba
Вот там doevents и вставь - всё отвиснет.
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
22.04.2018, 16:48  [ТС]
Цитата Сообщение от CRIDEL Посмотреть сообщение
Вот там doevents и вставь - всё отвиснет.
Спасибо за ответ, сейчас попробую.
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
24.04.2018, 13:34  [ТС]
Цитата Сообщение от CRIDEL Посмотреть сообщение
Вот там doevents и вставь - всё отвиснет.
Никак не выходит. Если я Вам в ЛС пришлю код - сможете помочь?
 Комментарий модератора 
Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
24.04.2018, 13:52
Visual Basic
1
2
3
App.OleServerBusyRaiseError = False
App.OleRequestPendingTimeout = 1
App.OleRequestPendingMsgText = "Wait for completion handling"
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
24.04.2018, 13:53  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Visual Basic
1
2
3
App.OleServerBusyRaiseError = False
App.OleRequestPendingTimeout = 1
App.OleRequestPendingMsgText = "Wait for completion handling"
Спс, попробую.
0
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
24.04.2018, 14:52
Цитата Сообщение от siemens33 Посмотреть сообщение
Если я Вам в ЛС пришлю код - сможете помочь?
ну присылай, только почему не опубликовать здесь? Две головы хорошо - а целый форум в любом случае лучше!
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
24.04.2018, 21:58  [ТС]
Цитата Сообщение от CRIDEL Посмотреть сообщение
ну присылай, только почему не опубликовать здесь? Две головы хорошо - а целый форум в любом случае лучше!
Не будем нарушать правила форума.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Private Sub Command1_Click()
 
CommonDialog1.Filter = "Microsoft Word | *.doc" 'ôîðìàòû ôàéëîâ, ôèëüòð
CommonDialog1.ShowOpen 'Îòêðûâàåì îêíî ïîèñêà ôàéëîâ
If CommonDialog1.FileName = "" Then 'Ïðîâåðÿåì èìÿ ôàéëà,
MsgBox "Âûáåðèòå ôàéë !", vbOKOnly + vbCritical '?????????, ??? ???? ?? ??????,
Exit Sub
InputFileTxt.Text = CommonDialog1.FileName 'Îêíî ââîäà òåêñòà TextBox ââîäèì èìÿ ôàéëà âðó÷íóþ
End If
 
Set WordApp = New Word.Application
 
'?????????? ????????? Word-a ?? True - ???????,
'?? False - ?? ??????? (???????? ?????? ????)
WordApp.Visible = False
'??????? ????? ???????? ? Word-e
 
Set DocWord = WordApp.Documents.Add(CommonDialog1.FileName)
 
DocWord.Activate
 Application.ScreenUpdating = False
  ActiveDocument.Windows(1).View.Type = wdNormalView
  Application.Options.CheckGrammarAsYouType = False
  Application.Options.CheckGrammarWithSpelling = False
  Application.Options.ContextualSpeller = False
  Application.Options.CheckSpellingAsYouType = False
  Application.Options.ShowReadabilityStatistics = False
    Dim fld As Field, i As Long
 
    
    '1. ??????? ????? ?????, ???? ????? ???? ?? ????????? ??? ?????-?? ????? ?????.
    ActiveWindow.View.ShowFieldCodes = False
    
    For i = ActiveDocument.Fields.Count To 1 Step -1
    
        '2. ???????????? ???????????? ????? ????.
        Set fld = ActiveDocument.Fields(i)
        
        ' ???? ??? eq-????.
        If fld.Type = wdFieldFormula Then
            '3. ????????? ???? (? ??????? Range ?? ?????????? ????????).
            fld.Select
            '4. ??????????? ????.
            Selection.Copy
            '5. ??????? ???? ? ???? ??????.
            Selection.PasteAndFormat (wdFormatPlainText)
        End If
        
    Next i
    
    '5. ?????????, ????? ???? ?????, ??? ?????? ???????? ??????.
    Application.ScreenUpdating = True
    Let ProgressBar1.Value = 100
Let Label9.Caption = ProgressBar1.Value & "%"
Let Label10.Caption = "Âàø ôàéë ãîòîâ, ïðîâåðüòå ñîäåðæèìîå äîêóìåíòà!!!"
  
DocWord.Save
Set DocWord = Nothing
WordApp.Quit True
Set WordApp = Nothing
End
    End Sub
Форма и одна кнопка. При исполнении подвисает форма.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
25.04.2018, 09:36
siemens33, и ради этого отдельный поток?
Добавьте в цикл изменение прогрессбара.
В принципе можно запустить обработку именно на VBA в приложении Word, и даже запустить несколько приложений Word для обработки нескольких документов одновременно.
Это решение задачи, обратной к Макрос на замену каждого третьего слова в тексте на код EQ ?
Приложите пример файла.
0
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
25.04.2018, 13:22
Цитата Сообщение от siemens33 Посмотреть сообщение
For i = ActiveDocument.Fields.Count To 1 Step -1
сразу после старта цикла ставь Doevents. А вообще Казанский, прав - обновляй прогресс бар прямо здесь.
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
25.04.2018, 13:57  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
siemens33, и ради этого отдельный поток?
Добавьте в цикл изменение прогрессбара.
В принципе можно запустить обработку именно на VBA в приложении Word, и даже запустить несколько приложений Word для обработки нескольких документов одновременно.
Это решение задачи, обратной к Макрос на замену каждого третьего слова в тексте на код EQ ?
Приложите пример файла.
Да, это обратное действие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2018, 13:57
Помогаю со студенческими работами здесь

Запуск страницы отдельным потоком
Ребятушки, срочно нужна ваща помощь. Есть проект, основной на MVC и т.п. Так вот, я создал асп страницу для таймера, чтобы он каждый...

Фокус на TextBox внутри формы отдельным потоком
Доброй ночи, есть форма, внутри нее браузер. Допустим захожу на Вконтакте и отрываю диалог и хочу слать в него каждые полчаса сообщения. Я...

Сообщение отдельным потоком
Thread ttt = new Thread(delegate() { MessageBox.Show("Hello!"); }); просьба перевести на C++\CLR кто может (проблема с delegate() ) ...

Таймер отдельным потоком
Подскажите пожалуйста, на форме есть пикчер бох в котором идет анимация. Необходимо сделать таймер. После которого произойдет действие. ...

Выполнение подключения отдельным потоком
Доброго времени суток умные люди. Столкнулся с проблемой. Есть программа в которой идет подключение к фтп и скачивание с него файлов. Но с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru