Форум: "Потрепаться";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизКак реализовать превью для изображений в из базы данных Найти похожие ветки
← →
Knight (2003-03-20 19:57) [0]Привет всем!
Прошу прощения, что залез с этим вопросом в общий, но в БД его проигнорировали :(
Может кто подскажен нормальный компонент для создания превью изображений для базы данных. Чтобы панельки в центре которых миниатюра из БД с настройкой отступов и автоматическим ресайзом и скролами и возможностью расположения в несколько колонок, или хотя бы объясните как из своего компонента взаимодействовать с TDataSource, а то приходится через динамические массивы выворачиваться.
← →
Mike Kouzmine (2003-03-20 20:15) [1]"превью изображений для базы данных. Чтобы панельки в центре которых миниатюра из БД с настройкой отступов и автоматическим ресайзом и скролами и возможностью расположения в несколько колонок" - если ты объяснишь что это такое, то подскажу.
← →
Palladin (2003-03-20 20:25) [2]да это он целое приложение описал свое...
> Knight © (20.03.03 19:57)
люди пишут такое, и не за два дня, стараются, а ты хочешь двумя щелчками, создать ACDSee, да еще и для просмотра из базы?
:) ну кроме как "орел" тут ничего не скажешь...
← →
Knight (2003-03-21 11:27) [3]Щас у меня это работает так...
Сделан свой компонент TPreviewPanel на базе TPanel к которому добавлен TImage с центровкой, полями, выделением цветом при нажатии и некотороми другими свойствами (люблю делать всё максимально универсальным... а вдруг пригодиться :)
В программе создаётся динамический массив : TPreviewPanel
Обновляется отдельной функцией...
И всё это добро отображается в ScrollBox"е.
Если такого бесплатного компонента пока нет, то может пояснит кто, как завязаться с набором данных TQuery через TDataSource, чтобы сделать свой.
← →
handra (2003-03-21 15:41) [4]Если изображение большого размера, полезно хранить рядом (в другом поле таблице) уменьшенную до нужно размера копию. Трафик то не резиновый (как и канал)... да и нагрузка на сервер меньше.
← →
Alexander Vasjuk (2003-03-21 15:59) [5]Используй ControlGrid
Там возможны несколько строк и колонок
← →
Knight (2003-03-21 16:24) [6]>> handra
Так и сделано... в превью вывожу миниатюру, а по двойному клику загружаю в отдельное окно вьюера где и можно его рассмотреть как надо с зумом.
>>Alexander Vasjuk
Так это опять всё вручную... и вообще я такого не нашёл :(
или имеется в виду TDBCtrlGrid, если да, то там нужных настроек нет.
← →
Knight (2003-03-22 16:09) [7]>> Юрию
У меня в проге используется две вещи, реализация которых мне не очень нравится.
1) Preview изображений из базы (реализация описана выше)
Хоть это и работает, но не обладает необходимой гибкостью. Хотелось бы объеденить всё это в один компонент и связать напрямую с набором данных. Если знаешь, напиши, какие минимальные свойства и методы для этого необходимы.
2) Сохранение и загрузка дерева в структуру MyTreeView (отличается от TreeView, что вместо TreeNode - MyTreeNode со свойствами Comment и NodeCode, который хранит значение GROUP_ID записи, использую для фильтрации при клике на узле).
Структура таблицы:
GROUP_ID
PARENT_GROUP_ID
GROUP_NAME
COMMENT
Загрузка идёт через рекурсивную процедуру.
В качестве параметра передаётся значение MyTreeNode;
Производится фильтрация через SQL
"WHERE PARENT_GROUP_ID=MyTreeNode.NodeCode";
Значение из полей считывается в динамический массив TNodeInfo(ID, имя, комментарий), чтобы не искать снова.
В цикле создайтся новый узел, присваиваются значения из массива и вызывается рекурсия. Грубо, но идея вроде ясна...
Как твоё мнение?
← →
DrPass (2003-03-23 00:02) [8]Собственно говоря, чем DBCtrlGrid не подходит? Кидаешь на него DBImage, ставишь в нем сколько нужно колонок и столбцов - и вот тебе ACDSee для базы данных
← →
Knight (2003-03-23 00:09) [9]Так размеры разные
← →
DrPass (2003-03-23 13:26) [10]Размер можно "ручками" подправлять - не проблема
← →
Knight (2003-03-23 16:01) [11]У изображений размеры разные...
Это придётся ставить у TDBImage.Stretch=True, а после в onPaintPanel (если я правильно помню) брать этот контрол и подгонять его размер и положение, чтобы он при любых ресайзах выглядел как надо и находился в центре панели.
Конечно, не настолько заморочно по-сравнению с написанием своего компонента но... ну не нравится мне TDBCtrlGrid. Ни то, как он выглядит, ни его убогие настройки, ни то, что при изменении размера он отталкивается от количества строк и столбцов, т.е. они не сохраняют свои пропорции, а я может хочу, чтобы все панели всегда были квадратные....
Если кто знает, напишите, как связать свой компонент напрямую с набором данных, чтобы он работал хотя бы в одну сторону, т.е. реагировал на изменение набора для отображения текущего состояния. Какие минимальные свойства и методы для этого необходимы. Я так понимаю, тут всё дело в TDataLink, но что с ним делать и как правильно организовать с ним работу?
Порылся я тут в исходниках... что-то не совсем понял.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c