Ненаживающаяся кнопка

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
AlexNightingaller
новенький
Сообщения: 19
Зарегистрирован: 08.06.2011 10:41:16

Ненаживающаяся кнопка

Сообщение AlexNightingaller »

Как сделать ненажимающуюся кнопку? То есть у нас есть кнопка, но когда ее нажимаем, она не должна уходить "вниз". Надеюсь, выразился понятно. Надо под Windows, без кросплатформенности.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

TImage
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

TPanel
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

TForm
Аватара пользователя
minoshi
постоялец
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Сообщение minoshi »

если "кнопка" - это просто надпись, то можно tlabel
если "кнопка" с оформлением, то нарисовать ее самостоятельно и загрузить в timage

И у того и у другого компонента - есть свойство onclick.
daesher
постоялец
Сообщения: 221
Зарегистрирован: 09.03.2010 21:17:14

Сообщение daesher »

А не проще ли у обычной кнопки сделать enabled=false? В крайнем случае, можно её чуть-чуть подкрасить, так что не сразу заметят.
Аватара пользователя
minoshi
постоялец
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Сообщение minoshi »

daesher писал(а):А не проще ли у обычной кнопки сделать enabled=false? В крайнем случае, можно её чуть-чуть подкрасить, так что не сразу заметят.


вроде же по сабжу, кнопка должна быть активна, но без анимации
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

А если мыши нет, и мы работаем Tab-ом?
TImage - наследник от TGraphicControl, а у него нет фокуса, следовательно с клавой работать не будет.

Windows.DrawFrameControl() - можно отрисовать стандартный виндовый контрол, начиная от рамки, кнопки и кончая селектором, подробности гуглем или онлпайн-MSDN.
ЗЫ: по хорошему надо просто будет сделать компонент на основе TCustomControl + заюзать в отрисовке DrawFrameControl().
daesher
постоялец
Сообщения: 221
Зарегистрирован: 09.03.2010 21:17:14

Сообщение daesher »

minoshi писал(а):
вроде же по сабжу, кнопка должна быть активна, но без анимации

А кто говорил про активность?
Аватара пользователя
ZeUsM
новенький
Сообщения: 57
Зарегистрирован: 08.11.2010 12:55:35
Откуда: Нерезиновая

Сообщение ZeUsM »

daesher писал(а):
minoshi писал(а):
вроде же по сабжу, кнопка должна быть активна, но без анимации

А кто говорил про активность?

А если ещё раз внимательно прочитать чего хочет ТС?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

GrayEddy писал(а):Windows.DrawFrameControl() - можно отрисовать стандартный виндовый контрол, начиная от рамки, кнопки и кончая селектором,

Для этих целей лучше использовать методы из модуля тем. Тогда будет и код кросплатформенный и смена темы в GUI OS отрабатываться верно.
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

Можно и так, но товарищ просил решение исключительно под Windows.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

GrayEddy писал(а):Можно и так, но товарищ просил решение исключительно под Windows.

Так оно будет работать везде и можно (и нужно) глянуть в исходниках как люди это уже сделали (на примере того же самого SpeedButton-а)
Ответить