Форум: "Компоненты";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
ВнизКомпонент кнопки со стилем 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c