-
{RASkov} © (01.04.08 17:17) [40]...по окончанию процесса кнопка становится доступной...
-
> DimaBr
Правда не понял зачем эти извращения с курсором. Вроде и так ([24]) состояния правильно работают. -
Сделал так вывод кэпшена:
ControlMiddle.X := Width div 2;
ControlMiddle.Y := Height div 2;
TextMiddle.X := Canvas.TextWidth(Caption) div 2;
TextMiddle.Y := Canvas.TextHeight(Caption) div 2;
Canvas.Brush.Style := bsClear;
if FButtonState = mibsDisabled then
begin
Canvas.Font.Color := clBtnHighlight;
Canvas.TextOut((ControlMiddle.X — TextMiddle.X) + CaptionXOffset + 1,
(ControlMiddle.Y — TextMiddle.Y) + CaptionYOffset + 1, Caption);
Canvas.Font.Color := clBtnShadow;
Canvas.TextOut((ControlMiddle.X — TextMiddle.X) + CaptionXOffset,
(ControlMiddle.Y — TextMiddle.Y) + CaptionYOffset, Caption);
end
else
Canvas.TextOut((ControlMiddle.X — TextMiddle.X) + CaptionXOffset,
(ControlMiddle.Y — TextMiddle.Y) + CaptionYOffset, Caption);
Повиду все нормально работает. -
Игорь Шевченко © (01.04.08 17:31) [43]{RASkov} © (01.04.08 17:17) [39]
Я бы для подобных извратов все равно сделал бы по образу и подобию TSpeedButton.UpdateTracking -
Хотелось бы, чтобы если картинка не задана, то рисовалась бы обычная
Изменил код так:TempPicture := GetImage(FButtonState);
if not Assigned(TempPicture.Graphic) or (TempPicture.Graphic.Empty) then
TempPicture := GetImage(mibsNormal);
Canvas.StretchDraw(ClientRect, TempPicture.Graphic);
Но почему-то все равно ничего не рисуется -
Удалено модератором
Примечание: Флудить завязываем -
А и еще. А как реагировать на изменение Caption? Написать сеттер&
-
И все-таки все это дело мерцает :(. Как быть?
-
Игорь Шевченко © (01.04.08 19:52) [48]
> А как реагировать на изменение Caption? Написать сеттер&
Обрабатывать CM_TEXTCHANGED
Ты когда-нибудь откроешь исходники VCL или так всю жизнь и будешь ключи подавать ? Тогда тебе в "Начинающие", навечно -
> Обрабатывать CM_TEXTCHANGED
Я сомневаюсь в себе :). Получилось.
А с мельканием что делать? -
DimaBr © (02.04.08 11:10) [50]С мельканием - воевать
ControlStyle := ControlStyle + [ csOpaque ] ; -
Игорь Шевченко © (02.04.08 11:18) [51]
> А с мельканием что делать?
Скачай уже готовый компонент и не парься -
> DimaBr © (01.04.08 11:33) [8]
> Код DVM - я бы сказал не очень.
Это не мой код, я там написал же, что код не очень. Просто под руку попался. -
> ControlStyle := ControlStyle + [ csOpaque ] ;
Угу. Помогло.
Игорь, Dima, благодарю. Все что хотель все сделал + про index узнал. :) -
DimaBr © (02.04.08 12:06) [54]
> Игорь Шевченко © (02.04.08 11:18) [51]
> Скачай уже готовый компонент и не парься
В принципе - не верно.
"Лучше один раз увидеть, чем сто раз услышать" -
Игорь Шевченко © (02.04.08 12:30) [55]DimaBr © (02.04.08 12:06) [54]
Раз пошел оффтопик - во всех нюансах компонентостроения лучше разбираться на действующих примерах, так как нюансы, они общие для многих компонентов. А не понимая этих нюансов и задавая на каждый чих вопрос в форуме - так всю жизнь и будешь ключи подавать и по форумам клянчить. -
> [55] Игорь Шевченко © (02.04.08 12:30)
К сожалению к компонентам скачанным с нета у меня нет доверия. А незная нормальных решений я не могу понять хорошо написано или нет
ЗЫ
До задания вопроса я скачал 3 штуки и посмотрел. Смысл везде один и тот же. -
Игорь Шевченко © (02.04.08 12:37) [57]Kolan © (02.04.08 12:33) [56]
Какая разница "хорошо написано" или нет - главное, чтобы работало, как надо.