Вверх ↑
Этот топик читают: Гость
Ответов: 5227
Рейтинг: 587
#1: 2020-04-18 19:00:27 ЛС | профиль | цитата
Требуется массив листов типа strlist
В конфигурации элемента ini прописываю свойство как|13|5
Редактор вызывается но не даёт редактировать поля. Импорт экспорт тоже не работает. Может есть ещё какое кунфу

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2207
Рейтинг: 676
#2: 2020-04-19 10:11:36 ЛС | профиль | цитата
andrestudio, если не получится с стандартным, то можете сделать свой. Не знаю получится реализовать все что вам нужно.
Вкратце:
1. Создать новый проект Modules\Диалог Hiasm.
2. Созданный проект редактор массива строк сохранить в папку: Int\Edit (тут можно посмотреть примеры некоторых редакторов свойств).
2a. Не вставляйте в проект элементы с других пакетов. Среда по правому клику на линию вставит вместо hcDoData стандартный DoData (визуально они ничем не отличаются). Схема работать не будет.
3. В ini файле элемента в котором будет вызываться данный редактор добавить:
[Handlers]
Тут название файла sha=тут название свойства
4. Перезапустить HiAsm.

Для примера можете посмотреть как это реализовано в элементе RGN_Script: Создание региона по скрипту (Вкладка Окно/Регионы создание). У элемента на свойства Script установлен свой редактор.

И в этой теме: Изменение свойств интерфейса в первом посте архив: adjustcontrolsredactors.zip содержит три самодельных редактора, может в них что для себя подсмотрите.

Редактировалось 2 раз(а), последний 2020-04-19 10:23:33
карма: 11

1
Голосовали:andrestudio
Ответов: 5227
Рейтинг: 587
#3: 2020-04-19 10:52:06 ЛС | профиль | цитата
sla8a, Спасибо, буду пробовать.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#4: 2020-04-19 10:56:15 ЛС | профиль | цитата
andrestudio, чего то вчера никак авторизоваться на мог...
Вот вариант со стандартным, если лень как у sla8a делать.
Вроде работает:
Во всех этих |13| массивах - это указатели на звук, картинку, стрим, строку, или ещё чего - чего загрузишь.
Каким методом ты будешь обрабатывать этот указатель - по хрену. В данном случае, как список строк.
Прописывай свойство как|13|10
Вот так будет выглядеть hiStrlistArray.pas
  THIStrlistArray = class(TArray)
private
procedure PointerToData(Data:cardinal; var Result:TData); override;
procedure Delete(Value:cardinal); override;
public
procedure _work_doRun(var _Data:TData; Index:word);
property _prop_Strlist:PStrListEx write SetItems;
end;

implementation


procedure THIStrlistArray.PointerToData;
begin
dtString(Result,String(pointer(Data)^));
end;

procedure THIStrlistArray.Delete;
var r:^string;
begin
r := pointer(Value);
dispose( r );
end;

procedure THIStrlistArray._work_doRun;
var dt:TData;
begin
if Read(_Data,dt) then
.......
end;

end.

а вот так будет выглядеть StrlistArray.ini
[About]
Version=1.0
Author=flint2
Mail=qwerty.ru

[Type]
Class=Element
Info=Содержит массив списков строк

[Property]
+Strlist=Содержит массив списков строк|13|10
UseName=True - разрешить доступ к элементам массива по их именам и по индексам, False - доступ только по индексам (быстрый)|14|0|True,False
FileFormat=Формат файла массива|4|0|Binary,String
[Methods]
doRun=Чего то делает со списком строк из массива с индексом из потока (см. св-во UseName)|1|
Count=Содержит кол-во элементов массива|3|1

P.S.
Я для этих целей( не в данном случае, а когда то давно) переделывал StrList на List Pchar (с нулём на конце), каждая такая строка могла иметь множество строк разделённых символами 10 и 13.

Редактировалось 2 раз(а), последний 2020-04-19 11:03:02
карма: 6

1
Голосовали:andrestudio
Ответов: 5227
Рейтинг: 587
#5: 2020-04-19 11:06:38 ЛС | профиль | цитата
flint2, спасибо, но думаю всё же редактор подшаманить...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#6: 2020-04-19 11:28:13 ЛС | профиль | цитата
andrestudio, Да, как это sla8a предложил конечно красивее.
Я раньше даже и не догадывался, что правой кнопкой надо шлёпнуть. ))
карма: 6

0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)