• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

строка меню "Окно"

  • Автор темы Alex77777
  • Дата начала
A

Alex77777

при исользовании материнского окна и его дочерних окно иногда требуется, чтобы открытые окна располагались в определенном порядке: горизонтально, каскадом, вертикально, во весь экран и т.п. Я знаю только первые три константы Arrange vbTileHorizontal, Arrange vbTileVertical и Arrange vbCascade, а вот остальные не знаю, кто знает другие константы расположения дочерних окон напишите плиз.
 
P

Pasha

Для: Alex77777

Переходи на VB.NET
 
A

Alex77777

как я понял чтоб сделать дочернее окно во весь экран нужно в коде материнского окна строки меню"Окно" прописать просто константу "VbArrangeIcons" (т.к. другие константы работают), только вот она не работет, может ли это быть из-за того что я при загрузке формы задаю ее ширину-высоту?
 
N

Normann

Любая vb константа это всего лишь число, в основном это перечисления от 0 и т.д. . Те константы которые ты перечислил и есть такое перечисление, в твоем случае это 1, 2 и 0 соответсвенно (не веришь проверь (msgbox vbTile.....)). Что тебе мешает использовать просто следующие числа которые будут соответствовать другим константам?
 
A

Alex77777

долго меня не было в городе
пишу msgbox vbTile3 ит.д. ругается: "переменная не определена",
либо по другому, тоже ругается:ошибку синтаксиса"
может я просто тормоз :) , и чего то не догоняю :) , разъясните мне пожалуйста поподробнее.
 
N

Normann

долго меня не было в городе
пишу msgbox vbTile3 ит.д. ругается: "переменная не определена",
либо по другому, тоже ругается:ошибку синтаксиса"
может я просто тормоз :( , и чего то не догоняю :) , разъясните мне пожалуйста поподробнее.
А на кой черт ты скажи ты так пишешь? Вообщето под ..... подразумевалось Horizontal или Vertical :) . А 1, 2 или 3 это значения констант еще раз повторяю:
vbTileHorizontal = 1
vbTileVertical = 2
vbCascade = 0
Использовать числа вместо констант это значит что-то в роде:
В место
MDIForm1.Arrange vbTileHorizontal
MDIForm1.Arrange vbTileVertical
MDIForm1.Arrange vbCascade
использовать
MDIForm1.Arrange 1
MDIForm1.Arrange 2
MDIForm1.Arrange 0

Когда это испробуешь смотри вопрос из предидущего моего поста по этой теме.
 
A

Alex77777

про цифры я понял, работает! :)
константе VbArrangeIcons соответствует цифра "3"
ставлю ее и она не работает,
если поставить 4 и выше ругается: "недопустимый вызов процедуры или параметра".
Вопрос: почему не раскрывает на весь экран, хотя стоит цифра "3" или сама константа "VbArrangeIcons"?
 
N

Normann

Потому что она не должна делать этого. Arrange - англ. инф. Упорядочивать.
 
A

Alex77777

Спасибо за пояснение! ;)
Значит придется вычеркнуть этот пункт из меню на неопределенное время, пока не подвернется данная констатнта.
 
N

Normann

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

Alex77777

тогда как же работает данная функция во всех приложения???
может быть там стоит код: активная форма ширина и высота = параметрам экрана???
вот что у меня получилось и все работает так ка надо: :D

If not Me.activeForm Is nothing Then
dim As object
Set A = activeForm
With A
.left=0
.top=0
.Width=Screen.Width
.Heigt=Screen.Heigt
End With
End if

Всем огромное спасибо!!!
Теперь хоть про константы эти больше знать буду. ;)
 
N

Normann

<!--QuoteBegin-Normann+20:08:2007, 14:28 -->
<span class="vbquote">(Normann @ 20:08:2007, 14:28 )</span><!--QuoteEBegin-->Развертывать окна тебе придется самому.
[snapback]75758" rel="nofollow" target="_blank[/snapback]​
[/quote]
Вообщето я имел в виду "тебе" как программисту, а не как пользователю, есетвенно нужно код писать, только не такой как у тебя, а окно действительно должно быть развернуто, а не растянуто. Используй свойство формы WindowState. И на кой ты используешь эту А?
 
A

Alex77777

спасибо за замечание про "А", код сократился ;)
свойство формы WindowState я не могу использовать, т.к. при загрузке дочерней формы ее размер уже задан мной. если я ставю данное свойство как:
ActiveForm.WindowState.Maximized , то он ругается
 
N

Normann

Если бы я был компилятором то я тоже ругался бы :(

Код:
ActiveForm.WindowState.Maximized
Полная бессмыслица.
Во первых точки используются в бейсике для раскрытия членов каких либо объектов, WindowState это не объект а свойство которому можно либо задавать либо извлекать значение. Поверь WindowState и нужен для того чтобы во время выполнения ним задавать состояние окна.
 
A

Alex77777

Окей, я все понял и разобрался: нужно просто как константе присвать свойству WindowState цифровое значение в данном случае от 0 до 2. Так????
по крайне мере у меня все работает, и код еще больше сократился :blink:
Огромное спасибо!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!