Последняя версия DataExpress 3 beta от 18 июля 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Расширения
ИзображениеИзображениеИзображение

Расширение резиновое поле (несколько полей)

Расширение функционала и существующих возможностей программы с помощью модулей расширений и плагинов от сторонних разработчиков.

Модератор: Разработчики расширений

Аватара пользователя
Иван
Интересующийся
Сообщения: 177
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 27 раз
Поблагодарили: 35 раз

Расширение резиновое поле (несколько полей)

Сообщение Иван » Ср апр 15, 2020 8:32 pm

Расширение для работы с большими текстами или экономии на размере записей если диапазон длины текста может быть от очень мелкого до огромного. Для работы расширения на форме нужно поле dxMemo, таблица и в ней dxMemo. Эти объекты добавляем в расширение. Указывая размер dxMemo на форме 100 символов и такой же размер в таблице (можно указать и больше но нет особого смысла), при сохранении записи в таблицу будет писать записи по 100 символов пока не запишет весь текст. При открытии формы будет создано виртуальное TMemo и в него скопирует суммарный текст всех записей таблицы. Дальше мы фактически работаем в нем). На форме можно создать произвольное количество таких полей.

Если задать один/оба предпоследние параметры в настройках (ширина и высота) то при клике на Memo будет изменение ширины и/или высоты. При повторном клике вне области Memo размер будет возвращен. Пока мы редактируем с ресайзом другие поля добавленные в расширения будут недоступны для редактирования.
При сохранении записи в поле dxMemo будет записан текст по размеру равному количеству символов что можно в него записать (для удобства просмотра в запросах). Если текст не был изменен то записи в таблице не будет перезаписывать, это особенно ощутимо на записях свыше нескольких сотен тыс. символов.
Галочка скрыть таблицы - скрывает таблицы для пользователя.

Работа со всеми типа TipeView (кроме простой формы, только форма).

Обновление 1.4:
- Если нужно записать из скрипта текст в поле мемо на котором подключено расширение, передаем его в Params с именем равным имени поля_put.
- Если нужно добавить текст к уже существующему имя поля_add .
- Если нужно вернуть текст записанный в мемо - имя мемо_get.

(если сохраняя запись существует один из Params описанных выше будет брать данные из них, после этого зануляет).
Пример:

Код: Выделить всё

T.OpenRecord(114);
T.Edit;
T.Params['Заметка60_add']:= LongStr; // добавили текст к уже существующему
T.Post;
NewLongStr:= T.Params['Заметка60_get']; // забрали результат
T.Free;


Модуль написан по примеру кода пользователя Гость Пример: "Резиновое" текстовое поле.

Обновление 1.5:
По примеру модуля добавлена Вставка текста в место нахождения курсора на виртуальных полях.

Обновление 1.6:
Добавлена возможность получения доступа к тексту мемо используя Getvar(имяполя_get). Для срабатывания вычислений необходимо на форме
добавить dxLabel и выбрать его в расширении (который считает количество символов). Именно при вычислении количества символов одновременно происходит перезапись Getvar и
вычисление всех полей где есть Getvar(имяполя_get).
Вложения
MultiStretchFields_1.6.epas
Расширение Версия 1.6 от 03.08.2020
(25.46 КБ) 6 скачиваний
MultiStretchFields_1.5.epas
Расширение Версия 1.5 от 23.07.2020
(22.92 КБ) 8 скачиваний
MultiStretchFields_1.4.epas
Расширение Версия 1.4 от 16.06.2020
(17.98 КБ) 27 скачиваний

Аватара пользователя
Иван
Интересующийся
Сообщения: 177
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 27 раз
Поблагодарили: 35 раз

Расширение резиновое поле (несколько полей)

Сообщение Иван » Пт май 08, 2020 2:07 pm

capsmolet писал(а):
Иван писал(а):В каком ViewType у вас форма? Или лучше прикрепите базу.


Да это даже не база, а так попробовать расширение.


Расширение рассчитано на TypeView только таблица. Будет энтузиазм допишу и другие TypeView но пока что так.

capsmolet
Интересующийся
Сообщения: 112
Зарегистрирован: Пт сен 20, 2019 7:26 pm
Благодарил (а): 24 раза
Поблагодарили: 12 раз

Расширение резиновое поле (несколько полей)

Сообщение capsmolet » Пт май 08, 2020 8:06 pm

Иван писал(а):Расширение рассчитано на TypeView только таблица. Будет энтузиазм допишу и другие TypeView но пока что так.


Ага, теперь понятно, спасибо.

dm2002_2002
Новичок
Сообщения: 40
Зарегистрирован: Чт фев 20, 2020 8:52 pm
Благодарил (а): 11 раз
Поблагодарили: 1 раз

Расширение резиновое поле (несколько полей)

Сообщение dm2002_2002 » Пн июн 15, 2020 6:09 pm

Здравствуйте!
Попробовал Ваше расширение.При сохранении записи все время выдает ошибку: ошибка Val.
Но при этом все сохраняет и отображает.
Вложения
MEMO.zip
(69.48 КБ) 16 скачиваний

Аватара пользователя
Иван
Интересующийся
Сообщения: 177
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 27 раз
Поблагодарили: 35 раз

Расширение резиновое поле (несколько полей)

Сообщение Иван » Пн июн 15, 2020 7:34 pm

dm2002_2002 писал(а):Здравствуйте!
Попробовал Ваше расширение.При сохранении записи все время выдает ошибку: ошибка Val.
Но при этом все сохраняет и отображает.


Поправил. Перезалил.

dm2002_2002
Новичок
Сообщения: 40
Зарегистрирован: Чт фев 20, 2020 8:52 pm
Благодарил (а): 11 раз
Поблагодарили: 1 раз

Расширение резиновое поле (несколько полей)

Сообщение dm2002_2002 » Вт июн 16, 2020 12:25 pm

Круто! Теперь все работает. Спасибо!

Telos
Новичок
Сообщения: 26
Зарегистрирован: Пн мар 06, 2017 8:15 pm
Благодарил (а): 5 раз
Поблагодарили: 3 раза

Расширение резиновое поле (несколько полей)

Сообщение Telos » Ср июл 08, 2020 2:27 pm

Добрый день. Как-то можно подружить ваше расширение с "Вставка текста в место нахождения курсора" https://forum.develop-soft.ru/viewtopic.php?f=5&t=24
Раз у вас создается виртуальное поле, то его нельзя указать в расширении которое выше. Это как-то можно обойти?

Kliborn
Новичок
Сообщения: 22
Зарегистрирован: Пт мар 30, 2018 11:23 am
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Расширение резиновое поле (несколько полей)

Сообщение Kliborn » Чт июл 09, 2020 1:13 pm

не смог понять из вышеизложенного что куда необходимо добавить. Попытался применить данное расширение с https://forum.develop-soft.ru/viewtopic.php?f=5&t=24 "Вставка текста в поле(action_epas).zip" не получилось. При ручном вводе информации с клавиатуры всё получается. при нажатии кнопки, не срабатывает. Если отключить резиновое поле, то всё опять работает.

Сие действие не происходит как надо во вкладке Картридж_шт
Вложения
Копия БД.zip
БД - с применением резинового поля
копия БД без применения резинового поля
(667 КБ) 19 скачиваний

Аватара пользователя
Иван
Интересующийся
Сообщения: 177
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 27 раз
Поблагодарили: 35 раз

Расширение резиновое поле (несколько полей)

Сообщение Иван » Чт июл 09, 2020 1:24 pm

Telos писал(а):Добрый день. Как-то можно подружить ваше расширение с "Вставка текста в место нахождения курсора" https://forum.develop-soft.ru/viewtopic.php?f=5&t=24
Раз у вас создается виртуальное поле, то его нельзя указать в расширении которое выше. Это как-то можно обойти?


Допишу, пока руки не дошли.

Nikxdrummer
Опытный
Сообщения: 257
Зарегистрирован: Чт фев 16, 2017 10:56 am
Откуда: Новосибирск
Благодарил (а): 5 раз

Расширение резиновое поле (несколько полей)

Сообщение Nikxdrummer » Сб авг 01, 2020 12:19 pm

Совершенно не понятно как пользоваться расширением(
Мои действия:
1. Создал на форме заметку и таблицу, в таблице еще одну заметку
2. Указал в действиях формы расширение и указал все обязательные поля
3. Вставляю в заметку текст, он обрезается до длины заметки и всё, в таблицу ничего не передается, в виртуальной заметке соответственно пусто... Да, и еще, я так и не понял как брать данные из виртуальной заметки :cry:

Аватара пользователя
Иван
Интересующийся
Сообщения: 177
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 27 раз
Поблагодарили: 35 раз

Расширение резиновое поле (несколько полей)

Сообщение Иван » Сб авг 01, 2020 1:17 pm

Nikxdrummer писал(а):Совершенно не понятно как пользоваться расширением(
Мои действия:
1. Создал на форме заметку и таблицу, в таблице еще одну заметку
2. Указал в действиях формы расширение и указал все обязательные поля
3. Вставляю в заметку текст, он обрезается до длины заметки и всё, в таблицу ничего не передается, в виртуальной заметке соответственно пусто... Да, и еще, я так и не понял как брать данные из виртуальной заметки :cry:


Выше добавляли рабочий вариант ДХ где все настроено. Копия БД. Посмотрите что да как. Хотя не знаю что может не работать если все поля заполнены.


Вернуться в «Расширения и плагины»