Zloy_Gelud

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору alfonser Цитата: Но вот какая возникла проблема: Скриншоты разного размера, а вписываются в установленный размер "Image1". Мне надо привести их к одному размеру относительно размера"Image1" по любой оси, соблюдая пропорции оригинала. | Здесь можно использовать вместо объекта Image объект SlideShow - он как раз таки соблюдает пропорции. Пример загрузки скрина в объект SlideShow: Код: function ImageLoad(sPathImage) SlideShow.DeleteSlide("SlideShow1", -1); if (sPathImage ~= "" and File.DoesExist(sPathImage)) then SlideShow.AddSlide("SlideShow1", sPathImage, -1); SlideShow.Navigate("SlideShow1", SLIDESHOW_LAST); else SlideShow.AddSlide("SlideShow1", "AutoPlay\\Images\\banner_1.png", -1); SlideShow.Navigate("SlideShow1", SLIDESHOW_FIRST); end end | Соттветственно вызывается вместо твоего Цитата: Image.Load("Image1", sImagePath); | как ImageLoad(sImagePath); Цитата: И еще, имя файла setup.exe постоянно.А как сделать переменным? (*.exe не получается)! | Возможен такой вариант - нижеследующая функция ищет в папке сначала файл с маской setup.*, если таковой найден, то он считается файлом-инстоллятором, если не найден, то далее ищется файл с маской *.exe, если он будет найден, то ето инстоллятор, если же не найден, то далее ищем файл с маской *.msi; соот-но если найден/ненайден аналогично. Если ты хочешь чтоп функция успешно опознала твой инстоллятор необходимо: 1. Положить в папку один любой тип файла с именем setup; 2. Или положить в папку один исполняемый файл с расширенеим .EXE/.MSI Сама функция: Код: --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- Name: GetInstallFile() -- Values: sPath - путь к папке, в которой искать инстоллятор программы (папка с инстоллятором) -- Returns: Имя файла-установшика программы. Пустая строка "", если установщик не найден --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function GetInstallFile(sPath) -- путь к инстоллятору sPath_InstallFile = ""; -- ищем файлы по маске setup.* local tPaths_SetupFile = File.Find(sPath, "setup.*", false, false, nil); -- если нашли if (tPaths_SetupFile) then -- если нашли один файл if (Table.Count(tPaths_SetupFile) == 1) then -- значит это и есть инстоллятор sPath_InstallFile = tPaths_SetupFile[1]; end -- если не нашли else -- ищем экзешники local tPaths_ExeFile = File.Find(sPath, "*.exe", false, false, nil); -- также ищем мсишники local tPaths_MsiFile = File.Find(sPath, "*.msi", false, false, nil); -- если нашли экзешники if (tPaths_ExeFile) then -- если нашли один экзешник и не нашли мсишников if (Table.Count(tPaths_ExeFile) == 1 and tPaths_MsiFile == nil) then -- значит этот файл - инстоллятор sPath_InstallFile = tPaths_ExeFile[1]; end -- не нашли экзешников else -- а нашли мсишники if (tPaths_MsiFile) then -- если один мсишник if (Table.Count(tPaths_MsiFile) == 1) then -- тогда он и есть инстоллятор sPath_InstallFile = tPaths_MsiFile[1]; end end end end if (sPath_InstallFile ~= "") then return String.SplitPath(sPath_InstallFile).Filename..String.SplitPath(sPath_InstallFile).Extension; else return ""; end end | Используешь вместо своего Цитата: sFilePath = sGameFolderPath.."\\setup.exe"; | вот ето: sFilename = GetInstallFile(sGameFolderPath); Необходимо будет убрать обозначение локальной переменной (local) в етой строчке Цитата: local sGameFolderPath = ListBox.GetItemData("ListBox1", tSelected[1]); | Т.е. надо просто sGameFolderPath = ListBox.GetItemData("ListBox1", tSelected[1]); On Click кнопки установки Код: if (sFilePath ~= "") then File.Run(sGameFolderPath.."\\"..sFilename, "", "", SW_SHOWNORMAL, false); end | Цитата: File.Run("Button1", sFilePath); (добавил, но не знаю нужно или нет?) | Ето бред. И ето добавлять не нужно. | Всего записей: 3281 | Зарегистр. 30-05-2007 | Отправлено: 23:17 28-04-2008 | Исправлено: Zloy_Gelud, 23:32 28-04-2008 |
|