Нужен компонент для содержания массива строк (либо StringList-ов) с визуальным редактором именно в виде возможности редактирования массива текстов. Что-то типа TStrHolder - но только именно их массив. Важен именно визуальный редактор сохраненных текстов в режиме дизайнера. И доступ к сохранённым текстам желателен по ключу. Самому лень писать - может что-то уже готовое есть?
Может я не вник в вопрос... Но извиняюсь , чем SynEdit не катит ? Там вроде все что нужно есть ... Сворачиваемые блоки с крутой визуализацией есть , поиск есть, "скрытая древовидность " тоже есть и еще много чего что сразу и не вспомню ...
Alex2013 писал(а):Может я не вник в вопрос... Но извиняюсь , чем SynEdit не катит ? Там вроде все что нужно есть ... Сворачиваемые блоки с крутой визуализацией есть , поиск есть, "скрытая древовидность " тоже есть и еще много чего что сразу и не вспомню ...
Мне нужен именно не визуальное хранилище. Проще говоря - есть массив строк (текстов) - порядка 500 элементов, и они добавляются (юнит-тестирование функционала библиотеки) Сначала эти строки размещал просто в виде констант в текст. Но достаёт форматировать их (переводы строк, апострофы) В данный момент они в компонентах StrHolder на DataModul-е. Но когда там объектов перевалило за 100 - дата модуль начинает тормозить во время разработки. Да и не совсем удобно всёже. Вот и возникла идея - компонент, который хранит строки в виде массива (но не StringList), к которому есть нормальный редактор в дизайнере, доступ к элементам массива по имени и по индексу. Уже начал сам делать, итог работы включу в RxFPC.
Гм ... "не визуальный элемент с визуальной поддержкой в дизайн тайме" . .. приди такое мне в голову я бы наверное подумал что-то вроде "Где моя губозакатывальная машинка?" или попытался написать что-то свое "самокатное"... Например простую утилитку для удобного внешнего заполнения ресурсов StrHolder или просто "генератор констант" . Понимаю что совет малость "костыльный" но если для работы StrHolder подходит то зачем что-то еще изобретать ? Зы Тут тоже страдают чем-то похожим ... http://www.sql.ru/forum/567052-1/kompon ... stringlist
Может я не достаточно ясно изложил? Мне нужен компонент для хранения массива текстов, не строк. С обязательным удобным заполнением этого массива в дизайнере. StrHolder - это массив строк. Вообщем - уже почти сам сделал. PS В тереде на SQL.RU обычный флуд, с обязательной демонстрацией некоторых своего остроумия. Нормальная ситуация.
alexs писал(а):Мне нужен компонент для хранения массива текстов, не строк. С обязательным удобным заполнением этого массива в дизайнере.
Ну извини тут помочь действительно не могу... (и если честно не представляю зачем подобная конструкция может понадобится ) Для подобных вещей я обычно пишу простые утилиты вроде этой . viewtopic.php?f=44&t=10608
procedure Register; begin RegisterComponents('Misc', [TTextSnippets]); end;
{ TTextSnippets }
procedure TTextSnippets.SetSnippets(aSnippets: TSnippetCollection); begin FSnippets.Assign(aSnippets); end;
constructor TTextSnippets.Create(aOwner: TComponent); begin inherited Create(aOwner); FSnippets := TSnippetCollection.Create; end;
destructor TTextSnippets.Destroy; begin FSnippets.Free; inherited; end;
function TTextSnippets.IndexOf(const aTitle: string): Integer; var I: Integer; begin for I := 0 to Pred(FSnippets.Count) do if CompareText(aTitle, FSnippets.Items[I].Title) = 0 then exit(I); Result := -1; end;
destructor TSnippet.Destroy; begin FList.Free; inherited; end;
procedure TSnippet.Assign(aSource: TPersistent); begin if aSource is TSnippet then begin FList.Assign(TSnippet(aSource).FList); Title := TSnippet(aSource).Title; end else AssignTo(aSource); end;
Посмотрел: 1. TStrHolder - нет префикса Rx - по двойному клику создает эвент OnStrHolderChange - нельзя присвоить значение итема по имени, только через Macros.Items[].Value
2. TRxTextHolder - с даблкликом не сопоставлен ни эвент, ни редактор
зы. Алексей, чего-то с недавних пор компоненты, кроме компиляции rxtools, еще требуют установки rx-пакета из твоего набора. Однако Лазарь при помощи OPM устанавливает rx-пакет из своего встроенного комплекта. В результате путаница.
1. Этот компонент ранее был в составе самого лазаря. Совсем недавно его отдали в состав RxFPC. Поэтому я боюсь менять имя - сломается совместимость. Я сам его в своих проектах активно использую - много перепроверять прийдётся. Соответсвенно - к нему нет никаких дополнительных правок пока. Будет время - допишем. Хотелки принимаются. Код - тем более.
2. Чтобы подключить редактор - надо пакет установить dcl_rxTools Я не занимаюсь сейчас сопровождением через OPM. У меня туда на те сервера доступа нет. Да и некогда.