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

» Autoplay Media Studio

Автор: NightW0lf
Дата сообщения: 05.06.2007 00:24
AleksejTokarev

Цитата:
Я хотел- бы, что -бы во время установки, в риестр устанавливался файлик, с
которого в последствии проект считывал-бы инфу и активировал кнопку "Удалить"
а кнопку "Установить" делал невидимой.

Вот вроде сделал как ты и просил!
Автор: tavria2
Дата сообщения: 05.06.2007 08:15
Zloy_Gelud

Цитата:
Допустим на первой странице я получаю значение переменной sPath, а вот уже на третьей странице проекта я не получается использовать значение этой переменной.

Если переменная sPath глобальная, т.е. не указана, как local sPath, то после присвоения ей значения она будет доступна из любого места проекта. В случае, если в процессе работы проекта, переменная sPath переназначается, то для сохранения ее первоначального значения можно завести еще одну глобальную переменную и присвоить ей необходимое значение, например: sPath1 = sPath.
Автор: AleksejTokarev
Дата сообщения: 05.06.2007 11:48
Avandom
NightW0lf

Ребята пасибо вам огромное, за помощ, помогли очень.
Теперь моно со спокойной душой дабить мой проект.

А то ходил с этим риестром вокруг да около.


"Данке" ещё разок!!!
Автор: Zloy_Gelud
Дата сообщения: 05.06.2007 18:42
tavria2

Цитата:
после присвоения ей значения она будет доступна из любого места проекта

Да, ты прав...эт просто я в коде немного накосячил..
Автор: Avandom
Дата сообщения: 05.06.2007 22:40
Привет!!! Кто-нибудь знает как получить доступ к Редактору объектов групповой политики (gpedit.msc), а точнее - там очень много настроек на вкладке Конфигурация пользователя -> Административные шаблоны, которые и хочется со своей программы управлять...
Или это нужно через командную строку писать скрипты и запускать с помощью команды File.Run???
Автор: Zloy_Gelud
Дата сообщения: 07.06.2007 00:08
Доброго времени суток господа!
Появилась еще одна проблемка: Как связать объект "ComboBox" и объект "Tree"? А именно: При выборе определенной строки в "ComboBox"е ставились галочки напротив определенных нод в объекте "Tree".
Автор: tavria2
Дата сообщения: 07.06.2007 10:07
Zloy_Gelud
Информации не достаточно. Что у тебя в Tree и ComboBox? Какая у них зависимость между собой? Давай подробнее...
Автор: Zloy_Gelud
Дата сообщения: 07.06.2007 19:42
tavria2
Хотелось бы сделать как в InnoSetup:
Допустим в ComboBoxe есть три строчки: Full Installation, Default installation и Custom installataion.
А объект "Tree" выглядит примерно так:

Цитата:
1 One
1.1 One_One
1.2 One_Two
2 Two
2.1 Two_One
2.2 Two_Two
2.3 Two_Three
3 Three
3.1 Three_One
3.2 Three_Two
...

Так вот: При выборе Full Installation в ComboBoxe ставились галочки напротив всех нод, при выборе Default installation - напротив, к примеру, нод 1 и 1.2, 2, 2.1 и 2.2, 3 и 3.1. Если выбраны другие ноды, отличные от нод для Default installation, то в ComboBoxe выбиралось Custom installataion.
И еще: Если ставить галочку у ноды 3, то чтоб автоматически ставились галочки и у дочерних нод ( 3.1, 3.2) и наооборот, если все галочки у дочерних индексов снимаются ( 3.1, 3.2), то и у
главного индекса (3) она снимается.
Автор: tavria2
Дата сообщения: 08.06.2007 00:17
Zloy_Gelud
Создай 2 таблицы. В одну таблицу помести индексы всех узлов Tree - это для полной установки, а в другую - те индексы, которые должны быть помечены по умолчанию. В цикле очищаешь все пометки, а затем устанавливаешь метку на узлах с индексами указанными в 1-й или 2-й таблице, в зависимости от выбора в ComboBox. В событии On Check объекта Tree делаешь проверку на наличие дочерних узлов и в цикле по условию устанавливаешь или снимаешь выбор с дочерних узлов, затем устанавливаешь выбранный пункт ComboBox'а - "Custom".
Автор: Zloy_Gelud
Дата сообщения: 08.06.2007 01:18
tavria2
Ух...СПАСИБО...ща буду пробовать, но чуствую будут вопросы...
Автор: tavria2
Дата сообщения: 08.06.2007 08:55
Zloy_Gelud
Управление объектом Tree с помощью ComboBox.

TreeLinkCombo.apz (34.7 Кб).
Автор: Zloy_Gelud
Дата сообщения: 08.06.2007 18:04
tavria2
Ток хотел к тебе с вопросами обратиться, а ты уже примерчик состряпал! И как это у тебя так быстро получается?
В общем, БОЛЬШОЕ ТЕБЕ СПАСИБО!!!
Автор: kalmykoff
Дата сообщения: 09.06.2007 11:42
Посмотрел в FAQ чтоб развернуть проект на весь экран,кода куча, но непоняно,
получается если я делаю проект 800Х600 то при развороте на full screen
все кнопки у меня съезжают в левый верхний угол.А позицию кнопок надо прописывать
под каждое возможное расширения экрана у пользователя так что ли?

За посказку по видео , спасибо.стр.88,но я нашел выход из положения так.
Оказывается если где-то рядом я размещаю объект video2 ,то первый, при нажатии
на кнопку не моргает,только 2 объект я делаю совсем маленький.

Хочется страницу украсить,GIF не читается,а на многих офисных машинах
без интернета Flash не прочтется , а устанавливать не будут ,вот и стряпаю из AVIшек.

А по Full screen если есть наработка- выложите Please!!!
По примерам легче все-таки разбираться.
Автор: Zloy_Gelud
Дата сообщения: 12.06.2007 20:05
HELP!
On Click кнопки "Далее":

Код: function ValidPath()
    local sPath = Input.GetText("Install Directory Entry");     -- путь установки                                                
    local tPath = String.SplitPath(sPath);                        -- разлаживаем путь...                                    
    local cDrive = String.Left(sPath, 3);                        -- первые 3 знака в пути установки
    tDrives = Drive.Enumerate();                                -- таблица дисков
        -- если буква диска не получена или третий символ в пути установки не является слэшем или путь установки менее 3 знаков
        if (tPath.Drive == "") or (String.Right(cDrive, 1) ~= "\\") or (String.Length(sPath) <= 3) then
            Dialog.Message("Ошибка", "Вы должны указать полный путь с буквой диска; например:\r\n\nC:\\APP", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
        else
            for i, cDriveLetter in tDrives do                        -- перебитаем в цикле по одному диску
                cType = Drive.GetType(cDriveLetter);                -- тип диска
                    if (cType == 3) then                            -- если диск - жесткий диск
                        if (tPath.Drive.."\\" ~= cDriveLetter) then    -- если диск в пути установки является жестким диском
                            Dialog.Message("Ошибка", "Установка на этот диск не возможна.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
                        end
                        if (tPath.Drive.."\\" == cDriveLetter) then -- если диск установки существует и является жеским диском
                            break;                                    -- прерываем
                        end
                    end
            end
        end
end
Автор: tavria2
Дата сообщения: 12.06.2007 22:15
Zloy_Gelud
При сравнении символьных строк учитывается регистр. Преобразуй сравниваемые строки к нижнему или верхнему регистру.

Не понятно зачем перебирать в цикле все диски системы, если буква диска вытягивается из введенного пути?! Отсюда у тебя и кол-во сообщений, зависящее от кол-ва дисков в системе.
Автор: Zloy_Gelud
Дата сообщения: 12.06.2007 22:43
tavria2

Цитата:
Не понятно зачем перебирать в цикле все диски системы, если буква диска вытягивается из введенного пути?! Отсюда у тебя и кол-во сообщений, зависящее от кол-ва дисков в системе.

Но путь установки может быть введен и руками, а не только использованием кнопки "обзор". Поэтому и требуется проверить, является ли tPath.Drive локальным диском и вобще существует ли он...
Автор: tavria2
Дата сообщения: 12.06.2007 22:53
Zloy_Gelud
Ну, так и проверяй тип tPath.Drive, полученный из Input...
Автор: Zloy_Gelud
Дата сообщения: 12.06.2007 23:03
tavria2
Я ж его и проверял:

Цитата:
...
if (tPath.Drive.."\\" ~= cDriveLetter) then -- если диск в пути установки является жестким диском
...

Автор: tavria2
Дата сообщения: 12.06.2007 23:13
Zloy_Gelud
Зачем там цикл, помойму хватит и if (Drive.GetType(tPath.Drive) == 3) then...
Автор: Avandom
Дата сообщения: 12.06.2007 23:45
Zloy_Gelud
У тебя получается цикл, при котором, если ты выберешь диск "C:" то у тебя он приостановится, а если ты выберешь диск "D:", то

Цитата:
if (tPath.Drive.."\\" ~= cDriveLetter) then

сначала сверится с диском С и так как возвращается в данном случае true, то и выходит один раз сообщение

Цитата:
Dialog.Message("Ошибка", "Установка на этот диск не возможна.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);

Если же ты выбираешь другой диск, отличный от своих локальных, то у тебя будет два раза выводится сообщение, так как цикл два раза проверит и два раза условия будут true и поэтому выводится два раза сообщение.

делай так:

Код:
local sPath = Input.GetText("Install Directory Entry"); -- путь установки
local tPath = String.SplitPath(sPath); -- разлаживаем путь...
local cDrive = String.Left(sPath, 3); -- первые 3 знака в пути установки
tDrives = Drive.Enumerate(); -- таблица дисков
-- если буква диска не получена или третий символ в пути установки не является слэшем или путь установки менее 3 знаков
if (tPath.Drive == "") or (String.Right(cDrive, 1) ~= "\\") or (String.Length(sPath) <= 3) then
    Dialog.Message("Ошибка", "Вы должны указать полный путь с буквой диска; например:\r\n\nC:\\APP", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
    else
        for i, cDriveLetter in tDrives do -- перебитаем в цикле по одному диску
            if (Drive.GetType(tPath.Drive) == 3) then
                else
    Dialog.Message("Ошибка", "Установка на этот диск не возможна.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
        break;
    end
        end
end
Автор: Avandom
Дата сообщения: 13.06.2007 12:16
tavria2
Возвращаясь к программе Navigator очень нужна такая реализация с деревом, вот и попытался сделать по времени закрытие окна с сообщением "C stack overflow". Но почему-то не получается его закрыть.
Имя класса этого окна с ошибкой - #32770
Имя Заголовка окна естественно - Error
Но функция

Код:
Page.StartTimer(1000);
function KillError(hError)
hError = DLL.CallFunction("C:\\WINDOWS\\System32\\user32.dll", "FindWindowA", "#32770,\"Error\"", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
if (hError) then
Window.Close(hError, CLOSEWND_SENDMESSAGE);
else
end
end
Автор: tavria2
Дата сообщения: 13.06.2007 15:25
Avandom

Цитата:
Возвращаясь к программе Navigator очень нужна такая реализация с деревом, вот и попытался сделать по времени закрытие окна с сообщением "C stack overflow".

А какой смысл закрывать окно ошибки? Часть данных уже утеряна...
Возможно я бы нашел обход проблеммы с переполнением стека, но у меня не получается смоделировать такую ситуацию.
Автор: Zloy_Gelud
Дата сообщения: 13.06.2007 17:02
tavria2
Avandom
СПАСИБО
Автор: Avandom
Дата сообщения: 13.06.2007 22:42
tavria2
Да смысл только один - нужна такая реализация с объектом tree.
Как ты думаешь, а если попробовать через АПИ-функции FindFirstFile и FindNextFile реализовать, получится??? Или ошибка содержится в объекте tree???
Автор: tavria2
Дата сообщения: 14.06.2007 09:24
Avandom

Цитата:
Как ты думаешь, а если попробовать через АПИ-функции FindFirstFile и FindNextFile реализовать, получится???
Думаю, что нет. Дело в том, что в этих ф-циях используется 2-й параметр, как структура и к тому же не ByVal, а AMS поддерживает только ByVal.

Цитата:
Или ошибка содержится в объекте tree???

Если-бы я знал... Предполагаю что ошибка содержится в LUA.
Автор: tavria2
Дата сообщения: 15.06.2007 17:05
2ALL
У кого были проблемы с переполнением стека в примере Navigator, просьба протестировать:
Navigator 2.3.apz (36.5 Кб).
Автор: Avandom
Дата сообщения: 15.06.2007 21:14
tavria2
Это конечно здорово!!! Работает нормально, но я не вижу никакой разницы между Navigator 2.2 и Navigator 2.3...
Может я упустил чего...
Объясни пожалуйста, в чем все-таки проблема была????
Автор: tavria2
Дата сообщения: 15.06.2007 23:08
Avandom
На короткое время мне был предоставлен доступ к компу на котором, присутствовала проблема с переполнением стека. К сожалению мне не хватило этого времени для проведения экспериментов и выявления истинной причины вызывающей проблему со стеком.

Цитата:
но я не вижу никакой разницы между Navigator 2.2 и Navigator 2.3...

Разница в том, что я закоментировал в событии On Expanded объекта Tree, строки отвечающие за изменение вида картинки узла (открытая/закрытая папка), т.к. любое изменение св-ва узла в событии On Expanded, при формировании дочерних узлов - вызывало переполнение стека. Также был заменен оператор else на elseif.
Автор: mkvrd
Дата сообщения: 16.06.2007 07:04

Автор: Kindly
Дата сообщения: 16.06.2007 17:30
А реально ли с помощью каких-нибудь библиотек прикрутить подсветку синтаксиса кода, например в объекте Input или Paragraph? Имеется в виду какой-нибудь вьювер скриптов.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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