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

У VB-формы установлено ShowInTaskBar=True, но в TaskBar-e ee нет

28.09.2011, 14:52. Показов 2075. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти ответ пока не удается (хотя, вроде бы, вопрос прост). Работаю на VB6.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2011, 14:52
Ответы с готовыми решениями:

все установлено...но звука нет
подскажите в чем здесь причина? установила windovs 7, после, как положено драйвера на устройства диспетчер отображает - все...

Как проверить установлено соединение или нет
Здравствуйте! Нужно проверить установлено соединение или нет. Вот функция tcpServer.Connect(ipAddr, 1986)

Соединение по wi-fi установлено, но интернета все равно нет. Ubuntu 16.04
Подключаюсь к роутеру и после некоторого ожидания вижу привычное сообщение: >Соединение установлено >Подключено к сети wi-fi...

16
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
28.09.2011, 16:05
BorderStyle=0 наверно...
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
28.09.2011, 16:13
Забыл... второй вариант - это когда форма модальная.
Т.е. если в Form1 вызвать Form2.Show 1, то в таскбаре ничего не изменится и будет только Form1.
0
Comanche
28.09.2011, 23:21
Попробовал вот что:

Модуль:
Visual Basic
1
2
3
4
Sub Main()
    Form1.Show vbModal
    MsgBox 'Если ты видишь это сообщение на фоне формы - то WS_EX_APPWINDOW убивает vbModal.'
End Sub
Форма:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Const WS_EX_APPWINDOW As Long = &H40000
Private Declare Function GetWindowLong Lib 'user32' Alias 'GetWindowLongA' (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib 'user32' Alias 'SetWindowLongA' (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_EXSTYLE = (-20)
'
Private Sub Form_Activate()
    Dim currStyle As Long, newStyle As Long
    
    Me.Hide
    
    currStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    newStyle = currStyle Or WS_EX_APPWINDOW
    
    SetWindowLong Me.hWnd, GWL_EXSTYLE, newStyle
    
    Me.Show
End Sub
Увы, хотя форма и появляется в таскбаре, но сообщение видно прямо на фоне формы - т.е. как будто форму запускали безо всякого vbModal. Странно... отображение в таскбаре можно достичь только ценой модальности?!
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
29.09.2011, 10:35
Скорее ценой НЕмодальности, т.е. при вызове Form2 с модальностью в таскбаре останется только Form1, без модальности - обе.
0
Comanche
29.09.2011, 12:56
В общем, предлагаю запускать всё без vbModal, а модальность пробовать реализовать 'обходным' способом (где-то было в Сети).
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
29.09.2011, 13:03
А есть ли в этом смысл?
Модальное окно обычно дополнительное. Т.е., к примеру, для ввода каких-то параметров при редактировании чего-то большого.
К примеру, диалог вставки картинки в HTMLEdit'e.
Я думаю, нет смысла показывать его название в таскбаре, т.к. все равно, кроме него никакую форму активировать нельзя, а по названию родительской формы будет и так понятно, что происходит.
0
CatsTail
29.09.2011, 13:49
Спасибо, коллеги!
Действительно модальность и TaskBar не совмещаются (по крайней мере, у меня не получилось). Пришлось имитировать модальность...
Comanche
29.09.2011, 14:06
Поделись способом имитации модальности, уж коль до него дело дошло...
CatsTail
01.10.2011, 23:52
Уважаемый Comanche!
Даже немного стыдно Вам такое показывать. Короче говоря:
Visual Basic
1
2
3
4
5
6
        frmMain.hide
        frmMod.Show
        Do
          if not frmMod.Visible Then Exit Do
          DoEvents
        Loop
Сам понимаю, что это не модальность, но нечто близкое. И мою проблему
решает (вроде бы). Проверил в XP, сколько CPU забирает холостой цикл.
Получилось - почти ничего. А моя проблема в том, что клиенты обожают,
вывзвав настоящее модальное окно (невидимое в таскбаре), взять, и запустить FAR. В полноэкранном режиме. А потом суетиться: куда делось приложение...
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
02.10.2011, 11:35
Эм....
Может я что-то не понял.... но в чем в данном случае заключается 'модальность' ??? По-моему это только пустая загрузка проца...
0
CatsTail
02.10.2011, 11:40
Модальность в том, что пройти точку программы можно, лишь выполнмив на форме некие действия, после которых форма скрывается. А процессор (я проверял) практически не грузится.
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
02.10.2011, 12:04
а цикл то тогда зачем нужен?
Если открыта еще одна форма, то с ней можно спокойно работать вне зависимости от твоего цикла.
Если никакая другая форма не открыта, то цикл не нужен...
0
Comanche
02.10.2011, 13:21
Усё, победил.
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
' Код модуля - проект стартует отсюда:
'
Sub Main()
    Form1.Show vbModal
    MsgBox 'Этот мессадж должен появиться ПОСЛЕ закрытия формы Form1!'
End Sub
'
' Код формы Form1:
'
Private onceActivated As Boolean
'
Private Sub Form_Activate()
    If onceActivated Then Exit Sub
    
    Me.Caption = Me.Caption   ' << обязательно! не спрашивайте, почему :))
    frmInvisible.Show vbModal ' << модально!
    onceActivated = True      ' << чтобы выполнилось только один раз!
    
End Sub
'
' Код формы frmInvisible:
'
Private Sub Form_Load()
    ' Это форма-невидимка, показываемая модально по отношению к Form1.
    ' На ней должен быть размещён таймер Timer1.
    Me.BorderStyle = 0
    Me.Caption = ''
    Me.Width = 0
    Me.Height = 0
    Timer1.Interval = 100
    Timer1.Enabled = True
End Sub
'
Private Sub Timer1_Timer()
    Timer1.Enabled = False ' << выполнится единожды!
    Unload Me ' << форма выгружается, не успев даже появиться!
End Sub
Только не спрашивайте, почему оно работает
Comanche
02.10.2011, 13:27
PS: если убрать из проекта модуль, а вместо него воткнуть в проект стартовую форму frmStartUp с кнопкой Command1, и в код Command1_Click поместить бывший код процедуры Sub Main, то оно тоже сработает - после нажатия кнопки frmStartUp.Command1 в таскбаре будет ОБЕ формы (frmStartUp и Form1), причём frmStartUp будет модальной по отношению к Form1, как и полагается.
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
02.10.2011, 13:31
мда, батенька, да Вы извращенец )))
этож надо было такое придумать )
0
Comanche
02.10.2011, 13:32
Но ведь работает!
И, похоже, это единственный workaround...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2011, 13:32
Помогаю со студенческими работами здесь

Посчитать сколько установлено разного ПО в организации и у кого оно установлено
Добрый день! Простите за не информативный заголовок, не знаю как кратко сформулировать. Исходные данные: Имеется некий список...

TTrayIcon невозможно настроить так, чтобы при сворачивании формы, значок в TaskBar оставался
Доброго времени суток, уважаемые форумчане. Проблема немного странная. Не могу настроить TTrayIcon так, чтобы при использовании у...

Свойства контрола webbrowser: addressbar:true, statusbar:true, menubar:true
Я чайник, конечно, но... решил и я свой броузер написать :) Беру контрол webbrouser, кидаю его на форму, в свойствах вижу - ...

Нет звука: "Выходное аудиоустройство не установлено".
Отдавал компьютер в ремонт (заменили материнскую плату),после этого поставил windows 7 x86. Он пишет &quot;Выходное аудиоустройство не...

Убрать программу с нижнего левого угла (ShowInTaskbar)
Здравствуйте! Задача наверно для кого-то проста, но я чего-то совсем не могу понять как можно убрать небольшие &quot;остатки&quot;...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru