Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.07 c
15-1275036370
Anatoly Podgoretsky
2010-05-28 12:46
2010.08.27
С Днем пограничника


15-1266561272
Kerk
2010-02-19 09:34
2010.08.27
Глобальное потепление


4-1237551600
mreg
2009-03-20 15:20
2010.08.27
Как отловить вызов WinApi функции?


2-1270706035
novai
2010-04-08 09:53
2010.08.27
Использование Format


2-1266306224
Den
2010-02-16 10:43
2010.08.27
Как прочитать логи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский