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

» Autoplay Media Studio

Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 14:46
tavria2
Спасибо за помощь, но к сожалению твоя функция тоже не кооректно работает. Например, такое дерево:
HKCU
Software
Microsoft
HKLM
Software
HKU
Автор: AleksTrin
Дата сообщения: 23.06.2009 20:21
Mars803
Конечно, чтение из таблицы это круто, но все рано не переводятся остальные страницы и диалоги, а переводится тока первая страница!
Люди подскажите пожалуйста, как сделать так, чтобы можно было заменять текст в объектах нажатием одной кнопки или меню, на всех страницах и диалогах?
Автор: tavria2
Дата сообщения: 22.03.2009 15:28
Zloy_Gelud

Цитата:
твоя функция тоже не кооректно работает

Ты не прав, эта ф-ция ищет в пределах указанной ноды точно так, как и ф-ция AMS, что соответствовало твоему вопросу: "нужна функция наподобие Tree.FindNodeByText без_учета_регистра_букв".
Автор: Zloy_Gelud
Дата сообщения: 24.06.2009 00:28
AleksTrin 21:21 23-06-2009
Цитата:
Люди подскажите пожалуйста, как сделать так, чтобы можно было заменять текст в объектах нажатием одной кнопки или меню, на всех страницах и диалогах?

Времени особо нету, поэтому сваял на скорую руку. Вроде работает, правда комментариев практически нет. Надеюсь разберешься.
lng.apz ~ 10.59 kB
Не забудь про вкладку On Shutdown
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 16:15
tavria2
См. ПМ, плиз.
Автор: AleksTrin
Дата сообщения: 24.06.2009 10:30
Zloy_Gelud
Это все канеш хорошо, но это как то муторно, а по проще нету? А как быть на счет диалогов?
Ведь в них тож надо менять текст

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

MenuFile = "Файл"; - эта строчка находится в языковом файле Russian.ini
----
Application.LoadScript ("Lang\\Russian.ini")
tblMenu = {};
tblMenu[1] ={};
tblMenu[1].Text = MenuFile;

Добавлено:
Нужно сделать намного меньше кода, так как много страниц и много объектов и много разного текста!

Добавлено:
Вот код, который мне дали здесь, вот он малой и норм.
On Preload:
strText = TextFile.ReadToString("AutoPlay\\Docs\\lang.txt");
strMAC = String.Mid(strText, 1, 3);
if (strMAC == "rus") then
Application.LoadScript("Lang\\Russian.ini");
elseif (strMAC == "eng") then
Application.LoadScript("Lang\\English.ini");
end


On Menu:
if e_ID==2 then
Application.LoadScript("Lang\\Russian.ini");
TextFile.WriteFromString("AutoPlay\\Docs\\lang.txt", "rus", false);
elseif e_ID==3 then
Application.LoadScript("Lang\\English.ini");
TextFile.WriteFromString("AutoPlay\\Docs\\lang.txt", "eng", false);
end

Мож его можно как нибудь изменить, добавить, чтобы на всех страницах и диалогах заменялся текст!
Автор: tavria2
Дата сообщения: 22.03.2009 16:43
Zloy_Gelud
Да, ты прав - отличие в работе ф-ций есть, разбираться буду позже.
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 17:14
tavria2
Там наверно так происходит: если в пределах указанной ноды ничего не найдено, то ищется текст далее во всех остальных.
Автор: tavria2
Дата сообщения: 22.03.2009 17:19
Zloy_Gelud
Нет, там поиск идет именно в пределах указанной ноды.
Автор: lorents
Дата сообщения: 24.06.2009 15:47
Заметил одну интересную особенность связанная с HTTP.TestConnection, пока не выяснил причины, например идет проверка на соединение с интернетом и если интернета нет, то выводится сообщение через Dialog.Message, по идеи, появившееся, окно должно быть всегда поверх окна проекта, но почему-то так не проиходит

Добавлено:
Не подскажите, как можно сделать следующее:
сделать проверку наличие все ли файлы есть в проекте, если да то продолжить работы, если нет то выдать ошибку. сделал проверку на наличие фалов, но вот у меня появилась проблема, а если пользователь добавил какой-то файл в проект, просто так, то проект выдаст ложную ошибку. Как сделать, чтобы проект как бы сверял таблицу t2 с t1, и если он не нашел какую-ту строчку в t1, которая есть в t2, то только потом выдал бы ошибку.

Код: t1 = File.Find("AutoPlay", "*.*", true, false, nil, nil);
t2 = TextFile.ReadToTable("file.cdd")

if Table.Count(t1) == Table.Count(t2) then
equal = true;
Table.Sort(t1, nil);
Table.Sort(t2, nil);
for nIdx, sValue in t1 do
if sValue ~= t2[nIdx] then
equal = false;
break;
end
end
else
equal = false;
end

if equal then
Dialog.Message("", "Данные в таблицах не отличаются.");
else
Dialog.Message("", "Данные в таблицах отличаются.");
end
Автор: Robby
Дата сообщения: 22.03.2009 18:41
Когда-то Zloy_Gelud выкладывал свой проект для софта "Soft [Amora Skin].apz". В нем было много интересных идей и решений. Исходники были доработаны и в итоге получилось оболочка для Программ в том виде, в каком я бы хотел ее видеть. Скачать проект можно по ссылке: http://rapidshare.com/files/212208851/2009.rar 8 mb. Размер такой из-за того, что я оставил несколько бесплатных программ в проекте, чтобы было видно не только логику но и работу проекта. Облегченная версия без софта: Ссылка
Отличия от оригинала:
- названия разделов формируются автоматически из названий папок;
- иконки разделов берутся из родительских папок;
- нет ограничения на количество разделов;
- нет ограничений на содержание текста описания (возможно наличие любых символов);
- просмотр nfo файлов;
- расширенные возможности применения crack (запуск в каталоге программы, копирование всех или выбранных файлов из папки crack в папку назначения, добавление информации в реестр);
- возможность копировать программы из оболочки в указанное место

при запуске с жесткого диска возможно:
- создание базы данных и установка начальной директории с программами (храниться в ini файле);
- возможность правки описания из оболочки (правая кнопка мыши);
- возможность правки и ввода url программ из оболочки, url сохраняется в папке соответствующей программы.
И вообще, давайте делиться наработками, идеями проектами! Вопросы задают многие (значит что-то делают ), но практически, никто ничего не выкладывет. AutoPlay Media Studio легче всего осваивать на примерах готовых проектов и чтения helpa.
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 20:15
Robby
При запуске с винта и указания пути к папке с софтом (на диске) и формировании БД переход на другую страницу так и не осуществился..Так и задумано?!
Автор: tavria2
Дата сообщения: 24.06.2009 16:52
lorents
Попробуй так:
Код: t1 = File.Find("AutoPlay", "*.*", true, false, nil, nil);
t2 = TextFile.ReadToTable("file.cdd")

-- if Table.Count(t1) == Table.Count(t2) then
equal = true;
Table.Sort(t1, nil);
Table.Sort(t2, nil);
for nIdx, sValue in t2 do
if sValue ~= t1[nIdx] then
equal = false;
break;
end
end
-- else
-- equal = false;
-- end

if equal then
Dialog.Message("", "OK");
else
Dialog.Message("", "Error");
end
Автор: RW4PIR
Дата сообщения: 22.03.2009 20:46
я ссамого начала походу неправильно задал вопрос
мне нужно так: создаю окно там в Input1 и Input2 ввожу данные, а в Input3 получаю ответ
ответ в Input3, а не сообщением
так наверно понятнее я вопрос поставил
Автор: lorents
Дата сообщения: 24.06.2009 17:05
tavria2
ааа, понял, спасибо, как всегда гениальное
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 21:18
RW4PIR

Код: data1 = tonumber(Input.GetText("Input1");
data2 = tonumber(Input.GetText("Input2");

data3 = data1*data2; -- формула

Input.SetText("Input3", data3);
Автор: lorents
Дата сообщения: 25.06.2009 15:28
Как можно сделать, чтобы объект Input имел тот стиль, который задает тема у пользователя?
и еще как сделать плавное появление и исчезание диалоговый окон, не используя таймер или плагин AMSWTimer?
Автор: Robby
Дата сообщения: 22.03.2009 21:36

Цитата:
При запуске с винта и указания пути к папке с софтом (на диске) и формировании БД переход на другую страницу так и не осуществился..Так и задумано?!

Переход на другую страницу не осуществляется если категория пустая. Проверяется есть ли запись Tree объекте и если равна nill то возвращается на первую страницу. Нечего там делать на второй странице если выбирать нечего. Или ты не об этом?
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 21:59
Robby
Походу понял с чем это связано. На странице настроек при выборе папки с софтом не переназначается значение переменной sPath_SoftFolder. Если добавить sPath_SoftFolder = sFolderPath;, то все работает.
ЗЫ. Как-то сумбурно у тебя код написан..
Автор: tavria2
Дата сообщения: 25.06.2009 18:26
lorents

Цитата:
Как можно сделать, чтобы объект Input имел тот стиль, который задает тема у пользователя?

Код: function Sys_Input(ObjecName)
local GWL_STYLE = -16
local GWL_EXSTYLE = -20

local WS_CHILD = 1073741824;
local WS_VISIBLE = 268435456;
local WS_TABSTOP = 65536;
local WS_DISABLED = 134217728;
local WS_VSCROLL = 2097152;
local WS_HSCROLL = 1048576;

local WS_EX_NOPARENTNOTIFY = 4;
local WS_EX_CLIENTEDGE = 512;

local ES_AUTOVSCROLL = 64;
local ES_READONLY = 2048;
local ES_MULTILINE = 4;
local ES_WANTRETURN = 4096;

local nStyle = WS_CHILD.."|"..WS_TABSTOP.."|"..ES_AUTOVSCROLL;
local nExStyle = WS_EX_CLIENTEDGE.."|"..WS_EX_NOPARENTNOTIFY;
    
local tProp = Input.GetProperties(ObjecName); -- св-ва объекта
tProp.Border = BORDER_NONE; -- изменяем св-во рамки объекта
Input.SetProperties(ObjecName, tProp); -- применяем св-во к объекту
local hWnd = Input.GetProperties(ObjecName).WindowHandle; -- дескриптор объекта

if Input.GetProperties(ObjecName).Visible then nStyle = nStyle.."|"..WS_VISIBLE end
if not Input.GetProperties(ObjecName).Enabled then nStyle = nStyle.."|"..WS_DISABLED end
if Input.GetProperties(ObjecName).ReadOnly then nStyle = nStyle.."|"..ES_READONLY end
if Input.GetProperties(ObjecName).Multiline then
nStyle = nStyle.."|"..ES_MULTILINE.."|"..ES_WANTRETURN;
if Input.GetProperties(ObjecName).VScrollbar then nStyle = nStyle.."|"..WS_VSCROLL end
if Input.GetProperties(ObjecName).HScrollbar then nStyle = nStyle.."|"..WS_HSCROLL end
end
    
WinApi.SetWindowLong(hWnd, GWL_STYLE, nStyle, false);
WinApi.SetWindowLong(hWnd, GWL_EXSTYLE, nExStyle, false);
-- перерисовка объекта
local tSize = Input.GetSize(ObjecName); -- получаем размер объекта
Input.SetSize(ObjecName, tSize.Width+1, tSize.Height+1); -- изменяем размер объекта
Input.SetSize(ObjecName, tSize.Width, tSize.Height);    -- восстанавливаем размер объекта
end
-----------------------------------------------------------------------------------
Sys_Input("Input1"); -- установка системного стиля для объекта Input
Автор: RW4PIR
Дата сообщения: 22.03.2009 22:04
втавляю код нажимаю ок даёт ошибку снадписью:
Line=1:')' expected near ':'
Автор: Robby
Дата сообщения: 22.03.2009 22:05
Zloy_Gelud
буду признателен если код поправишь, ведь лучше тебя твой проект никто не знает. Писалось и преписывалось на протяжение большого промежутка времени, идеи не всегда приходят вовремя. На счет кода согласен, местами он страшен возможно даже что в некоторых местах имеются излишки.
Автор: lorents
Дата сообщения: 25.06.2009 18:48
tavria2
Спасибо. Мне стыдно просить, но все-таки, а можно еще сделать, что объект Input мог принимал стиль выключенного состоянии?

Цитата:
ИМХО никак.

Понятно, просто я хотел использовать плагин AMSWTimer, но как оказалось он очень не стабильно работает с вистой
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 22:26
RW4PIR
Сорри, моя невнимательность.

Код: data1 = tonumber(Input.GetText("Input1"));
data2 = tonumber(Input.GetText("Input2"));

data3 = data1*data2; -- формула

Input.SetText("Input3", data3);
Автор: tavria2
Дата сообщения: 25.06.2009 19:36
lorents

Цитата:
Мне стыдно просить, но все-таки, а можно еще сделать, что объект Input мог принимал стиль выключенного состоянии?
А, что в состоянии disable пропадает системный стиль?
Автор: RW4PIR
Дата сообщения: 22.03.2009 22:50
или не туда вставляю или ещё косяк
ошибка такая:
она длинная переписывать долго там чтоо Line4:................on global 'data1'
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 22:53
RW4PIR
А не проще тебе написать что ты вставляешь, куда вставляешь? Или в клуб телепатов записать?
Автор: lorents
Дата сообщения: 25.06.2009 19:44
tavria2

Цитата:
А, что в состоянии disable пропадает системный стиль?

нет, но просто не изменяется. Смотри про включенном состоянии объект Input выглядит так, как раз то что надо, и при выключенном состоянии так же выглядит, а хотелось бы так
по идеи здесь меняется просто задний фон. т.е. просто при выключенном состояния менять фон. через WinApi.GetSysColor получить нужный цвет, сейчас посмотрю как раз какой это цвет, и потом заменить. но это не удобно, можешь ты изменить в коде чтобы не приходилось это для каждого Input'а писать отдельно?

нашел. на счет WinApi.GetSysColor, можно использовать COLOR_BTNFACE

к сожалению мой способ не подходит если надо периодически включать и выключать объект Input.
Автор: RW4PIR
Дата сообщения: 22.03.2009 22:55
лучще куда надо напишите пожалуйста
ато смешно наверно получится я уже всё забыл в этой проге раньше делал но памяти нету
Автор: Zloy_Gelud
Дата сообщения: 22.03.2009 23:07
RW4PIR
Весь код что я тебе приводил вставляй на On Click кнопки.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: PHP RapidGet Pro V


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