Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VB6] создание границ формы, определить границу формы 
:(
    Опции темы
psyhyatr
  Дата 6.2.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.2.2010

Репутация: нет
Всего: нет



здраствуйте,я уже видел похожую тему созданную два года назад но там нету ни одного ответа....

мне надо чтобы созданная внутри кнопка придя к границе формы уходила в другую сторону.с движениями проблем нет и с координатами границ
формы тоже.проблема в том что кнопка доходит до границы и не останавлиется....может быть у кого то найдется минута помочь?...если можно коротоко прокоментировать мою ошибку.я только начал учить программирование,так что имейте ввиду при объяснении. спасибо  всем за помощь smile 
PM MAIL   Вверх
Sanaff
Дата 6.2.2010, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: -1
Всего: 1



Я пока не обрёл телепатических способностей, поэтому скромное желание увидеть ваш код. ))
Чем кнопка двигается, как вы определили границы и процедуру "ухода в другую стророну" мне неведомо...

Добавлено через 10 минут и 41 секунду
Код, конечно, накидать могу, но легче исправить имеющийся ;)
--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
psyhyatr
Дата 7.2.2010, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.2.2010

Репутация: нет
Всего: нет



Код

Option Explicit
Dim dy As Integer
Private Sub cmdarkanoid_Click()
cmdarkanoid.Top = cmdarkanoid.Top - dy
'cmdarkanoid.top= 0 ; 6400
'cmdarkanoid.left= 0 ; 7100
If cmdarkanoid.Top < 0 Then
dy = -dy
End If
If cmdarkanoid.Top > 6400 Then
dy = -dy
End If
If cmdarkanoid.Top < 3200 Then
cmdarkanoid.Left = cmdarkanoid.Left + dy
End If

Private Sub Form_Load()
dy = 100

End Sub



границы вроде нашел как разметить,покрайней мере топ.так теперь застрял с движением кнопки...координаты формы в коментах

Это сообщение отредактировал(а) psyhyatr - 7.2.2010, 01:55
PM MAIL   Вверх
Sanaff
Дата 7.2.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: -1
Всего: 1



Попробуйте так:
Код

Option Explicit
Dim dy As Integer, dx As Integer, sizx As Integer, sizy As Integer
Private Sub cmdarkanoid_Click()
'cmdarkanoid.top= 0 ; 6400
'cmdarkanoid.left= 0 ; 7100

If cmdarkanoid.Top < 0 Or cmdarkanoid.Top + cmdarkanoid.Height > sizy Then
  dy = -dy
End If
If cmdarkanoid.Left < 0 Or cmdarkanoid.Left + cmdarkanoid.Width > sizx Then
  dx = -dx
End If

'передвижение кнопки
cmdarkanoid.Left = cmdarkanoid.Left + dx
cmdarkanoid.Top = cmdarkanoid.Top + dy

End Sub

Private Sub Form_Load()
dy = 100 'вниз
dx = 100 'вправо

'размеры формы
Form1.Width = 7100
Form1.Height = 6400

'размеры рабочей области. они меньше. ( 6975 х 6000 )
sizx = Form1.ScaleWidth
sizy = Form1.ScaleHeight

End Sub



Отображения на форме и графику - лучше считать в Pixels, а не Twip. Pixels хоть совпадают с точками монитора. мне лично так удобнее. Узнать сколько твипов в пикселе - Screen.TwipsPerPixelX
Перевести форму в пиксельный формат - Form1.scalemode= 3





--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
psyhyatr
Дата 7.2.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.2.2010

Репутация: нет
Всего: нет



SANAFF

СПАСИБО ВАМ ОГРОМНОЕ!! smile  smile СЕЙЧАС БУДУ РАЗБИРАТЬ!!

Это сообщение отредактировал(а) psyhyatr - 7.2.2010, 22:07
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.