Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
вообщем делаю что-то наподобии меню панельки справа, ну типа как у висты, если курсор не на панельки то она скрывается и видно от неё только 5 пикселей от её левой стороны, если на ней то она полностью появляется с условием впринципе проблем не было:
в объекте Timer присутствует следующий код:
GetMousePos "[X]" "[Y]" IfEx "[X]<[PubWidth] and [X]>0 and [Y]<[PubHeight] and [Y]>0" SetWindowPos "???" "200" "200" "200" "200" Else SetWindowPos "???" "300" "300" "200" "200" EndIf
вот только не понимаю что надо писать в том месте где вопросики что я только не пробовал, получается только если там написан конкретный путь к моему приложению и он скомпилирован, а вот как сделать чтобы данная команда понимала что приложение именно это не понимаю!
p.s. на циферки не обращаем внимание они от балды для примера.
Сообщение отредактировано Омар - Ср, 13 Мая 2009, 12:09
О, я и сам как раз хочу сделать что-то подобное, но пока обдумываю дизайн, никаких идей в голове пока нет.. По делу: все правильно, эта команда и будет работать только тогда, когда ваше приложение скомпилировано, в этом случае вместо вопросиков надо написать путь к самому приложению, можно (и нужно) относительный. Если вы хотите посмотреть на результат при тесте программы из NB то надо туда написать: название_вашей_программы (test).exe , потому что NB создает экзешник при тесте программы в той же папке где и сам файл проекта с вот таким названием. Только почемуто, к большому удивлению, на эту команду реагирует не главное окно приложения а отладчик...
Сообщение отредактировано Bodi - Ср, 13 Мая 2009, 14:09
О, я и сам как раз хочу сделать что-то подобное, но пока обдумываю дизайн, никаких идей в голове пока нет..
Да это я энциклопедию по игре делаю!
Quote (Bodi)
По делу: все правильно, эта команда и будет работать только тогда, когда ваше приложение скомпилировано, в этом случае вместо вопросиков надо написать путь к самому приложению, можно (и нужно) относительный.
эммм, а что написать чтобы он хотя бы понимал ну типа не полный путь писать а например как в MMB что то наподобии srcdir, что то не нашёл просто в конечном результате проект будет выглядить так:
Главная папка - в ней все файлы (главный exe и проекты nb которые будут запускать строго через главный exe, их где то ко второй версии будет штук 20-30) - ну и папки там же вспомогательные ну дизайн допустим и всё такое.
Добавлено (14 Май 2009, 13:50) --------------------------------------------- Пардон! Отбой! Допетрил!
А вы я гляжу решили посмотреть, как "оно", т.е. neobook
и с каждым разом удивляюсь, в NB что можно сделать собственными средствами в MMB приходилось подключать плагины.
Quote (Bodi)
только зачем слэш?
Главное что работает!
Quote (Bodi)
Ааа, ясно, ну а я совсем про другое говорил. Это я типа тулбар имел ввиду.
Ну у меня тоже вроде как тулбара будет вот приведу цитату из описания к энциклопедии:
При открытии проект изначально будет располагаться в виде панели справа, сверху находятся календарь и часы, чуть ниже найдёт свое место мини-плеер и таймер выполнения задач, ну а в нижнем блоке находится основная часть проекта это меню энциклопедии по разделам при открытии какого-нибудь пункта откроется отдельное окно с информацией, там же находятся уже свои подразделы. Панель при не активности будет скрываться чтобы не мешать пользователю при работе в таких программах как ICQ или Mail Agent.
Сообщение отредактировано Омар - Чт, 14 Мая 2009, 19:50
И наверное наоборот: то что можно сделать в NB только с помощью плагинов или вообще нельзя, в MMB сделать проще простого.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Bodi, как вы думаете, почему NeoBook стОит почти 200 "зеленых", а ММВ только 45? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Bodi, запомните: каждая вещь стОит не столько, сколько за неё просят, а столько, сколько за неё ГОТОВЫ ЗАПЛАТИТЬ!!!
Повторяю: ПОПРОБУТЕ ММВ САМИ!
Дискуссия по этому вопросу ЗАКОНЧЕНА!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
sp3d, я извиняюсь, но Вы помоему прочитали лишь первые два сообщения в этой теме, вроде как разобрался я, но всё равно спасибо, как говорится лучше поздно чем никогда!
[PubDir]\1.exe
вот поставил это вместо вопросиков и всё работает, зачем что то мудрить
Если "по делу", то в NeoBook для определения и изменения размеров и положения главного окна проекта применяются совсем другие, более разумные, методы!
Сервер глючит БЕЗОБРАЗНО! Никуда не попасть!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Команда SetWindowPos предназначена для управления окнами других приложений. Для получения информации и управления собственным окном проекта существуют специальные глобальные переменные чтения и чтения-записи. Всё это есть в справочном файле. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я мягко говоря с каждым разом фигею с какой лёгкостью оказывается можно работать в NeoBook!!!
Немного повозившись и вспомнив математику второго класса всё получилось так как я и хотел!
Собственно сам код в объекте таймер:
GetMousePos "[X]" "[Y]" IfEx "[X]<[PubWidth] and [X]>0 and [Y]<[PubHeight] and [Y]>0" Math "[ScreenWidth]-[PubWidth]" "0" "[WindowLeft]" Math "([ScreenHeight]/2)-300" "0" "[WindowTop]" Else Math "[ScreenWidth]-10" "0" "[WindowLeft]" EndIf
Разберём код:
1. Передаём позицию мыши по горизонтали и по вертикали в переменные [X] и [Y] 2. Тут условие, если курсор не находится в пределах окна нашего проекта, то 3. Выполняется мат. функция: от ширины экрана вычитаем ширину нашего окна, после чего передаём результат в переменную [WindowLeft], которая собственно и перемещает наше окно строго вправо до предела. 4. Здесь немного другая ситуация так как требовалось чтобы окно находилось строго по центру относительно высоты экрана, то тут вычисляем по следующей формуле: высоту экрана делим на 2, и после этого вычитаем половину размера от высоты нашего окна, (благодаря этому при любом разрешение проект будет находится строго по центру относительно высоты экрана) передаём результат в переменную [WindowTop]. 5. В противном случае (если курсор мыши в пределах окна проекта) 6. Выполняется мат. функция: от ширины экрана вычитается 10 пикселей, и передаётся в переменную [WindowLeft], благодаря которой мы можем наблюдать кусочек окна, это необходимо для повторного появления всей области окна путём наведения курсора мыши на этот "кусочек" 7. фсё!
sp3d, я извиняюсь, но Вы помоему прочитали лишь первые два сообщения в этой теме, вроде как разобрался я, но всё равно спасибо, как говорится лучше поздно чем никогда!
да прочитал я об этом варианте, Но вопрос озвучивался о SetWindowPos и что прописать в (SetWindowPos "ХХХХ" "" "" "" "") поэтому я и написал 2 вариант, для SetWindowPos. Может у кого то возникнит такой же вопрос
Сообщение отредактировано sp3d - Сб, 16 Мая 2009, 07:44
Bodi, темка с выездом прикольная, но это больше для красоты, но всё равно не могли бы вы дать комментарии к каждой строчке, а то не совсем понятно, например скорость выезда.
В том то и дело что скорость выезда в моем примере регулировать нельзя, хотя есть одна мысля: можно использовать задержку в коде (Delay ""), или использовать другой цикл. Попозже выложу пример с коментами...
Вот пример с коментами как обещал, но там все слишком кратко, попробую объяснить поподробней: Главная непонятка в коде - это переменная i и условие с ней. Она служит для одноразового выполнения цикла loop, дело в том, что когда курсор находится в окне приложения выполняется цикл, а так как сам код находится в объекте "таймер", то он выполняется каждую секунду, следовательно, пока курсор будет находится в окне, оно будет раз за разом "выезжать". Чтобы более точно понять смысл всей чепухи что я тут наговорил, уберите условие If "[i]" "=" "1" и ПЕРВЫЙ EndIf.
Вы считаете что будет тормозить? Ну как все сделаете, так проверете... А вообще я бы вам посоветовал вставить этот код не в таймер, а например в объект "Рисунок" растянутый на все окно приложения на вкладку "Mouse Enter", и немного изменить сам код (вообще убрать условие), в этом случае окно будет выезжать только тогда, когда курсор конкретно над ним, а не всегда когда он справа.