Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278

Разместить текст в TImage

13.11.2018, 19:08. Показов 3300. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Получил задание на создание "Мастера создания визиток". Реализовал сам шаблон визитки. Можно задавать её размер, а также выбирать фон. Теперь нужно реализовать добавление текста с возможность выбирать шрифт, размер, цвет. Подскажите пожалуйста, как это можно сделать лучше всего? Я думал попробовать присваивать текст через эдит в лейбл, по отдельным кнопкам каким-нибудь или другим объектам разместить функции редактирования, и сделать так, чтобы лейбл можно было двигать во время выполнения программы, но понял, что это очень муторно, неудобно, да и лейблы можно будет двигать по всей форме, а не только внутри TImage.

Кто-нибудь сталкивался с чем-нибудь похожим? Был бы очень благодарен за любую помощь.

Прикрепляю скриншот (она в процессе, поэтому не обращайте внимания на разбросанные лейблы)
Миниатюры
Разместить текст в TImage  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2018, 19:08
Ответы с готовыми решениями:

TImage после динамической загрузки PNG неправильно выводит текст
На форме есть TImage, нужно динамически грузить в него картинку PNG и потом сверху текст. ...

Разместить на все строки DBGrid текст из Edit
Доброе утро всем программистам. У меня есть таблица где есть с пустыми строками(NULL) Я их не трогаю, но хочу чтобы когда набил цифру в...

Вывести текст на изображение TImage
доброго времени суток. собственно проблема заключается в том, чтобы подписать оси при постройке графика.

14
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.11.2018, 20:50
Используйте панель; а на ней разместите Image и Label'ы. Тогда таскать их возможно только в пределах рисунка. И вспомните о компонентах-диалогах (Color dialog, Font dialog...).
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
13.11.2018, 20:52  [ТС]
nick42, ой, а можно, пожалуйста, поподробнее? Я не работал с этими объектами, но по названию понятно, что они будут очень полезны Желательно пример какой-нибудь
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.11.2018, 21:01
Лучший ответ Сообщение было отмечено Komputershik как решение

Решение

П.С. вот примитив для ознакомления
Вложения
Тип файла: zip 55.ZIP (295.0 Кб, 12 просмотров)
2
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
13.11.2018, 21:53  [ТС]
nick42, спасибо, сейчас попробую разобраться.

Добавлено через 27 минут
nick42, хмм. Пытаюсь ваш код использовать из проекта, в h всё указал, но почему-то выдаёт всё-равно ошибку

"[bcc32 Error] Unit1.cpp(77): E2316 '_fastcall TForm1::Label6MouseDown(TObject *,TMouseButton,TShiftState,int,int)' is not a member of 'TForm1'"

будто я не объявлял ничего

Добавлено через 20 минут
nick42, всё, разобрался с fastcall, теперь проблема в том, что лейбл не двигается. Шрифт меняется, а лейбл всё равно не двигается
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.11.2018, 21:56
может банально ему (лэйблу) обработчик не назначили? (Событие OnMouseDown OnMouseMove)
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
13.11.2018, 22:05  [ТС]
nick42, Да вроде поставил всё. А там OnMouseDown или MouseDown? (хотя я оба варианта пробовал). С панелью тоже разобрался, даже сделал так, чтобы она динамически менялась вместе с TImage
Можно я вам проект скину?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
13.11.2018, 22:10
На фиг панель. Вот пример безо всякой панели:
Вложения
Тип файла: zip move_pic.zip (141.1 Кб, 10 просмотров)
2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.11.2018, 22:11
Цитата Сообщение от Komputershik Посмотреть сообщение
Можно я вам проект скину?
Скинуть-то можно. Но я ничего не обещаю, - если без трансляции определиться не получится, то преобразовывать под мою пятерку (BCB5) мне сегодня лень.
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
13.11.2018, 22:22  [ТС]
nick42, Вот, пришлось заливать на файлообменник, т.к. ошибка при попытке вложить через файл (похоже файл слишком большой из-за картинок)

https://drop.me/Bke096

volvo, блин, не могу открыть. Я пользуюсь community билдером 10ым

Добавлено через 4 минуты
nick42, может быть я какую-нибудь галочку не поставил на лейбле?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.11.2018, 22:49
Лучший ответ Сообщение было отмечено Komputershik как решение

Решение

Да нет. не в галочке дело. Тут вот какая штука: в моем примере обработчик для Label1 (mousedown, mousemove) построен универсально, т.е. от какой метки поступит сообщение (ну, или запрос на обработку), с той меткой манипуляции и производятся. Поэтому можно просто разместить Label на Image, в Events-OnMouseDown (так же и в OnMouseMove) в пустом поле щелкнуть мышью для появления выпадающего меню, и в нем выбрать вот тот уже написанный обработчик для Label1.
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
13.11.2018, 22:54  [ТС]
nick42, ооо, спасибо. всё, работает. Большое вам спасибо! (да, в Events везде указал эту штуку)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.11.2018, 00:59
Лучший ответ Сообщение было отмечено Komputershik как решение

Решение

Цитата Сообщение от Komputershik Посмотреть сообщение
не могу открыть. Я пользуюсь community билдером 10ым
Ну на тебе проект для XE8 (10-ку не держу, она мне на фиг не нужна), посмотри, насколько мой вариант проще. Ничего не надо назначать никуда, все уже назначено, причем не только для тех двух лейблов, которые есть на форме сейчас, а и для всех остальных, которые ты соизволишь добавить потом (хоть в дизайнере, хоть динамически в рантайме), достаточно только заполнить свойство LinkedTo, и лейбл становится переносимым относительно контрола, который указали в этом свойстве, и за его границы не выезжает...
Вложения
Тип файла: zip move_pic_xe8.zip (231.6 Кб, 7 просмотров)
2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.11.2018, 10:01
Там в Mov_Lbl.hpp неплохо бы добавить фиксацию координат мыши при Down. А то метка "соскальзывает"... .
0
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
14.11.2018, 23:07  [ТС]
volvo, Согласен, у вас куда проще, однако, как написал nick42, там действительно "съезжает" лейбл вниз, как только начинаешь его двигать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2018, 23:07
Помогаю со студенческими работами здесь

Разместить текст по центру
Как сделать, чтобы текст был ровно по центру и по горизонтали, и по вертикали? <a href="http://a"...

Как разместить текст в кнопке?
Доброго времени суток! Немного банальный вопрос, но как разместить текст на кнопке? При редактировании кнопки (цвет, текст и т.д.) поля...

Разместить текст друг на другом
Разместить текст в двух QLabel, друг над другом чтобы между ним не было расстояния. Делаю Margin Spacing -> 0 Всер авно между Qlabel...

Как лушче разместить текст.
К примеру есть достаточно габаритные размеры текста: Естественно все не умещается в label и в memo не удобно на белом фоне, что...

Как разместить текст на Canvas?
я столкнулся с проблемой программного размещения текста в контейнере Canvas... не могу найти как программно прикрепить(не создать)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru