Табличка ValueListEditor вполне работает однако мне уже нужно что-то более продвинутое и в то-же время более простое чем "нативный обжект инспектор " из Лазаруса ...
Немного повозившись сделал на пробу "живую рыбу" то есть чисто функциональный макет для уяснения постановки задачи .
Исходник демки тут
В общем нужно сделать :
1 Более надежно в плане прорисовки и управления
2 Сохранять данные в виде списка строк ...
3 Доступ к данным как по имени поля так и по индексу .
4 Добавление новых полей специальными функциями с указанием типа ( Целые числа , строки , цвета, "расширенные поля"(На пример вызов по клику на "кнопку расширения возможностей" диалога с TMemo ), варианты и тд )
То есть примерно так как сделано в демке :
- Код: Выделить всё
...
procedure C2P_ADD (N,V:String);//String
procedure C2P_ADD_Int (N,V:String);//Int
procedure C2P_ADD_Float(N,V:String);//Float
procedure C2P_ADD_Bool (N,V:String);//bool
procedure C2P_ADD_Cbox (N,V:String);//Cbox Variant
procedure C2P_ADD_Color(N,V:String);//Color
procedure C2P_ADD_FName(N,V:String);//FN
procedure C2P_ADD_Font (N,V:String);//Font
procedure C2P_ADD_Memo (N,V:String);//Memo
...
C2P_ADD('Название',' неизвестно');
C2P_ADD_INT('X','10');
C2P_ADD_INT('Y','10');
C2P_ADD_INT('W','100');
C2P_ADD_INT('H','10');
C2P_ADD_Color('C','0');
C2P_ADD_Color('CB','255');
C2P_ADD_Cbox('Рамка','0/Круг/Квадрат');
C2P_ADD_Bool('Прозрачность(0/1)','0');
C2P_ADD_Float('Угол','0.00');
C2P_ADD_FName('Картинка','pic01.jpg');
C2P_ADD_Font('Шрифт','[Size:10][BUI:110] FN:[Arial Narrow]');
C2P_ADD_Memo('Коментарий ','1...///2...///3...');
5 О типах "знает" только прорисовка и управление на уровне инспектора .
6 Читать и менять данные чаще всего будет скрипт . ( Поэтому нужно как можно меньше заморочек с типами снимаемых и записываемых данных ...Имя поля есть ? Есть ! Читаем или записываем строку по имени, а что с данными сделает скрипт это "его личное дело " )
По демке :
1 Она как бы работает ( условно досрочно )
2 В программе нет множества ограничений и проверок (например нет проверки на ввод пустой строки)
3 Надеюсь что в реальный проект этот тип-код не войдет