С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 12

Прозрачный текст в TLabel

01.03.2019, 09:42. Показов 1820. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время.

Необходимо сделать плавное появление текста на форме. Если не ошибаюсь, текст в TLabel нельзя сделать хоть на сколько-нибудь прозрачным, было бы идеально, но других альтернатив не знаю, ничего не смог найти.

Существуют ли какие хитрости для решения этой задачи?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2019, 09:42
Ответы с готовыми решениями:

Подчеркнутый текст в TLabel
Как мне сделать что-то типа этого? Label1->Font->Style = fsUnderline;

Как в TLabel сделать отдельный текст Жырным?
Добрых суток Форумчяни, может ктото сталкивался с такой задачей: В Label1 нужно вивести текст, но чтобы отдельний текст в Label1-е был...

Текст поверх картинки, прозрачный фон, заданный цвет
Тут возникла необходимость на объекте Image выводить текст много много раз ... да еще и на черном фоне. Как создавать текст поверх картинки...

11
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,010
01.03.2019, 10:23
Сделай постепенное увеличение размера шрифта.
Или глянь Прозрачная форма, полупрозрачный текст.
0
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 12
01.03.2019, 11:00  [ТС]
Если речь идёт о строчке:
C++
1
::SetLayeredWindowAttributes(Form1->Handle,clWhite ,64,LWA_ALPHA | LWA_COLORKEY);
то функция, как я понял, применима исключительно к форме, разве не так? В моём случае нужно лишь прозрачность текста со временем менять, всё остальное должно быть полностью видимым.

Увеличение шрифта, конечно, не так серьёзно выглядит, как появление текста, но как запасной вариант сойдёт. Если ещё какие подсказки по прозрачности текста найдутся - буду признателен их услышать.
0
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
01.03.2019, 13:32
как вариант текст имеет цвет фона (например белый) и градациями серого становится чёрным
0
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 12
01.03.2019, 13:37  [ТС]
Тоже думал об этом. Но я себе, выходит, невзначай задачу с самого начала усложнил, сделав фон градиентным. Будет слегка видно текст. И не знаю, плавно вряд ли получится текст на форме проявить, изменяя цвет. Скачки от одного к другому цвету видны будут.

Как-то странно выходит, что с виду простую задачу - сделать текст прозрачным - нельзя выполнить простым способом, не ожидал.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
01.03.2019, 13:43
StArthur, а в момент какого события должна показываться метка?
0
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 12
01.03.2019, 13:48  [ТС]
Там на форме должны инструкции (текст) сменяться во время работы приложения. Грубо говоря, кнопку нажал - и первая инструкция заменяется второй на её же месте. Другую нажал - третья появилась на месте предыдущей. Например, одну секунду текст исчезает и за такое же время появляется новый. И всё это работает с помощью таймеров, т.е кнопку нажал - таймер включился и погнали текстами манипулировать.
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,010
01.03.2019, 14:16
Можно попробовать имитировать движение всего текста сразу сверху вниз или справа налево, при этом старый текст будет "уезжать", а новый "приезжать".

Добавлено через 10 минут
Или сделать подобно этому (смотреть примерно с момента 3:30):
видео
1
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 12
01.03.2019, 14:20  [ТС]
Скорее применю этот уезжающий вариант. Жаль, что с прозрачностью не прокатило.

Спасибо всем за ответы, обнял, до связи
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,886
Записей в блоге: 12
01.03.2019, 15:07
Ну написано же выше: подбери значение v, при котором RGB(v, v, v) будет совпадать с начальным и с конечным нужным цветом (один из них = черный, поэтому RGB(0, 0, 0), второй для классической схемы в WinXP/Win7, например = 200, при RGB(200, 200, 200) текст сливается с фоном, и по таймеру меняй эти значения. Грубо - вот таким перехватчиком:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
namespace Transparent_Label
{
    class TLabel : public Stdctrls::TLabel
    {
        bool FHide;
        TTimer *tmr;
        int rgb;
        void __fastcall ColorTimer(TObject *Sender)
        {
            if((FHide && rgb <= 200) || (!FHide && rgb >= 0))
            {
                this->Font->Color = RGB(rgb, rgb, rgb);
                rgb -= (1 - 2 * (int)FHide) * 2;
            }
            else tmr->Enabled = false;
        }
    public:
        __fastcall virtual TLabel(Classes::TComponent* AOwner) : Stdctrls::TLabel(AOwner)
        {
            tmr = new TTimer(this);
            tmr->OnTimer = ColorTimer;
            tmr->Interval = 10;
            tmr->Enabled = false;
        }
        void ChangeText(String s) // этот метод вызывать при необходимости сменить текст...
        {
            if(Caption != s)
            {
                rgb = 0;
                FHide = true; tmr->Enabled = true;
                while(tmr->Enabled)
                {
                    Sleep(1);
                    Application->ProcessMessages();
                }
                Caption = s;
                FHide = false; tmr->Enabled = true;
                while(tmr->Enabled)
                {
                    Sleep(1);
                    Application->ProcessMessages();
                }
            }
        }
    };
};
#define TLabel Transparent_Label::TLabel
, можно сделать и более красиво, чтобы не быть привязанным к циклам... Как будет время - попробую набросать еще один вариант.
1
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 12
01.03.2019, 16:44  [ТС]
Разве что разбить один лейбл на строки и их начальный цвет перед проявлением подстраивать под цвет заднего фона за каждой строкой, потому что фон (вертикально) градиентный.. А однотонным делать его не хочется.

Попробую разобраться на днях в перехватчике выше, может всё идеально выйдет. Откланялся за помощь.
0
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
05.03.2019, 11:50
примерчик тут
Вложения
Тип файла: 7z Project1.7z (7.9 Кб, 8 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2019, 11:50
Помогаю со студенческими работами здесь

Вертикальный текст в TLabel
Кто знает, как можно сделать вертикальный текст в TLabel?

Как скопировать текст из TEdit в TLabel?
Создать проект, в котором данные, введенные в поле Edit дублируются в компонент Label. Название темы должно быть содержательным. Название...

При нажатии на TLabel вставить текст в TMemo
Помогите написать код, а то я крапик .-. Короче, вот скрин и что мне нужно: когда при нажатии на определенный текст, мне выбивало в...

Как программно удалить весь текст из TLabel?
Здравствуйте, пожалуйста подскажите, как программно удалить весь текст из компонента TLabel, если у меня Delphi Seattle.

Определить на сколько строк разбит текст в TLabel (WordWrap = True)
Возможно ли в Delphi определить на сколько строк разбит текст при WordWrap := True; или определить высоту Caption у Label при нескольких...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru