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

» Autoplay Media Studio

Автор: GOOSE
Дата сообщения: 28.04.2007 12:07
sly33
Ёлы-палы...
Ну сравни свои варианты!
Там, как минимум, два различия... Одно не очень существенное (в конце строки ;)
А одно очень... Смотри предпоследнюю строку: FileList[j]
А в первом вариантк ты пытаешься в одну запись списка воткнуть ВЕСЬ массив...
Автор: sly33
Дата сообщения: 28.04.2007 15:24
GOOSE

Ё.... Пойду новые очки выписывать! Клянусь, я сравнивал раз десять - и не видел!
СПАСИБО!
А с первым вариантом я уже разобрался.
Надеюсь, если возникнут новые вопросы, на Вашу помощь!

Добавлено:
А как можно задать соответствие чтобы одной выделенной строке в ListBox соответствовал файл в определённой папке и появлялся в другом ListBox. Собственно файл у меня появляется ,только один на все строки. Спасибо.
Автор: NordMaster
Дата сообщения: 28.04.2007 21:49
Извинте если повотряю вопрос...На форуме я тут новичок
Теперь вопрос:
Хочу создать совй диск с софтом в AMS 6.0.0.5 не краяканый-триал.
Как сделать чтоб при нажатии на кнопку Драйвера выскакивало подменю а там, были пункты Драйвера для видео, звука и тп и чтоб в конце к конечному файлу был комент
Заранее спасибо
Автор: DenVl
Дата сообщения: 29.04.2007 19:27
Помогите пожалста

Код: Selected = ListBox.GetSelected("ListBox1");
if (Selected ~= nil) then
cFolder = ListBox.GetItemData("ListBox1", Selected[1]);
if (cFolder) then
if (Files(cFolder)) then
for n, cText in tbF do
parts = String.SplitPath(cText);
if (parts.Filename..parts.Extension == "readme.txt") then
content = TextFile.ReadToString(cText);
Paragraph.SetText("Paragraph1", content);

end
end
end
end
end
Автор: sly33
Дата сообщения: 29.04.2007 21:49
To GOOSE

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

tSelected = ListBox.GetSelected("ListBox1");
if tSelected then
for nTableIndex, nListBoxIndex in tSelected do
sEXEFilePath = ListBox.GetItemData("ListBox1", nListBoxIndex);
sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);
end
strFile = TextFile.ReadToString(sTXTFilePath);
Paragraph.SetText("Paragraph1", strFile);
end

_Searchdir=_SourceFolder.."\\AutoPlay\\Docs\\crack";
FileList = File.Find(_Searchdir.."\\", "*.exe", false, false, nil);
for k in FileList do
FileName= String.Replace(FileList[k], _Searchdir.."\\", "", false);
ListBox.AddItem("ListBox2", FileName, FileList[k]);
end

Нужна Ваша помощь!

P.S. Где-то много выше в этом топике :
Что хочется услышать:
- что включить в статью
- на каком примере лучше описывать последовательность действий (что больше востребовано)
- где размещать
- вообще принимаются ценные советы и пожелания
Это Ваши слова, конечно я опоздал года эдак на два, но мне кажется ,что именно вышеописанная ситуация достаточно часто встречается.
Автор: tavria2
Дата сообщения: 29.04.2007 23:43
DenVl

Цитата:
tbF - таблица файлов в папке cFolder (она уже получена)

Не вижу смысла в этой таблице...

Код: Selected = ListBox.GetSelected("ListBox1");
if (Selected ~= nil) then
cFolder = ListBox.GetItemData("ListBox1", Selected[1]);
if (cFolder ~= "") then
if (File.DoesExist(cFolder.."\\readme.txt")) then -- если найден "readme.txt"
content = TextFile.ReadToString(cFolder.."\\readme.txt");
else -- если НЕ найден "readme.txt"
content = "Описание отсутствует";
end
Paragraph.SetText("Paragraph1", content);         
end
end
Автор: DenVl
Дата сообщения: 30.04.2007 00:55
tavria2
Пасиб, опять я перемудрил..
Автор: tavria2
Дата сообщения: 01.05.2007 10:25
NordMaster

Цитата:
Как сделать чтоб при нажатии на кнопку Драйвера выскакивало подменю а там, были пункты Драйвера для видео, звука и тп и чтоб в конце к конечному файлу был комент

Используй объект ComboBox (раскрывающийся список). В колонку Text забей отображаемый в списке текст, а в колонке Data - путь+имя файла (драйвера), который нужно получать при выборе нужного пункта. Для того, чтобы сделать описание, создай текстовые файлы с таким-же именем, как у драйвера, но с расширением *.txt и расположи их в одной папке с драйверами. Чтобы получить путь к описанию, нужно взять путь+имя файла из поля Data, выбранного пункта и сменить расширение на *.txt. Для вывода описания на экран, используй объект Paragraph, в который загружай описание из текстового файла.

P.S. См. справку, там все с примерами. Так же рекомендую посетить сайт GOOSE - там много полезных примеров.
Автор: NordMaster
Дата сообщения: 02.05.2007 12:04

Цитата:
Используй объект ComboBox (раскрывающийся список). В колонку Text забей отображаемый в списке текст, а в колонке Data - путь+имя файла (драйвера), который нужно получать при выборе нужного пункта. Для того, чтобы сделать описание, создай текстовые файлы с таким-же именем, как у драйвера, но с расширением *.txt и расположи их в одной папке с драйверами. Чтобы получить путь к описанию, нужно взять путь+имя файла из поля Data, выбранного пункта и сменить расширение на *.txt. Для вывода описания на экран, используй объект Paragraph, в который загружай описание из текстового файла.

А где это всё найти?
ПС Не дашь ссылочку где с примерами есть?
Спасибо
Автор: tavria2
Дата сообщения: 03.05.2007 11:47
NordMaster

Цитата:
Не дашь ссылочку где с примерами есть?

http://gooseweb.ru
Автор: NordMaster
Дата сообщения: 04.05.2007 18:21
Всем ещё раз привет
Можно ли как нибудь сделать чтоб в кошке авторана был выбраный курсор? Или только стандартный?
Автор: sly33
Дата сообщения: 04.05.2007 18:51
To NordMaster
Посмотри страницу 42 в этом топике.
Автор: sly33
Дата сообщения: 07.05.2007 20:32
Есть очередной вопрос :

-- Очищаем ЛистБокс2
-- Считаем количество записей (строк) в ЛистБоксе2
nCount = ListBox.GetCount("ListBox2");
-- Если их количество больше 0
if (nCount) then    
    -- пока их количество больше 0
    while nCount > 0 do
        -- удаляем каждую запись (строку)
        ListBox.DeleteItem("ListBox2", nCount);
        -- уменьшая после каждого удаления их количество на 1
        nCount = nCount - 1;
    end
end

-- Получаем данные выделенной строки в ЛистБоксе1
tSelected = ListBox.GetSelected("ListBox1");
-- Если что то выбрано, то
if tSelected then
    -- Читаем табличные данные
    for nTableIndex, nListBoxIndex in tSelected do
        -- Получаем путь к выбранному файлу (из колонки 'data' ЛистБокса1)
        sEXEFilePath = ListBox.GetItemData("ListBox1", nListBoxIndex);
        -- Получаем имя выделенного файла
        sEXEFileName = ListBox.GetItemText("ListBox1", nListBoxIndex);
        -- Меняем расширение
        sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);
        end


end
Label.SetVisible("Label2", true);

-- Делаем видимым ЛистБокс русиков
ListBox.SetVisible("ListBox2", true);
-- Заполняем его
-- директория русиков
_SearchdirRus =_SourceFolder.."\\Autoplay\\Docs\\system\\Rus\\";
-- ищем файлы с именем выбранного файла в ЛистБокс1
FileListRus = File.Find(_SearchdirRus, sEXEFileName, false, false, nil);
---добавляем в ЛистБокс2
if FileListRus then -- если есть русификатор
    for j in FileListRus do
resName = String.SplitPath(FileListRus[j]).Filename; -- получаем имя файла
        resPath = _SearchdirRus..sEXEFileName; -- получаем путь
        ListBox.AddItem("ListBox2", "Русификатор "..resName, resPath); -- добавляем запись в ЛистБокс2, имя файла пишем в 'text', а путь к нему в 'data'
    end
end             

-- Читаем нужный текстовый файл
strFileRus = TextFile.ReadToString(sTXTFilePath);
-- и выводим это описание
Paragraph.SetText("Paragraph1", strFileRus);

А если нужный файл не экзешник , а архив RAR,Надо как-то расширение поменять?
Автор: tavria2
Дата сообщения: 07.05.2007 22:53
sly33
Используй дествие String.SplitPath для разложения пути на составляющие: диск, папка, имя и расширение, затем из полученных составляющих собери новый путь с нужным расширением.
Код: -- Меняем расширение
sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);

-- разлаживаем путь: диск, папка, имя и расширение
tFilePath = String.SplitPath(sEXEFilePath);
-- собираем путь с новым расширением
sTXTFilePath = tFilePath.Drive..tFilePath.Folder..tFilePath.Filename..".txt"
Автор: kaliostro_Den
Дата сообщения: 07.05.2007 23:47
Люди у меня тут только один вопросик, но он решает очень много, итак приступаю к вопросу. Есть стандартная кнопка и на кнопке есть надпись, так вот бывают случаи когда эти надписи не влазят в размер кнопки, меня уже много лет(до этого уходил др. способами) интересует как мне сделать эту надпись в 2-ве строки? Пробовал через "\n" всё равно вместо "\n" выводит квадратик, это елси текст пистаь через фукцию, а если напрямую ставлять, то так и отображаеться "\n".

Help plz.
Автор: tavria2
Дата сообщения: 08.05.2007 00:51
kaliostro_Den
Можно извратиться так:
Добавляем в проект кнопку и удаляем ее текст, сверху на кнопку накладываем Label с многострочным текстом. Делаем Label не активным (Enabled=false), чтобы получить доступ к событиям кнопки, когда мышка находится над Label. Устанавливаем нужный цвет не активного текста Label'а.
Автор: GOOSE
Дата сообщения: 08.05.2007 08:06
kaliostro_Den, объект Button не поддерживает более одной строки текста
tavria2 дал верное решение для динамических надписей.
Если используется статика, то можно нарисовать надпись прямо на кнопке

Автор: Lexua
Дата сообщения: 08.05.2007 09:16
tavria2

Цитата:
Создание полупрозрачного окна произвольной формы без использования маски окна и дополнительного DLL, отвечающего за полупрозрачность. Opacity-n-Custom Window (NoMask-NoDll).apz (321 Кб).


Как всегда профи! Жаль только что в Win9x не работает.
Автор: kaliostro_Den
Дата сообщения: 08.05.2007 10:37
tavria2

Цитата:
Label с многострочным текстом

Это я думаю параграф будет.
Так спс, теперь другой вопрос: как мне в этой параграфе отрегулировать расстояние между строками, а то сильно большое какое-то?
Автор: tavria2
Дата сообщения: 08.05.2007 11:48
kaliostro_Den

Цитата:
Это я думаю параграф будет.
Нет это не Параграф, я не помню как в русифицированной версии называется Label, помойму Метка.
Расстояние между строк в Параграфе зависит от размера шрифта и в ручную не устанавливается. Для решения проблемы можно разместить несколько однострочных Label'ов друг под другом, с желаемым интервалом.
Автор: kaliostro_Den
Дата сообщения: 08.05.2007 12:37
tavria2

Цитата:
решения проблемы можно разместить несколько однострочных Label'ов друг под другом, с желаемым интервалом.

Я так раньше и делал, но тогда такая штука как написать в Label текст, состоящий из 2-ух строк?
Автор: GOOSE
Дата сообщения: 08.05.2007 13:39
kaliostro_Den
Никак. Предлагается использование нескольких объектов.
Label не поддерживает мультистрочность...
Где-то была функция, которая создавала мультистрочный Tooltip...
Может ее можно как ить использовать? Не знаю, в любом случае, это не штатными средствами AMS
Автор: tavria2
Дата сообщения: 08.05.2007 16:28
GOOSE

Цитата:
Label не поддерживает мультистрочность...

Еще и как поддерживает, во всяком случае в AMS 6.0.5.0. Используй \n для перевода строки.
Автор: GOOSE
Дата сообщения: 08.05.2007 17:23
tavria2
Заинтриговал
Короче, ты прав
Только добавлять мультистроковый текст нужно через действие Label.SetText
Добавить несколько строк прямо на вкладке Settings с символом перевода строки не получится - он выводит все символы - в одну строчку.
Автор: kaliostro_Den
Дата сообщения: 08.05.2007 17:26

Цитата:
Еще и как поддерживает, во всяком случае в AMS 6.0.5.0. Используй \n для перевода строки.

Спасибо. Но почемуто это не работает на кнопках.
Автор: sly33
Дата сообщения: 08.05.2007 17:54
А куда это вставить? Там где я меняю расширение - я вывожу комментарий к файлу.


Цитата:
-- Меняем расширение
sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);

-- разлаживаем путь: диск, папка, имя и расширение
tFilePath = String.SplitPath(sEXEFilePath);
-- собираем путь с новым расширением
sTXTFilePath = tFilePath.Drive..tFilePath.Folder..tFilePath.Filename..".txt"

Автор: tavria2
Дата сообщения: 08.05.2007 18:05
GOOSE

Цитата:
Только добавлять мультисроковый текст нужно через действие Label.SetText

Не только, у меня работает и в окне свойств Label'а.


kaliostro_Den

Цитата:
Но почемуто это не работает на кнопках.

Речь идет о Label, а не про кнопки. По поводу текста в кнопках уже было сказано - не поддерживают.
Было предложение убрать текст кнопки и наложить сверху Label.


sly33

Цитата:
А куда это вставить?

Вместо:
Код: -- Меняем расширение
sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);
Автор: sly33
Дата сообщения: 08.05.2007 18:19

Цитата:
Вместо:
Код:-- Меняем расширение
sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);


Если к примеру оставить расширение "txt" , то ничего не изменится ровным счётом, а если поменять расширение на "rar" , то будет отсутствовать коммент к выделенномуфайлу, а в ЛистБоксе2 ничего не прибавляется.
Автор: tavria2
Дата сообщения: 08.05.2007 18:31
sly33

Цитата:
Если к примеру оставить расширение "txt" , то ничего не изменится...

Я чесно говоря не понял, где ты менял расширение:
в sTXTFilePath = tFilePath.Drive..tFilePath.Folder..tFilePath.Filename..".txt"
или в sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false);, если в этой строке, то ее вообще нужно убрать.
Автор: GOOSE
Дата сообщения: 08.05.2007 18:32
sly33
Похоже, ты совсем не разобрался с тем примером
Первый параметр в sTXTFilePath = String.Replace(sEXEFilePath, "exe", "txt", false); говорит ЧТО меняем, второй - НА ЧТО меняем.
Если у тебя архивы и экзешники, то все коту под хвост, так как на клике прописан запуск экзешника. Ты чего, рар будешь запускать?
А если только вывести описание - замени exe на rar и будет тебе счастие
А вот это

Цитата:
а в ЛистБоксе2 ничего не прибавляется.

вообще не понял. Тот код, который мы меняем ВЫВОДИТ ОПИСАНИЕ из текстового файла.
Я для кого комментарии к каждой строке писал?
Возьми труд, просмотри код и подумай...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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