Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.04.2013, 04:29
Аватар для Speech
Speech Speech вне форума
Новичок
 
Регистрация: 16.02.2012
Сообщения: 55
Репутация: 10
По умолчанию Прозрачная кнопка

Доброго времени суток.

Исходя из названия темы - нужна такая реализация. То что мне нужно получается путем использования компонента SpeedButton, со свойствами Flat:= True; и ParentFont:= False;. Но! В таком случае невидно контуров кнопки - они появляются только при наведении мыши. А мне нужно чтобы эти контуры были видны всегда.
Прошу совета и помощи.
Ответить с цитированием
  #2  
Старый 06.04.2013, 06:47
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Speech
...нужно чтобы эти контуры были видны всегда...
Противоречие: тогда не нужно использовать flat. Можно рамку нарисовать на пиктограмме, glyph`ов может быть до 4х, в файле рисунка они идут друг за другом, одинакового размера и рантаймово отображаются в такой последовательности: enabled-disabled-clicked-down.
Ответить с цитированием
  #3  
Старый 06.04.2013, 17:34
Аватар для Speech
Speech Speech вне форума
Новичок
 
Регистрация: 16.02.2012
Сообщения: 55
Репутация: 10
По умолчанию

Да, забыл еще про свойство Transparent:= True;

Alegun, как вы описали не получается сделать - кнопка тогда не прозрачная становится. Или я что-то не так сделал.
Ответить с цитированием
  #4  
Старый 06.04.2013, 17:38
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Speech, ответ на ваш вопрос здесь
Ответить с цитированием
  #5  
Старый 06.04.2013, 17:45
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Speech
...кнопка тогда не прозрачная становится...
Она чтоли на рисунке лежит? Тогда или прозрачная кнопка без рамки до наведения курсора, или кнопка с рамкой, но с рисунком на глифе - скопируйте тот кусок рисунка, где должна быть спидюха и грузите его на её глиф. Только так.
Ответить с цитированием
  #6  
Старый 06.04.2013, 17:48
Аватар для Speech
Speech Speech вне форума
Новичок
 
Регистрация: 16.02.2012
Сообщения: 55
Репутация: 10
По умолчанию

Dux, спасибо за ссылку, однако картинка есть картинка, и она не желает становиться прозрачной. Даже если фон однородный делать, оставляя при этом одну рамку.
Ответить с цитированием
  #7  
Старый 06.04.2013, 17:51
Аватар для Speech
Speech Speech вне форума
Новичок
 
Регистрация: 16.02.2012
Сообщения: 55
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Она чтоли на рисунке лежит? Тогда или прозрачная кнопка без рамки до наведения курсора, или кнопка с рамкой, но с рисунком на глифе - скопируйте тот кусок рисунка, где должна быть спидюха и грузите его на её глиф. Только так.
Да, кнопка лежит на рисунке. Думал об этом варианте уже, но как-то это не очень правильно
Надеялся может другой вариант есть, более программный.
Ответить с цитированием
  #8  
Старый 06.04.2013, 17:54
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Speech
...картинка есть картинка, и она не желает становиться прозрачной. Даже если фон однородный делать, оставляя при этом одну рамку.
Вроде можно, рисуем рамку, вокруг неё обводим любым цветом в пиксель толщиной и этим же цветом заливаем центр. Да, ну и у кнопки Transparent в True.

З.Ы. Проверил, работает.

Последний раз редактировалось Alegun, 06.04.2013 в 18:03.
Ответить с цитированием
  #9  
Старый 06.04.2013, 18:18
Аватар для Speech
Speech Speech вне форума
Новичок
 
Регистрация: 16.02.2012
Сообщения: 55
Репутация: 10
По умолчанию

Чтобы было более понятно чего я хочу. Берем компонент SpeedButton, его свойства:
Flat:= True;
ParentFont:= False;
Transparent:= True;

Получаем такой результат:


Но тут нету рамки! Кнопка едва заметна. Но, если навести на нее мышкой - имеем такой вот вид:



Вот хочется чтобы изначально был вид как на втором рисунке. Такое возможно или нет? Конечно - хочется именно программным способом, не вставляя нужный кусок картинки в изображение кнопки.
Ответить с цитированием
  #10  
Старый 06.04.2013, 19:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Speech
...Вот хочется чтобы изначально был вид как на втором рисунке...
Так пойдёт?
Вложения
Тип файла: zip btn.zip (21.1 Кбайт, 118 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Speech (06.04.2013)
  #11  
Старый 06.04.2013, 19:53
Аватар для Speech
Speech Speech вне форума
Новичок
 
Регистрация: 16.02.2012
Сообщения: 55
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Так пойдёт?
Пойдет. Спасибо большое
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter