Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизХинт у компонента со свойством Enabled=False Найти похожие ветки
← →
Германн © (2010-05-26 01:38) [0]Надо мне в тестовом ПО показать состояние битов двух байт получаемых с моего контроллера. Каждый бит из этих 16-ти имеет своё смысловое значение. Так что просто вывод в двоичном формате ну очень не подходит. Решил вывести их с помощью компонент TGroupBox и TCheckBox. Хорошо, но не совсем. Если компонентам TCheckBox поставить Enabled=True, то дурак обязательно на них кликнет. Если им поставить Enabled=False, то они "некрасиво" выглядят. Стиль Grayed сильно смущает пользователя (даже несмотря на то, что это ПО - ДСП).
Поместил всё на TPanel установив ей Enabled=False. Теперь всё отлично. И вид нормальный и кликнуть нельзя. Но вот одно меня мучает. Два бита из 16-ти напрашиваются на дополнительное объяснение, которое ну никак не влазит в CaptionTCheckBox"а.
Что делать? Может кто что посоветует?
← →
antonn © (2010-05-26 01:51) [1]нарисуй свой контрол
← →
Германн © (2010-05-26 02:11) [2]
> antonn © (26.05.10 01:51) [1]
>
> нарисуй свой контрол
>
Не хочется. Это ведь займёт время (которого у меня нет).
Тем более, что я (в виду своей малограмотности даже не знаю куда копать?).
Где искать и где (что) менять чтобы показать хинт задизейбленного контролла.
С нуля делать контрол, который внешне похож на TCheckBox, но не допускает изменения "галочки" - тоже слишком сложно/долго для меня.
Я мог бы применить другие контролы типа, на например TApdStatusLight. Тем более что библиотека tpapro и так уже используется в проекте. Но для простого пользователя такой вариант тоже малоприемлем.
← →
Омлет © (2010-05-26 07:11) [3]
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if Reverse then exit;
Reverse := true;
with TCheckBox(Sender) do
Checked := not Checked;
Reverse := false;
end;
← →
Омлет © (2010-05-26 07:40) [4]Вариант с наследником (с тем же, как в [3], результатом):
TMyCheckBox = class (TCheckBox)
protected
procedure WndProc(var Message: TMessage); override;
end;
procedure TMyCheckBox.WndProc(var Message: TMessage);
begin
if Message.Msg = CN_COMMAND then Message.Msg := 0;
inherited WndProc(Message);
end;
← →
Leonid Troyanovsky © (2010-05-26 07:59) [5]
> Германн © (26.05.10 02:11) [2]
> С нуля делать контрол, который внешне похож на TCheckBox,
> но не допускает изменения "галочки" - тоже слишком сложно/долго
> для меня.
http://www.rsdn.ru/forum/delphi/689539.1.aspx
--
Regards, LVT.
← →
12 © (2010-05-26 09:15) [6]или
type TBC = class (TButtonControl);
TBC(cbChiefEngener).ClicksDisabled := True;
cbChiefEngener.Checked := not(cbChiefEngener.Checked);
TBC(cbChiefEngener).ClicksDisabled := False;
← →
GrayFace © (2010-05-26 10:56) [7]TCheckListBox
← →
Плохиш © (2010-05-26 12:44) [8]
> Два бита из 16-ти напрашиваются на дополнительное объяснение,
> которое ну никак не влазит в CaptionTCheckBox"а.
> Что делать?
Добавить TLabel/TText, уж туда-то точно влезет :-)
← →
Германн © (2010-05-26 14:07) [9]Спасибо за варианты!
← →
DVM © (2010-05-26 23:16) [10]
> С нуля делать контрол, который внешне похож на TCheckBox,
> но не допускает изменения "галочки" - тоже слишком сложно/долго
> для меня.
15 минут. Серьезно.
← →
Германн © (2010-05-27 00:48) [11]
> DVM © (26.05.10 23:16) [10]
>
>
> > С нуля делать контрол, который внешне похож на TCheckBox,
>
> > но не допускает изменения "галочки" - тоже слишком сложно/долго
> > для меня.
>
> 15 минут. Серьезно.
>
Ты слишком высокого мнения обо мне. :(
← →
Юрий Зотов © (2010-05-27 02:25) [12]> Германн
DrawFrameControl (рисует неинтерактивный CheckBox) и обычный TLabel (показывает хинт). Действительно 15 минут, причем компонент можно и не делать.
← →
Германн © (2010-05-27 02:41) [13]
> Юрий Зотов © (27.05.10 02:25) [12]
>
> > Германн
>
> DrawFrameControl (рисует неинтерактивный CheckBox) и обычный
> TLabel (показывает хинт). Действительно 15 минут, причем
> компонент можно и не делать.
>
Спасибо. Посмотрю по возможности.
Но и осмотр исходников Дельфи показал, что можно достаточно просто для такого новичка как я создать наследника TCheckBox, который будет невосприимчив к кликам пользователя.
Но пока я занят основной работой над этим проектом.
← →
Германн © (2010-05-27 03:03) [14]
> Юрий Зотов © (27.05.10 02:25) [12]
>
> > Германн
>
> DrawFrameControl (рисует неинтерактивный CheckBox) и обычный
> TLabel (показывает хинт)
Долго не мог понять, но всё таки понял! Ну глупый я, глупый. И очень необразованный!
Как вариант - подходит. Но не совсем. Если указатель на CheckBox, хинта естественно нет.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.061 c