![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компанент кнопки-2 [D7]
mmms © (2005-06-13 17:23:00)Есть компанент от TButton, когда мышь над новой кнопкой, то шрифт кнопки меняется. Проблема в том, что когда компанент "ложишь" на форму, шрифт изначально становится жирным. Можно ли это как то на уровне компанента исправить?
unit MdActiveBtn;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMdActiveButton = class(TButton)
protected
procedure MouseEnter (var Msg: TMessage);
message cm_mouseEnter;
procedure MouseLeave (var Msg: TMessage);
message cm_mouseLeave;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Md', [TMdActiveButton]);
end;
{ TMdActiveButton }
procedure TMdActiveButton.MouseEnter(var Msg: TMessage);
begin
Font.Style := Font.Style + [fsBold];
end;
procedure TMdActiveButton.MouseLeave(var Msg: TMessage);
begin
Font.Style := Font.Style - [fsBold];
end;
end.
Посколько 1й вопрос удалили (не понятно почему), 2й сегодня хотел спросить:
Ещё раз попытаю своё счастье, спросить про написание этого компанента. :)
Пишу (пытаюсь разобраться сам..) в компаненте
constructor TMdActiveButton.Create(AOwner:TComponent);
begin
inherited create(AOwner);
Font.Style := Font.Style - [fsBold];
end;
По идее, должно бы на форму ложиться с не жирным шрифтом, или хотя бы при запуске приложения быть с не жирным шрифтом (хотя при разработке кнопка сама приобретает жирный шрифт)... но все равно, ситуация не исправляется. Конечно можно ввйти из положения, писать в OnCreate формы
MdActiveButton1.Font.Style := Font.Style - [fsBold];
И т.д. по всем кнопкам, но это как то не красиво... Заранее благодарю за любой совет.
mmms (2005-06-13 19:35:00) [1]Defunct, спасибо! Оттестирую, сообщу результат!
Defunct (2005-06-13 18:25:00) [2]
procedure TMdActiveButton.MouseEnter(var Msg: TMessage);
begin
if not (csDesigning in ComponentState) then
Font.Style := Font.Style + [fsBold];
end;
procedure TMdActiveButton.MouseLeave(var Msg: TMessage);
begin
if not (csDesigning in ComponentState) then
Font.Style := Font.Style - [fsBold];
end;
Не проверял, неохота мусорить на палитре ;>