Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как добавить BS_FLAT в BitBtn и GroupBox, CheckBox. [D7, Win95/98, WinXP]


Нулевой ©   (2006-02-07 14:56:00) 

Для Button получилось просто:
procedure TFltButton.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
if FFlat then
  Params.Style := Params.Style or BS_PUSHBUTTON or BS_FLAT
end;

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

procedure Register;
begin
 RegisterComponents('Samples', [TFltButton]);
end;

Для остальных ни как не могу разобраться, что перехватывать...
Спасибо.


Нулевой   (2006-02-07 16:46:00) [1]

Хотя получил то что хотел, но как-то страно получил...


Нулевой   (2006-02-07 16:44:00) [2]

Крыша едит...
Делаю checkbox получаю groupbox, что за фигня???!!!
type
 TFltCheckBox = class(TCheckBox)
 private
   { Private declarations }
 protected
   { Protected declarations }
   procedure CreateParams(var Params: TCreateParams); override;
 public
   { Public declarations }
 published
   { Published declarations }
 end;

procedure Register;

implementation

procedure TFltCheckBox.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.Style := Params.Style or BS_CHECKBOX or BS_FLAT
end;

procedure Register;
begin
 RegisterComponents('Samples', [TFltCheckBox]);
end;
Что не так делаю?


Юрий Зотов   (2006-02-07 16:32:00) [3]

> Нулевой ©   (07.02.06 15:59) [2]

1. Что такое "класс окна" и "стиль окна"?
2. Как расшифровывается приставка BS?
3. К чему эта приставка относится и к чему она НЕ относится?


Нулевой   (2006-02-07 15:59:00) [4]

В данном коде работает:
 Btns[4] := CreateWindowEx(0, 'button', 'BS_GROUPBOX', BS_GROUPBOX or BS_FLAT or
   ws_child or ws_visible, 10, 130, 150, 35, wndMain, 0, hinstance, nil);


Юрий Зотов   (2006-02-07 15:39:00) [5]

А Вы уверены, что у остальных контролов вообще существует плоский стиль? Посмотрите в MSDN, есть ли он.

Если есть, то делаете точно так же. А если нет, то придется рисовать контрол самому.


Наверх

Титульная страница Поиск, карта сайта Написать письмо