Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.008 c
3-19437
Sergant
2003-03-18 14:07
2003.04.07
Альтернатива SQL Explorer


3-19496
Rustik
2003-03-19 16:29
2003.04.07
Инкрементальный поиск в DBLookUpComboBox


4-19911
AlexSW
2003-02-06 11:44
2003.04.07
Эмуляция нажатия 2-х клавиш одновремкнно.


6-19728
fagot
2003-02-14 15:14
2003.04.07
Как декодировать subject письма


14-19767
NetBreaker666
2003-03-21 20:36
2003.04.07
И еще: зацените мой калькулятор.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский