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

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

21.04.2018, 22:59. Показов 1886. Ответов 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
22.04.2018, 12:08
Цитата Сообщение от siemens33 Посмотреть сообщение
Но при выборе некоторых из них создается впечатление, что программа зависла (окончание процесса не известно, точный пр бар сделать не получится).
Нужно сделать так чтобы не создавалось впечатление. Причем тут отдельная форма в потоке? А если пользователь эту форму закроет?
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
22.04.2018, 12:39  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Нужно сделать так чтобы не создавалось впечатление. Причем тут отдельная форма в потоке? А если пользователь эту форму закроет?
Ну так вот как сделать чтобы не создавалось впечатление? :-0
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru