» Autoplay Media Studio
Zloy_Gelud
Спасиб за файл. Разбираюсь.
Спасиб за файл. Разбираюсь.
tavria2, спасибо огромное! Именно такой способ я и "мучал", только напрочь не знал о DataGrid.EnsureVisible
а задачу решил через SQLite, но и этот метод помучаю еще
А нужно мне было сделать фильтр по одной колонке, в которой мноооого строк с трехзначными числами, некоторые повторяются... Короче, нужен был фильтр, при вводе первого знака в поле ввода, несоответствующие строки "отбрасываются", второй - еще и так до третьего, когда остаются только строки, имеющие в этой колонке три символа, введенные в поле фильтра Т.е. "фильтрация на лету"
а задачу решил через SQLite, но и этот метод помучаю еще
А нужно мне было сделать фильтр по одной колонке, в которой мноооого строк с трехзначными числами, некоторые повторяются... Короче, нужен был фильтр, при вводе первого знака в поле ввода, несоответствующие строки "отбрасываются", второй - еще и так до третьего, когда остаются только строки, имеющие в этой колонке три символа, введенные в поле фильтра Т.е. "фильтрация на лету"
Drusus
Цитата:
Я так понял это камень в мой огород . Код совсем даже не огромный и кол-во строк этого кода никак не сказывается на скорости работы проекта. Если интересно, посмотри объем кода моего примера "EasySlider", в которм ползунок слайдера меняет свою позицию со скоростью движения мышки и ничего не тормозит. Все дело в размере картинки, чем она больше тем больше тормоз, который связан с медлительностью объекта "Image". Если хочешь получить высокую скорость обработки графики - смотри в сторону WinApi.
Цитата:
Ну, для начала давай уточним. Маска применяется к окну или к объекту имеющему handle для отображения/скрытия определенных участков(регионов) и не влияет на реальные размеры окна или объекта. Картинку загружаем не в маску, а в объект "Image", который не имеет handle и соответственно к нему нельзя применить маску.
Цитата:
Скорее всего ты устанавливаешь размер картинки равный размеру окна. Для соблюдения пропорций при изменении размеров картинки нужно учитывать коэффициент соотношения сторон, который нужно получить до изменения размеров.
Цитата:
Что именно тебе кажется не удачным?
Цитата:
Ну здесь по моему полный нонсенс, в большом окне не заметно, а в маленьком заметно. Внимательно проанализируй код, там все операции связанные с изменением позиции и размеров картинки, выполняются когда объект "Image" скрыт и отображается только после всех манипуляций.
GOOSE
Цитата:
К сожалению мне не приходилось работать с SQLite, но я предполагаю, что ты делаешь поиск по базе SQL и в ней получаешь номер строки и колонки найденного значения. Если так, то при большой базе ты несомненно получишь выигрыш в скорости, но только, если в DataGrid не будет производиться никаких изменений (редактирование, сортировка и т.д), т.к. прийдется синхронизировать DataGrid и базу SQL, т.е переброс данных из DataGrid в базу SQL. Если все-же в DataGrid планируются вносить изменения, тогда выигрыш в скорости будет у моего метода поиска.
Цитата:
Подумаю.
Цитата:
В примере ImageViewer 1.2 c http://gooseweb.ru/ для расчёта пропорций написан огромный код в GlobalFunctions, который выполняется очень долго, задержка вывода картинок приличная.
Я так понял это камень в мой огород . Код совсем даже не огромный и кол-во строк этого кода никак не сказывается на скорости работы проекта. Если интересно, посмотри объем кода моего примера "EasySlider", в которм ползунок слайдера меняет свою позицию со скоростью движения мышки и ничего не тормозит. Все дело в размере картинки, чем она больше тем больше тормоз, который связан с медлительностью объекта "Image". Если хочешь получить высокую скорость обработки графики - смотри в сторону WinApi.
Цитата:
Скажем, маска размером 400х300 пикселей, в неё нужно последовательно грузить картинки 1024х768, 500х700 и других размеров, при этом, чтобы пропорции снимка сохранялись.
Ну, для начала давай уточним. Маска применяется к окну или к объекту имеющему handle для отображения/скрытия определенных участков(регионов) и не влияет на реальные размеры окна или объекта. Картинку загружаем не в маску, а в объект "Image", который не имеет handle и соответственно к нему нельзя применить маску.
Цитата:
Сейчас, если гружу картинку, например, широкую, то выравнивается её ширина с шириной маски, а высота меняется не пропорционально, а растягивается по высоте маски (stretch).
Скорее всего ты устанавливаешь размер картинки равный размеру окна. Для соблюдения пропорций при изменении размеров картинки нужно учитывать коэффициент соотношения сторон, который нужно получить до изменения размеров.
Цитата:
А фрагмент кода ниже, вообще, по-моему, неудачный.
Что именно тебе кажется не удачным?
Цитата:
При показе на FullScreen может и незаметно, а при выводе в маску, картинка вначале загружается в одно место, а потом заметно скачет в другое.
Ну здесь по моему полный нонсенс, в большом окне не заметно, а в маленьком заметно. Внимательно проанализируй код, там все операции связанные с изменением позиции и размеров картинки, выполняются когда объект "Image" скрыт и отображается только после всех манипуляций.
GOOSE
Цитата:
а задачу решил через SQLite, но и этот метод помучаю еще
К сожалению мне не приходилось работать с SQLite, но я предполагаю, что ты делаешь поиск по базе SQL и в ней получаешь номер строки и колонки найденного значения. Если так, то при большой базе ты несомненно получишь выигрыш в скорости, но только, если в DataGrid не будет производиться никаких изменений (редактирование, сортировка и т.д), т.к. прийдется синхронизировать DataGrid и базу SQL, т.е переброс данных из DataGrid в базу SQL. Если все-же в DataGrid планируются вносить изменения, тогда выигрыш в скорости будет у моего метода поиска.
Цитата:
"фильтрация на лету"
Подумаю.
tavria2
Цитата:
Что-то не могу найти, как применить маску к WEB объекту? AutoPlay Media Studio 6
Добавлено:
И еще вопрос когда в WEB объекте нажимаешь на правую кнопку мыши вылезает окошко можно ли оставить в нем только функции Выделить все и Копировать.
Цитата:
По поводу удаления рамки и полос прокруток из объекта "Web" - создай маску, в которой вырежешь все не нужное и примени ее объекту "Web".
Что-то не могу найти, как применить маску к WEB объекту? AutoPlay Media Studio 6
Добавлено:
И еще вопрос когда в WEB объекте нажимаешь на правую кнопку мыши вылезает окошко можно ли оставить в нем только функции Выделить все и Копировать.
Здравствуйте!
Прошу помощи профессионалов...
У меня такой вопрос: можно ли создать два отдельных проекта со связью между ними? Например видеопроигрыватель и само окно просмотра видео.
И еще один: может есть у кого-то пример аудио-проигрывателя с плэйлистом (что-то наподобии винампа)...
Заранее благодарен.
Прошу помощи профессионалов...
У меня такой вопрос: можно ли создать два отдельных проекта со связью между ними? Например видеопроигрыватель и само окно просмотра видео.
И еще один: может есть у кого-то пример аудио-проигрывателя с плэйлистом (что-то наподобии винампа)...
Заранее благодарен.
GOOSE
Цитата:
Вывод данных в объект DataGrid, с использованием "фильтра на лету".
DataGridFilter.apz | зеркало [211.65 Кб].
Цитата:
"фильтрация на лету"
Вывод данных в объект DataGrid, с использованием "фильтра на лету".
DataGridFilter.apz | зеркало [211.65 Кб].
vistadimix
Цитата:
см. примеры использования Media Player Plugin здесь: http://www.azman.info/ams/ и в шапке "Реализация Play-листов для Винампа от BOObastis"
Цитата:
пример аудио-проигрывателя с плэйлистом
см. примеры использования Media Player Plugin здесь: http://www.azman.info/ams/ и в шапке "Реализация Play-листов для Винампа от BOObastis"
Devil91
Цитата:
Маска применяется к окнам и объектам имеющих handle, с помощью действия Window.SetMask, в котором в качестве параметров указываются handle окна и имя файла маски. Объект "Web" по сути и есть окно, handle которого можно вытащить из его св-в Web.GetProperties.
Работа с масками, уже неоднократно обсуждалась. Поищи в первой части форума.
Цитата:
Это системное меню - средствами AMS его не изменить. Можно на правый клик мышки навешать свое меню, но оно не всегда замещает системное. Лучше оставить как есть.
Цитата:
Что-то не могу найти, как применить маску к WEB объекту? AutoPlay Media Studio 6
Маска применяется к окнам и объектам имеющих handle, с помощью действия Window.SetMask, в котором в качестве параметров указываются handle окна и имя файла маски. Объект "Web" по сути и есть окно, handle которого можно вытащить из его св-в Web.GetProperties.
Работа с масками, уже неоднократно обсуждалась. Поищи в первой части форума.
Цитата:
И еще вопрос когда в WEB объекте нажимаешь на правую кнопку мыши вылезает окошко можно ли оставить в нем только функции Выделить все и Копировать.
Это системное меню - средствами AMS его не изменить. Можно на правый клик мышки навешать свое меню, но оно не всегда замещает системное. Лучше оставить как есть.
А нет ли альтернативного компонента просмотра HTML с носителя (интернет не нужен) или можно средствами программирования скомплировать такой компанет?(или это впринципи невозможно)
tavria2
Готовлю для тебя подробный "ответ Чемберлену" .
Собираюсь выложить здесь свой проект просмотрщика картинок, если поглядишь и ткнешь носом в ошибки, буду признателен. Думаю, если его довести до ума, то проект может народу пригодиться.
А пока 2 мелких вопроса:
1)каким символом кусок кода перевести в комменты, для строки это двойной дефис, а для целого абзаца?
2)мне нужно условие: если в ThumbList ничего не выбрано, то...
Команды типа noselect не нашёл, а такой вариант работает криво:
nIndex = ThumbList.GetSelectedItems("img_list");
if nIndex ~= "CANCEL" then
Готовлю для тебя подробный "ответ Чемберлену" .
Собираюсь выложить здесь свой проект просмотрщика картинок, если поглядишь и ткнешь носом в ошибки, буду признателен. Думаю, если его довести до ума, то проект может народу пригодиться.
А пока 2 мелких вопроса:
1)каким символом кусок кода перевести в комменты, для строки это двойной дефис, а для целого абзаца?
2)мне нужно условие: если в ThumbList ничего не выбрано, то...
Команды типа noselect не нашёл, а такой вариант работает криво:
nIndex = ThumbList.GetSelectedItems("img_list");
if nIndex ~= "CANCEL" then
Drusus
Цитата:
Спасибо большое! То что нужно, буду рассматривать скрипты в этом примере...
Цитата:
Это я посмотрел в первую очередь - очень познавательно, но не совсем то, что хотел...
А насчёт связи между окон не знаешь? По типу известных видео-плееров...
Цитата:
см. примеры использования Media Player Plugin здесь: http://www.azman.info/ams/
Спасибо большое! То что нужно, буду рассматривать скрипты в этом примере...
Цитата:
и в шапке "Реализация Play-листов для Винампа от BOObastis"
Это я посмотрел в первую очередь - очень познавательно, но не совсем то, что хотел...
А насчёт связи между окон не знаешь? По типу известных видео-плееров...
Drusus
Цитата:
Код: --[[
здесь твой
комментарий
]]--
Цитата:
каким символом кусок кода перевести в комменты, для строки это двойной дефис, а для целого абзаца?
Код: --[[
здесь твой
комментарий
]]--
vistadimix
Это в смысле 2 плавающих окна, как у BSPlayer? Не знаю. Может мэтры подскажут...
Это в смысле 2 плавающих окна, как у BSPlayer? Не знаю. Может мэтры подскажут...
vistadimix
Цитата:
Ты можешь создать два отдельных проекта и после запуска первого, произвести из него запуск второго проекта, но общее время загрузки обоих проектов будет желать лучшего. Прямой связи между проектами не получишь. Можно обмениваться данными через реестр или файл INI, для этого необходимо будет использование таймера в обоих проектах, что-бы через определенное время проверять реестр или файл INI на наличие новых данных.
Цитата:
У меня такой вопрос: можно ли создать два отдельных проекта со связью между ними?
Ты можешь создать два отдельных проекта и после запуска первого, произвести из него запуск второго проекта, но общее время загрузки обоих проектов будет желать лучшего. Прямой связи между проектами не получишь. Можно обмениваться данными через реестр или файл INI, для этого необходимо будет использование таймера в обоих проектах, что-бы через определенное время проверять реестр или файл INI на наличие новых данных.
Drusus, tavria2
Одним словом это невозможно... Ясно, огромное спасибо за ответ! Жаль конечно...
Одним словом это невозможно... Ясно, огромное спасибо за ответ! Жаль конечно...
Добрый день!
У меня есть еще вопросик...
Допустим я сделал интернет-браузер, как мне сделать чтобы загрузку страницы отображал индикатор выполнения (он же прогресс-бар)? Я использую версию 6.0.5.0... Я просто не знаю как связать прогресс бар с загрузкой страницы. Буду очень признателен за обьяснение...
У меня есть еще вопросик...
Допустим я сделал интернет-браузер, как мне сделать чтобы загрузку страницы отображал индикатор выполнения (он же прогресс-бар)? Я использую версию 6.0.5.0... Я просто не знаю как связать прогресс бар с загрузкой страницы. Буду очень признателен за обьяснение...
vistadimix не невозможно, а сложно и глючно. Это разные вещи
даю хинт: делаешь проект с маской, разбивающей окно проекта на два (зрительно, конечно )
В одном реализовываешь функции управления, в другом - проигрывания.
Юзер думает, что у него два окошка А на самом деле одно
vistadimix
ребят! Вы будете смотреть справку?! В хелпе есть примеры, там все понятно. Плюс качаешь любой пример с прогресс баром, и смотришь. Там ведь все просто. С отображением загрузки вебстранички посложнее, но поэкспериментировать можно
Добавлено:
tavria2
О! Оригинально!
Я пытался сделать в одном плагине путем удаления "лишних" строк... А так прикольно
Спасибо большое!
даю хинт: делаешь проект с маской, разбивающей окно проекта на два (зрительно, конечно )
В одном реализовываешь функции управления, в другом - проигрывания.
Юзер думает, что у него два окошка А на самом деле одно
vistadimix
ребят! Вы будете смотреть справку?! В хелпе есть примеры, там все понятно. Плюс качаешь любой пример с прогресс баром, и смотришь. Там ведь все просто. С отображением загрузки вебстранички посложнее, но поэкспериментировать можно
Добавлено:
tavria2
О! Оригинально!
Я пытался сделать в одном плагине путем удаления "лишних" строк... А так прикольно
Спасибо большое!
GOOSE
Цитата:
Это то что пришло мне в голову с самого начала... Хотелось по-настоящему...
А насчет связи через .ini-файл... Это очень интересно... К сожалению, еще не придумал как...
Может кто подскажет как записывать и считывать из файла команды (насколько я понимаю)?
Цитата:
В справку я заглядывал... Просто хотелось узнать мнение людей, которые может с таким сталкивались, которые знают как это сделать проще или какой-то альтернативный вариант, какую-нибудь хитрость...
Добавлено:
Кстати, буквально только что нашел примерчик, где все это реализовано...
Если кому интересно обьясняю...
1. Создаём два обьекта: веб-обьект и прогресс-бар.
2.В On Preload прописываем:
Код: Progress.SetCurrentPos("Plugin1", 0)
range = 0
Цитата:
даю хинт: делаешь проект с маской, разбивающей окно проекта на два (зрительно, конечно )
В одном реализовываешь функции управления, в другом - проигрывания.
Юзер думает, что у него два окошка А на самом деле одно
Это то что пришло мне в голову с самого начала... Хотелось по-настоящему...
А насчет связи через .ini-файл... Это очень интересно... К сожалению, еще не придумал как...
Может кто подскажет как записывать и считывать из файла команды (насколько я понимаю)?
Цитата:
ребят! Вы будете смотреть справку?! В хелпе есть примеры, там все понятно. Плюс качаешь любой пример с прогресс баром, и смотришь. Там ведь все просто. С отображением загрузки вебстранички посложнее, но поэкспериментировать можно
В справку я заглядывал... Просто хотелось узнать мнение людей, которые может с таким сталкивались, которые знают как это сделать проще или какой-то альтернативный вариант, какую-нибудь хитрость...
Добавлено:
Кстати, буквально только что нашел примерчик, где все это реализовано...
Если кому интересно обьясняю...
1. Создаём два обьекта: веб-обьект и прогресс-бар.
2.В On Preload прописываем:
Код: Progress.SetCurrentPos("Plugin1", 0)
range = 0
GOOSE
Цитата:
Это не очень хорошая идея. Пока ты вводишь в Input свой фильтр, при каждом введенном символе будет удаляться определенное кол-во строк - вроде-бы все правильно, ну а если прийдется редактировать твой фильтр...?! Например ты ошибся при вводе и начинаешь жать BackSpace, вот тут и начинается засада - тебе прийдется заново заполнять DataGrid и удалять не нужные строки и так при каждом нажатии BackSpace.
vistadimix
Цитата:
Я бы рекомендовал вместо INI использовать действия: Application.LoadValue и Application.SaveValue - это упрощенный вариант чтения/записи в/из реестр(а).
Например:
Cоздаем два проекта: "Panel.exe" (панель управления) и "Screen.exe" (окно вывода видео). Допустим в проекте "Panel.exe" нажимаем на кнопку "Пуск", которая должна запустить видео в "Screen.exe". Для этого в событии клика кнопки пишем:
Application.SaveValue("Video", "Screen", "START");
"Video" - имя раздела в реестре
"Screen" - параметр (данные для "Screen.exe")
"START" - значение параметра (комманда для "Screen.exe")
В таймере проекта "Screen.exe" проверяем значение параметра "Screen":
Application.LoadValue("Video", "Screen");
и далее в зависимости от полученного значения выполняем те или иные действия.
и т.д.
Цитата:
Я пытался сделать в одном плагине путем удаления "лишних" строк...
Это не очень хорошая идея. Пока ты вводишь в Input свой фильтр, при каждом введенном символе будет удаляться определенное кол-во строк - вроде-бы все правильно, ну а если прийдется редактировать твой фильтр...?! Например ты ошибся при вводе и начинаешь жать BackSpace, вот тут и начинается засада - тебе прийдется заново заполнять DataGrid и удалять не нужные строки и так при каждом нажатии BackSpace.
vistadimix
Цитата:
А насчет связи через .ini-файл... Это очень интересно... К сожалению, еще не придумал как...
Может кто подскажет как записывать и считывать из файла команды (насколько я понимаю)?
Я бы рекомендовал вместо INI использовать действия: Application.LoadValue и Application.SaveValue - это упрощенный вариант чтения/записи в/из реестр(а).
Например:
Cоздаем два проекта: "Panel.exe" (панель управления) и "Screen.exe" (окно вывода видео). Допустим в проекте "Panel.exe" нажимаем на кнопку "Пуск", которая должна запустить видео в "Screen.exe". Для этого в событии клика кнопки пишем:
Application.SaveValue("Video", "Screen", "START");
"Video" - имя раздела в реестре
"Screen" - параметр (данные для "Screen.exe")
"START" - значение параметра (комманда для "Screen.exe")
В таймере проекта "Screen.exe" проверяем значение параметра "Screen":
Application.LoadValue("Video", "Screen");
и далее в зависимости от полученного значения выполняем те или иные действия.
и т.д.
tavria2
Большое спасибо за совет! Обязательно попробую, только в "Screen.exe" нужно прописать какой-то цикл для проверки значений реестра? И еще, "Video" должно содержать полный путь к разделу?
Большое спасибо за совет! Обязательно попробую, только в "Screen.exe" нужно прописать какой-то цикл для проверки значений реестра? И еще, "Video" должно содержать полный путь к разделу?
vistadimix
Цитата:
Нет не нужно. На вкладке OnTimer пишутся скрипты, которые выполняются по таймеру
Периодичность ты сам регулируешь буквально двумя строчками кода Запуском и остановкой таймера
Page.StartTimer(1000); -- запуск таймера каждую секунду
Page.StopTimer(); -- остановка таймера
Цитата:
только в "Panel.exe" нужно прописать какой-то цикл для проверки значений реестра?
Нет не нужно. На вкладке OnTimer пишутся скрипты, которые выполняются по таймеру
Периодичность ты сам регулируешь буквально двумя строчками кода Запуском и остановкой таймера
Page.StartTimer(1000); -- запуск таймера каждую секунду
Page.StopTimer(); -- остановка таймера
GOOSE
Точно! Совсем забыл о страничном таймере. Так же намного проще. Большое спасибо!
Точно! Совсем забыл о страничном таймере. Так же намного проще. Большое спасибо!
vistadimix
Цитата:
GOOSE правильно тебе советует, только там достаточно и одной строчки:
Page.StartTimer(100); -- запуск таймера который будет выполнять код в событии On Timer каждые 100 мсек.
Остановка таймера не нужна, т.к. постоянно нужно проверять реестр на наличие новых команд.
Проект "Panel.exe" тоже должен иметь таймер для отслеживания команд переданных из "Screen.exe".
Например:
Допустим воспроизведение закончилось и необходимо известить об этом проект "Panel.exe" для изменения состояния кнопки "Пуск/Пауза". Для этого в событии таймера "Screen.exe" проверяем текущее состояние видео и если видео завершилось - передаем команду в "Panel.exe":
Application.SaveValue("Video", "Panel", "FINISH");
В таймере проекта "Panel.exe" проверяем значение параметра "Panel":
Application.LoadValue("Video", "Panel");
и далее в зависимости от полученного значения выполняем те или иные действия.
Цитата:
Ну, так передавай еще один параметр:
Application.SaveValue("Video", "FileName", "C:\\видео.avi");
P.S. Все ранее сказанное - это только теория и на практике все окажется гораздо сложнее... Если ты не боишся трудностей, то вперед.
Цитата:
Обязательно попробую, только в "Screen.exe" нужно прописать какой-то цикл для проверки значений реестра?
GOOSE правильно тебе советует, только там достаточно и одной строчки:
Page.StartTimer(100); -- запуск таймера который будет выполнять код в событии On Timer каждые 100 мсек.
Остановка таймера не нужна, т.к. постоянно нужно проверять реестр на наличие новых команд.
Проект "Panel.exe" тоже должен иметь таймер для отслеживания команд переданных из "Screen.exe".
Например:
Допустим воспроизведение закончилось и необходимо известить об этом проект "Panel.exe" для изменения состояния кнопки "Пуск/Пауза". Для этого в событии таймера "Screen.exe" проверяем текущее состояние видео и если видео завершилось - передаем команду в "Panel.exe":
Application.SaveValue("Video", "Panel", "FINISH");
В таймере проекта "Panel.exe" проверяем значение параметра "Panel":
Application.LoadValue("Video", "Panel");
и далее в зависимости от полученного значения выполняем те или иные действия.
Цитата:
И еще, "Video" должно содержать полный путь к разделу?
Ну, так передавай еще один параметр:
Application.SaveValue("Video", "FileName", "C:\\видео.avi");
P.S. Все ранее сказанное - это только теория и на практике все окажется гораздо сложнее... Если ты не боишся трудностей, то вперед.
tavria2
Еще раз спасибо за помощь! Трудности не люблю, но и не боюсь, так что буду пробовать)
Еще раз спасибо за помощь! Трудности не люблю, но и не боюсь, так что буду пробовать)
Добрый вечер всем!
У меня возник очередной вопрос, который уже пол дня пытаюсь разрешить, но безуспешно...
Как сделать чтобы если в обьекте "Input" пусто, действие не выполнялось при нажатии на кнопку, которая например производит сложение введённого элемента с заданым?
Чтобы невозможно было ввести символы и буквы я назначил маску ####
Подскажите пожалуйста...
У меня возник очередной вопрос, который уже пол дня пытаюсь разрешить, но безуспешно...
Как сделать чтобы если в обьекте "Input" пусто, действие не выполнялось при нажатии на кнопку, которая например производит сложение введённого элемента с заданым?
Чтобы невозможно было ввести символы и буквы я назначил маску ####
Подскажите пожалуйста...
tavria2, GOOSE, Zloy Gelud, Kindly
Закончил таки я свой просмотрщик картинок. Основан на ваших примерах и советах, всех очень благодарю за помощь. Для доводки до ума привлёк знакомого программиста, он поначалу долго плевался от ограничений скриптового языка APMS (говорил, например, что в любом нормальном языке пропорции картинок ставятся автоматом), но помог. Прошу посмотреть и дать комментарии.
Особенности:
1) в проекте прописаны пути к папкам с картинками (Autoplay\Images);
2) в подпапках Full и Small находятся оригиналы и превью с одинаковыми именами;
3) при показе страницы превью грузятся в Thumblist;
4) при этом создаются 4 массива с инфой о габаритах превью-картинок и позиции объекта Image (маска) для вывода картинок, а также вычисляются пропорции превью;
5) на основании полученных превью-пропорций в Image выводятся оригиналы (из-за этого немного, в пределах 1-1,5%, теряем в точности расчётов пропорций и чуть замедляем прелоад страницы, но выигрываем в скорости показа оригиналов);
6) также реализован просмотр в стандартной виндовой «Программе просмотра изображений и факсов».
ImageViewer with Duo Directories, 1Mb
P.S. Очередной вопрос, как же без него
Кто-нибудь использует Media Player Plugin? Там вроде всё понятно, но есть одна загвоздка – во всех виденных мной примерах плейлист для плагина формируется в ListBox, соответственно, в плагин файлы передаются не списком, а по одному, из-за чего не работают кнопки Preview-Next. Как заставить его брать файлы из стандартных плейлистов: wpl или m3u? Есть мысль, что для этого нужно вызвать C:\Program Files\Windows Media Player\wmplayer.exe с какой-то dll из той же папки, только вот с какой?
Закончил таки я свой просмотрщик картинок. Основан на ваших примерах и советах, всех очень благодарю за помощь. Для доводки до ума привлёк знакомого программиста, он поначалу долго плевался от ограничений скриптового языка APMS (говорил, например, что в любом нормальном языке пропорции картинок ставятся автоматом), но помог. Прошу посмотреть и дать комментарии.
Особенности:
1) в проекте прописаны пути к папкам с картинками (Autoplay\Images);
2) в подпапках Full и Small находятся оригиналы и превью с одинаковыми именами;
3) при показе страницы превью грузятся в Thumblist;
4) при этом создаются 4 массива с инфой о габаритах превью-картинок и позиции объекта Image (маска) для вывода картинок, а также вычисляются пропорции превью;
5) на основании полученных превью-пропорций в Image выводятся оригиналы (из-за этого немного, в пределах 1-1,5%, теряем в точности расчётов пропорций и чуть замедляем прелоад страницы, но выигрываем в скорости показа оригиналов);
6) также реализован просмотр в стандартной виндовой «Программе просмотра изображений и факсов».
ImageViewer with Duo Directories, 1Mb
P.S. Очередной вопрос, как же без него
Кто-нибудь использует Media Player Plugin? Там вроде всё понятно, но есть одна загвоздка – во всех виденных мной примерах плейлист для плагина формируется в ListBox, соответственно, в плагин файлы передаются не списком, а по одному, из-за чего не работают кнопки Preview-Next. Как заставить его брать файлы из стандартных плейлистов: wpl или m3u? Есть мысль, что для этого нужно вызвать C:\Program Files\Windows Media Player\wmplayer.exe с какой-то dll из той же папки, только вот с какой?
tavria2
GOOSE
Кстати, попробывал осуществить связь между двух окон... Работает исключительно! Скорость ответа высокая! Спасибо огромное за совет!
GOOSE
Кстати, попробывал осуществить связь между двух окон... Работает исключительно! Скорость ответа высокая! Спасибо огромное за совет!
tavria2
Цитата:
Что-то я не нашел как применить маску к WEB объекту. Подскажите пожалуйста.
Цитата:
Работа с масками, уже неоднократно обсуждалась. Поищи в первой части форума.
Что-то я не нашел как применить маску к WEB объекту. Подскажите пожалуйста.
Devil91
Цитата:
Думать не хотим, ищем готовые решения?
Код: tProp = Web.GetProperties("Web1"); -- св-ва объекта Web
hWnd = tProp.WindowHandle; -- handle объекта Web
Window.SetMask(hWnd, _SourceFolder.."\\Autoplay\\Images\\MyMask.bmp", true, 0); -- применяем маску
Цитата:
Что-то я не нашел как применить маску к WEB объекту. Подскажите пожалуйста.
Думать не хотим, ищем готовые решения?
Код: tProp = Web.GetProperties("Web1"); -- св-ва объекта Web
hWnd = tProp.WindowHandle; -- handle объекта Web
Window.SetMask(hWnd, _SourceFolder.."\\Autoplay\\Images\\MyMask.bmp", true, 0); -- применяем маску
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
Предыдущая тема: Symantec Endpoint Protection - SEP
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.