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

Вниз

Компонент кнопки со стилем BS_FLAT   Найти похожие ветки 

 
Sp_pnz ©   (2006-01-19 03:28) [0]

Здравствуйте, такой вопрос, хотелось бы создать копонент кнопки с о стилем BS_FLAT ,  в какой стороне копать? как выбрать родителя?


 
Юрий Зотов ©   (2006-01-19 09:26) [1]

Кнопку и выбрать. Добавить булево поле FFlat, свойство Flat, метод SetFlat и перекрыть метод CreateParams. Контрольное время - 5 минут. :о)


 
Sp_pnz ©   (2006-01-20 14:35) [2]

Всё так просто?:)


 
olegz77   (2006-01-20 15:16) [3]

а как обновлять свойство Flat??? Как я понимаю так:  в методе SetFlat надо, наверное, с помощью Get/SetWindowLong установить (или сбросить) флаг BS_FLAT и вызвать RecreateWnd. Так или нет?


 
olegz77   (2006-01-20 15:23) [4]

не. Все намного проще. Я уже сделал.
1. В CreateParams:
inherited CreateParams(Params);
if FFlat then
 Params.Style := Params.Style or BS_FLAT;

2. В SetFlat:

if FFlat <> Value then
begin
 FFlat := Value;
 RecreateWnd;
end;


 
Юрий Зотов ©   (2006-01-20 15:49) [5]


type
 TFlatButton = class(TButton)
 private
   FFlat: boolean;
   procedure SetFlat(const Value: boolean);
 protected
   procedure CreateParams(Params: TCreateParams); override;
 published
  property Flat: boolean read FFlat write SetFlat default False;
 end;

procedure TFlatButton.CreateParams(Params: TCreateParams);
begin
 inherited;
 if FFlat then
   Params.Style := Params.Style or BS_FLAT
end;

procedure TFlatButton.SetFlat(const Value: boolean);
begin
 if FFlat <> Value then
 begin
   FFlat := Value;
   RecreateWnd;
 end
end;

Это полный код. Пяти минут даже много.
:o)


 
Sp_pnz ©   (2006-01-20 16:26) [6]

Спасибо, получилось, а вот встречный вопрос, а можно ли то же самое проделать, но уже с Родителем  - TbitBtn ?


 
Sp_pnz ©   (2006-01-20 16:40) [7]

У меня не получилось...



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

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

Наверх




Память: 0.48 MB
Время: 0.064 c
4-1145909672
Volf_555
2006-04-25 00:14
2006.08.20
Как отправить программе комбинацию клавиш?!


15-1153500115
Rgv54
2006-07-21 20:41
2006.08.20
Проблема с WordXP


15-1153734381
PSPF2003
2006-07-24 13:46
2006.08.20
Ошибка в 17 строке


15-1153718947
Ega23
2006-07-24 09:29
2006.08.20
С Днём рождения! 22 июля


2-1154538692
Tivaya
2006-08-02 21:11
2006.08.20
Поток в потоке