Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/17: Рейтинг темы: голосов - 17, средняя оценка - 4.88
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577

Форма и внутрение объекты?

19.09.2013, 14:58. Показов 3392. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разрабатываю код который уводит форму за верхний край монитора оставляя несколько пикселей
чтоб при наведении мышки показать форму.
И столкнулся с таким глюком когда форма где то до середины уходит вверх за рамку экрана объекты внутри замедляют
перемещение, в итоге низ формы начинает наезжать на объекты (кнопки картинки и тд).
С чем это связано и как с этим бороться?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2013, 14:58
Ответы с готовыми решениями:

Форма и объекты
Объясните пожалуйста, как сделать так, чтобы при увеличении/уменьшению размера формы, объекты которые на ней установлены, различные...

Найти внутрение углы треугольника,заданного координатами своих вершин на площаде.
Найти внутрение углы треугольника,заданного координатами своих вершин на площаде. Заранее спасибо!!!!

Как сделать, чтобы при открытии форма растягивалась во весь экран и расположенные на ней объекты были всегда в зоне видимости?
Такое вообще возможно?

47
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
19.09.2013, 15:10  [ТС]
Вернее даже раньше, функция просто сжимает форму перемещая постепенно вверх.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Declare Function SetWindowPos Lib "User32" (ByVal Hwnd As Long, ByVal hWndInsertAlter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Dim Xx As Long
Dim Yy As Long
Dim u As Boolean
Dim Xa As Long
Dim Ya As Long
Private Sub Form_Load()
    Xa = 100
    Ya = 150
    Xx = 500
    Yy = 500
    u = SetWindowPos(Form1.Hwnd, 0, Ya, Xa, Xx, Yy, ByVal &H20)
End Sub
 
Private Sub Timer2_Timer()
    Dim KorForm As TRect
    GetWindowRect Form1.Hwnd, KorForm
    u = SetWindowPos(Form1.Hwnd, 0, Ya, Xa, Xx, Yy, ByVal &H20)
    Xa = Xa - 1
    Yy = Yy - 1
End Sub
Добавлено через 6 минут
Сори начал пользоваться функцией SetWindowPos прочитав ошибочное описание её на другом форуме
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
19.09.2013, 17:57
Цитата Сообщение от radlif Посмотреть сообщение
Yy = Yy - 1
Эту строку убери
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
19.09.2013, 18:05  [ТС]
Уже сделал, сейчас пытаюсь 2 зайцев махом убить
1) научить форму автоматом определять к какой стенке экрана её поднесли и уезжать в эту стенку в том месте куда её поднесли.
2) пока отдыхаю от ошибок первого учу часы показывать время в разных часовых поясах
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
19.09.2013, 20:45
Посмотри на досуге
Вложения
Тип файла: rar FormMove.rar (1.7 Кб, 10 просмотров)
2
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 06:16  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Посмотри на досуге
Клёво, часть кода мне пригодится
У меня форма выезжает когда пользователь наводит на неё мышку, и прячется обратно когда убирает)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.09.2013, 10:13
Цитата Сообщение от radlif Посмотреть сообщение
У меня форма выезжает когда пользователь наводит на неё мышку, и прячется обратно когда убирает
Интересно было бы взглянуть на код.

Я вот на досуге сделал, но может у тебя попроще что-то?
Вложения
Тип файла: rar FormMove.rar (2.1 Кб, 8 просмотров)
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 10:43  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Интересно было бы взглянуть на код.
Я вот на досуге сделал, но может у тебя попроще что-то?
У меня на данный момент реализовано только то что она уезжает вверх.
Кст в вашем варианте есть такой же баг как и у меня,
когда форма уезжает вверх если её после выводишь подведя мышку к самому верху монитора то форма
после того как на полную выедет начинает прыгать туда сюда)
ReleaseCapture интересная функция, я же делаю через GetWindowRect
получаю координаты окна и сверяю с координатами мыши если совпадают то вывожу форму.
Попозже причешу код и выложу, сейчас пока времени нет.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.09.2013, 10:53
Цитата Сообщение от radlif Посмотреть сообщение
после того как на полную выедет начинает прыгать туда сюда
Указатель мыши оказывается за пределами формы, и форма начинает уезжать обратно. Получается своего рода "дребезг". Может форму выдвигать не полностью?
Цитата Сообщение от radlif Посмотреть сообщение
Попозже причешу код и выложу, сейчас пока времени нет.
подождём
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 14:16  [ТС]
Готово
липучка.rar
И баг сам по себе куда-то делся.
То что закоментировано это делает форму прозрачной не трогая элементы на форме)
Код правда ещё не оптимизировал SetWindowPos можно в 1 место перенести,
и не могу понять почему у меня не работают слушатели MouseDown, MouseUp.
1
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 14:36  [ТС]
липучка.rar
Оптимизировал.
1
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
20.09.2013, 15:09
Цитата Сообщение от radlif Посмотреть сообщение
И баг сам по себе куда-то делся.
Улыбнуло!!
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 15:15  [ТС]
Цитата Сообщение от morgann55 Посмотреть сообщение
Улыбнуло!!
Он всёж остался, если увеличить скорость заезда, и выезда то форма всёж выскакивает за 1 координату и мышь оказывается над ней

Добавлено через 2 минуты
Почему MouseUp срабатывает ток при 2 клике?
Должно срабатывать как ток отпускаю кнопку мыши.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
20.09.2013, 15:23
Цитата Сообщение от SoftIce Посмотреть сообщение
Указатель мыши оказывается за пределами формы, и форма начинает уезжать обратно. Получается своего рода "дребезг". Может форму выдвигать не полностью?
А может надо ввести такое понятие как "КонецПроцессаДвижения", и пока курсор не выведешь и не введёшь ЗАНОВО, то Движение не начнётся ??
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 15:29  [ТС]
Цитата Сообщение от morgann55 Посмотреть сообщение
А может надо ввести такое понятие как "КонецПроцессаДвижения", и пока курсор не выведешь и не введёшь ЗАНОВО, то Движение не начнётся ??
Не прокатит, к примеру это часы, пользователь выдвинул глянул время убрал мышь и они уехали.
Так же ему придётся выдвинуть потом убрать мышь снова навести и опять убрать тогда ток уедут.
Проще форму полностью не выдвигать, сделать рабочий запас пикселей в 10 и будет норм
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.09.2013, 15:52
Цитата Сообщение от radlif Посмотреть сообщение
Оптимизировал.

При запуске рушится среда (пока не стал разбираться почему)


Свой код засунул в один класс. Наружу торчат только два метода
Вложения
Тип файла: rar FormMove.rar (2.5 Кб, 10 просмотров)
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 16:02  [ТС]
Я тож подумываю в класс засунуть, передавать имя формы и скорость движения)
Странно у меня всё нормально работает, сейчас ещё больше уменьшил объём кода.

Добавлено через 4 минуты
Кст у меня если 2 края уходят за предел экрана то форма уезжает в угол, прикольно выглядит)
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 16:10  [ТС]
липучка2.RAR
Есть подозрение что архиватор пережал проект.
Сейчас думаю как сделать чтоб форма реагировала только при наведении мышки на видимую область,
хотя по моему это дофига делов.
Надо будет помимо наведения мышки на форму обрабатывать ещё цвет пикселя под мышкой.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.09.2013, 16:12
С глюком разобрался, всё норм.
Туперь выскакивает ошибка из-за иконки на форме

Цитата Сообщение от radlif Посмотреть сообщение
если 2 края уходят за предел экрана то форма уезжает в угол, прикольно выглядит)
Это да
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
20.09.2013, 16:16  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Туперь выскакивает ошибка из-за иконки на форме
Это у меня vb глючный если в свойствах формы выставил изображение то его уже не удалить
Я его если надо чистая форма меняю на 1-пиксельную картинку
Такой же глюк со всеми контролами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.09.2013, 16:16
Помогаю со студенческими работами здесь

Одним div выровнить внутрение div
У меня проблема, у меня div за место таблицы на сайте сайт работает отлично. Тока вот сайт с левой стороны и всё, как его сделать по...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не раз обсуждалась, и была прочитана, но или...

Как уничтожать динамические объекты и вообще объекты, если это необходимо сделать в их процедурах?
Создать отдельную процедуру CloseObject(Object: TObject) и вызывать ее в конце процедуры или так тоже нельзя? А то бесят эти access...

Встроенные объекты Java Script. Объекты Array, Date
Создать массив, содержащий названия элементов, находящихся в системном блоке компьютера. Добавить к нему массив, содержащий названия ...

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования файлов, их закачка если нету и проверка обновления), но как...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru