Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Компанент кнопки-2   Найти похожие ветки 

 
mmms   (2005-06-13 17:23) [0]

Есть компанент от 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];
И т.д. по всем кнопкам, но это как то не красиво... Заранее благодарю за любой совет.


 
Defunct ©   (2005-06-13 18:25) [1]

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;


Не проверял, неохота мусорить на палитре ;>


 
mmms   (2005-06-13 19:35) [2]

Defunct, спасибо! Оттестирую, сообщу результат!



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
14-1118812512
Vlad Oshin
2005-06-15 09:15
2005.07.11
Системные телефоны GSX/E-21 можно ли заставить быть "обычными"?


3-1116870467
Yuri Btr
2005-05-23 21:47
2005.07.11
Использование автоинкремента как идентификатора


3-1117530841
ryds
2005-05-31 13:14
2005.07.11
как программно запустить диалоговое окно IBDatabase Editor?


3-1116957765
Flame
2005-05-24 22:02
2005.07.11
работа с dbgrid


1-1119514369
sofa
2005-06-23 12:12
2005.07.11
Как сделать службу