Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

Как реализовать превью для изображений в из базы данных   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
1-19585
Tornado
2003-03-28 14:14
2003.04.07
Memo


14-19749
JC
2003-03-13 18:54
2003.04.07
Нужен исходник...


7-19891
Stan
2003-02-11 00:33
2003.04.07
Работа с реестром


14-19806
Katerinka
2003-03-19 15:21
2003.04.07
.net


14-19805
OxOTHuK
2003-03-20 07:48
2003.04.07
Pointer s ака Указатели