Ru-Board.club
← Вернуться в раздел «Программы»

» Autoplay Media Studio

Автор: tavria2
Дата сообщения: 02.11.2006 21:56
Toxaaa

Цитата:
А как сделать такое: если клавиша мыши нажата и я её даржу то виполнять действие, если отпустил то действие не выполнять.

Page=>On MouseButton - параметр e_Type, который возвращает состояние клавиш мыши.
См. справку.

Добавлено:
Да, по поводу не корректного возвращения типа - разработчики AMS признали баг и внесли его в список багов.
Автор: Toxaaa
Дата сообщения: 03.11.2006 10:26
Привет, вот зделал небольшой пример для масштабирования и "тягания" фотки по екрану. Почему картинка немножко отстаёт от указателя мыши?
D5 80Кб


Цитата:
Page=>On MouseButton - параметр e_Type, который возвращает состояние клавиш мыши.
См. справку

Спасибо.
Автор: londa790213
Дата сообщения: 03.11.2006 12:38
Приветствую всех.

Наконец-то закончил работу над оболочкой рекламного диска. До корки зачитал ваш форум.

К сожалению, осталось 2 проблемы, которые, хоть и описываются на форуме, но видимо недостаточно подробно.

1. Как сделать что бы в объекте «Paragraph» можно было выделять и копировать текст. Использовать объект «input» в моем случае нельзя?
2. Как в объекте «tree» сделать так чтобы от начала текста до верхней границы объекта появилось небольшое пространство?

Такие вот проблемы.
Автор: GOOSE
Дата сообщения: 03.11.2006 12:51
londa790213

Цитата:
. Как сделать что бы в объекте «Paragraph» можно было выделять и копировать текст. Использовать объект «input» в моем случае нельзя?

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

Цитата:
2. Как в объекте «tree» сделать так чтобы от начала текста до верхней границы объекта появилось небольшое пространство?

Тоже никак. Могу предложить выставить в свойствах дерева "показывать без рамки" и отодвинуть само дерево в нужное место...
Автор: Lexua
Дата сообщения: 03.11.2006 13:21
tavria2
Проект здесь _http://rapidshare.com/files/1797312/sdupdate3.apz.html
Писал где-то пол года назад. Так что сильно строго не судите.
Автор: tavria2
Дата сообщения: 03.11.2006 19:41
Lexua
Проект довольно сложный, тяжело ориентироваться из-за множества наложенных друг на друга объектов, которые содержат довольно большой код. Детальную разборку делать не стал - крышу сносит . Могу сказать, что проект у меня работает не стабильно, список обновлений показывает как хочет, то 1 файл, то 39 файлов. При обновлении периодически возникали ошибки связанные с распаковкой и записью некоторых файлов. Не совпал общий размер файлов из переменной "totalselsize" - с реальным.

Если устранить вышеуказанные проблемы, то должен работать нижеследующий код для общего прогресса:

Код: nBytesReadTotal=0;

function HTTPCallback (nBytesRead, nFileSize, nTransferRate, nSecondsLeft, sSecondsLeftFormat, sMessage)
    if sMessage == "" then
        -- no server message is present, update status
        nPercent = Math.Round((nBytesRead/nFileSize)*100,0);
        Progress.SetCurrentPos("progress", nPercent);
        kbytesleft = Math.Round((nFileSize - nBytesRead)/1024, 1);
        Progress.SetText("progress", nPercent .. "%");
        ListBox.SetItemText("ListBox1", m, name.." - "..kbytesleft.." Kb left ");
        nBytesReadTotal = nBytesReadTotal + nBytesRead;        
        UpdateOverallTaskProgress(nBytesReadTotal);
    end

function UpdateOverallTaskProgress (nBytesReadTotal)
    nPercent = Math.Round((nBytesReadTotal/totalselsize)*100,0);    
    Progress.SetCurrentPos("Progress1", nPercent);
    Progress.SetText("Progress1", nPercent .. "%");
end
                    
Автор: Lexua
Дата сообщения: 03.11.2006 21:22
tavria2

Цитата:
Может лучше скачать с варезника готовый updater?

Какой? SDU 1.10? Так это и есть типа мое творение, просто я к нему решил вернутся и немного чего нибудь пофиксить. Просто на это ни времени ни желания особо небыло, у народа работает уже давно. Особо не жалуются, но я сам вижу его недостатки.
Цитата:
Могу сказать, что проект у меня работает не стабильно, список обновлений показывает как хочет, то 1 файл, то 39 файлов.
Странно, ни разу такого не возникало. sdup.ini снести нужно, и sdu сформирует новый и предложит скачать только базу. Потом вроде норма.
Цитата:
При обновлении переодически возникали ошибки связанные с распаковкой и записью некоторых файлов.
Это так. ибо файлы защищены от записи, при запущеном SD. Это я тоже хочу несколько пофиксить. Даже родной апдейтер просит перезагрузку при апдейте некоторых компонентов программы.

А вобщем спасибо за помощь, поробую


Автор: tavria2
Дата сообщения: 03.11.2006 21:54
Lexua

Цитата:
Какой? SDU 1.10? Так это и есть типа мое творение

Угу, не знал, что твое . Просто смотрел последние посты, а там ссылки постили все кому не лень.
Автор: Toxaaa
Дата сообщения: 04.11.2006 08:01
tavria2

Цитата:
Вот нашел примерчик, думаю то, что тебе нужно.

Спасибо именно то что нужно, уже прилепил к проекту...
Автор: Toxaaa
Дата сообщения: 04.11.2006 19:46
Привет всем, зделал увеличение и уменьшение фоток (пока что кнопками) при большом увеличении комп начинает тормозить. AMS зглаживает в рисунке пиксели (при большом увеличении я не вижу квадратных пикселов, я вижу смазаную картинку) возможно это и тормозит ведь AMS нужно прощитать каждый пиксель и сделать между ними градиент, это нигде отключить нельзя ???
Автор: GOOSE
Дата сообщения: 04.11.2006 22:55
Toxaaa

Цитата:
это нигде отключить нельзя ???

Насколько я понимаю, нет.
Мне кажется, что делать большое увеличение не стоит... точнее, увеличение должно быть только ДО НОРМАЛЬНОГО размера фотки. Тогда и качество будет самым лучшим.
А с уменьшением AMS справляется, на мой взгляд, лучше
Автор: Toxaaa
Дата сообщения: 05.11.2006 08:01
GOOSE

Цитата:
увеличение должно быть только ДО НОРМАЛЬНОГО размера фотки. Тогда и качество будет самым лучшим.

Наверное так и придётся делать просто иногда хочется увеличить обьект на весь экран не смотря на качество...
Автор: Toxaaa
Дата сообщения: 06.11.2006 07:41
Привет сделал по примеру tavria2 тягание мышкой фотки, вот теперь ламаю голову как ограничить тягание границами фотки? Вот код:

ON Mouse Move

if not System.IsKeyDown(1) then
    bReady = false;
end

if bReady then
    nChangeX = e_X - nOrigX;
    nChangeY = e_Y - nOrigY;
    Image.SetPos("Img1", nPos.X + nChangeX, nPos.Y + nChangeY);
end

On mouse Button

if masctab == true then
if e_Type == 2 then
ShowPreview();
end
if e_Type == 0 then
    nOrigX = e_X;
    nOrigY = e_Y;
    nPos = Image.GetPos("Img1");

--pagesize = Page.GetSize();
--imagesize = Image.GetSize("Img1");
--imagepos = Image.GetPos("Img1");
--dx = (imagesize.Width)-(pagesize.Width)
--dy = (imagesize.Height)-(pagesize.Height)
--if imagepos.X > -dx and imagepos.Y > -dy then
    bReady = true;
else
    bReady = false;
end
end
--end

Пробывал ограничение вписывать в On mouse Button но картинка при достижения условия вообще не двигается, а нужно чтобы она не двигалась только в эту сторону.
Пожалуйста подскажите алгоритм ограничения...
Автор: tavria2
Дата сообщения: 06.11.2006 10:09
Toxaaa
Вот, разбирайся:

On Mouse Button
Код: if e_Type == 0 and sObject then
    nOrigX = e_X;
    nOrigY = e_Y;
    nPos = Image.GetPos(sObject);
    nSize = Image.GetSize(sObject);
    nSizePage = Page.GetSize();
    bReady = true;
else
    bReady = false;
end
Автор: Toxaaa
Дата сообщения: 06.11.2006 12:39
tavria2

Цитата:
Вот, разбирайся:

Спасибо за код уже разобрался, я наверное не коректно задал вопрос, этот код обеспечивает тягание картинки внутри екрана, тото у меня ничего не получается я же хочу получить тягание увеличеной картинки которая в екран не помещается,(чтобы можна было детально рассматреть.)Ограничить я хотел чтобы не можна было потянуть картинку так чтобы был виден фон страницы.

Простой заменой математических знаков получил желаемый результат.
Автор: tavria2
Дата сообщения: 06.11.2006 14:28
Toxaaa

Цитата:
Ограничить я хотел чтобы не можна было потянуть картинку так чтобы был виден фон страницы.
Поменяй операторы сравнения на противоположные.

On Mouse Move
Код: if not System.IsKeyDown(1) then
bReady = false;
end

if sObject and bReady then
nChangeX = e_X - nOrigX;
nChangeY = e_Y - nOrigY;

nX=nPos.X + nChangeX;
nY=nPos.Y + nChangeY;

if (nX >= 0) then nX = 0; end;
if ((nX + nSize.Width) <= nSizePage.Width) then nX = nSizePage.Width-nSize.Width; end;
if (nY >= 0) then nY = 0; end;
if ((nY + nSize.Height) <= nSizePage.Height) then nY = nSizePage.Height-nSize.Height; end;

Image.SetPos(sObject, nX, nY);
end
Автор: Toxaaa
Дата сообщения: 06.11.2006 17:12
tavria2

Цитата:
Поменяй операторы сравнения на противоположные.

Спасибо я уже это зделал просто в пост добавил чуть позже. А у меня ещё вопрос можно командой поменять цвет заливки окна или установить градиент ?.
Автор: tavria2
Дата сообщения: 06.11.2006 19:28
Toxaaa

Цитата:
А у меня ещё вопрос можно командой поменять цвет заливки окна или установить градиент ?.

Стандартно IMHO нельзя - используй картинку или SHAPE.
Автор: maod
Дата сообщения: 07.11.2006 10:10
Мужики всем здасти!
Вот решил сделать оболочку для своей библиотеки для этого использовал пример Advanced_ListBox_Techniques_V6.apz взятый по-моему на http://www.gooseweb.ru/, хотел сделать чтоб выбранная книга в ListBox при двойном нажатии открывалась в программе для чтения электронных книг, но ничего не выходит программа открывается но пишет что файл пустой. Это моя первая попытка работы в "AutoPlay Media Studio 6"
Помогите, что неправильно сделал .Разные примеры на форуме видел но ничего не смог сделать.


tSelected = ListBox.GetSelected("LB_Files");

if tSelected then    
    for nTableIndex, nListBoxIndex in tSelected do        
        sFilePath = ListBox.GetItemData("LB_Files", nListBoxIndex);        
         File.Run("AutoPlay\\Docs\\Tom.exe", "sFilePath", "", SW_SHOWNORMAL, false);
    end
end
Автор: GOOSE
Дата сообщения: 07.11.2006 11:51
maod
А что у тебя возвращает sFilePath?

Ну и потом, ты привел кусок кода, из которого совсем не ясна общая картина... Как у тебя формируется ListBox?
Автор: tavria2
Дата сообщения: 07.11.2006 11:55
maod

Цитата:
программа открывается но пишет что файл пустой

Скорее всего, ты не правильно указываешь путь к файлу в "ItemData" ListBox'а, возможно ты использовал в пути одинарные слеши, чего делать нельзя.

Например:
C:\myfile.txt - не правильно.
C:\\myfile.txt - правильно.

Добавлено:
Ага, а зачем ты переменную взял в кавычки?

Цитата:
File.Run("AutoPlay\\Docs\\Tom.exe", "sFilePath", "", SW_SHOWNORMAL, false);

Код: File.Run("AutoPlay\\Docs\\Tom.exe", sFilePath, "", SW_SHOWNORMAL, false);
Автор: GOOSE
Дата сообщения: 07.11.2006 12:57
tavria2

Цитата:
Ага, а зачем ты переменную взял в кавычки?

Точно Я и не заметил... стареем...
Автор: Toxaaa
Дата сообщения: 07.11.2006 13:29
Привет, подскажите пожалуйста сам алгоритм чтобы когда я нажимал на кнопку переменная а=false, а после последующего нажатия на эту самую кнопку переменная а=true, а то чтото я запутался совсем.
Автор: tavria2
Дата сообщения: 07.11.2006 13:45
Toxaaa

Цитата:
подскажите пожалуйста сам алгоритм

Объяви глобальную переменную и присвой ей значение по умолчанию. В событии кнопки Click, по условию проверяй значение этой переменной и меняй на противоположное.
Автор: maod
Дата сообщения: 07.11.2006 15:17
GOOSE
tavria2

Большое спасибо, все получилось все из-за переменной в кавычках.
Возник еще вопросик , ListBox формируется при нажатии кнопки, открывается стандартный диалог выбора каталога;

sDirectory = Dialog.FolderBrowse("Выберите каталог.", "");

if sDirectory ~= 'CANCEL' then    
    tFiles = File.Find(sDirectory, "*.*", false, false, nil);    
    
    if tFiles then        
        for nIndex, sFilePath in tFiles do            
            sData = sFilePath;            
            sText = String.SplitPath(sFilePath).Filename;                
            ListBox.AddItem("LB_Files", sText, sData);
        end
    end
end

Можно ли сделать чтоб при запуске программы ListBox формировался автоматически беря данные о книгах которые находятся например в директории AutoPlay\\Docs\\Book
Автор: GOOSE
Дата сообщения: 07.11.2006 15:38
maod

Цитата:
Можно ли сделать чтоб при запуске программы ListBox формировался автоматически

Твой диалог выбирает нужную директорию и сохраняет путь в переменную sDirectory.
Закомментируй первые две строки в твоем коде, вместо них добавь одну, в которой присвой этой переменной нужное значение, все остальное - без изменений.

ЗЫ Извини, код не привожу, так как он очень простой, достаточноподробно расписано в помощи (с примерами). А без понимания таких простых вещей работы с программой не получится.
Если все же будут проблемы - обращайся, поможем обязательно!
Автор: maod
Дата сообщения: 07.11.2006 16:19
GOOSE

Спасибо за помощь.
Автор: Toxaaa
Дата сообщения: 07.11.2006 17:25
tavria2

Цитата:
Объяви глобальную переменную и присвой ей значение по умолчанию. В событии кнопки Click, по условию проверяй значение этой переменной и меняй на противоположное.

Спасибо зделал всё работает.
Автор: DenVl
Дата сообщения: 07.11.2006 19:12
Имеется рисунок *.bmp. Как сделать, чтобы на Click загружалась определенная область в этом рисунке?
Автор: maod
Дата сообщения: 07.11.2006 22:06
GOOSE

Если нетрудно обьясни , вот вроде собрал проэкт
на событие страницы OnShow вставил код:


sDirectory = "AutoPlay\\Docs\\Book"
    tFiles = File.Find(sDirectory, "*.*", false, false, nil);    
    
    if tFiles then        
        for nIndex, sFilePath in tFiles do            
            sData = sFilePath;            
            sText = String.SplitPath(sFilePath).Filename;                
            ListBox.AddItem("LB_Files", sText, sData);
        end
    end

на ListBox On Double-Click;

tSelected = ListBox.GetSelected("LB_Files");
if tSelected then
    
    for nTableIndex, nListBoxIndex in tSelected do        
        sFilePath = ListBox.GetItemData("LB_Files", nListBoxIndex);        
         File.Run("AutoPlay\\Docs\\Tom.exe", sFilePath, "", SW_SHOWNORMAL, false);
    end
end

так вот программа открывается, но опять пишет что файл пустой.
В чем трабла?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Matrix Screensaver


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.