React in TSpeedButton descandant on style changeFlatten a TSpeedButton?Is it possible to remove hideous outline around a TSpeedButton glyph?How to avoid Image position change in TSpeedButton when caption changes?Centering a Glyph in a TSpeedButtonHow to change the color of a FM TSpeedButtonDelphi TSpeedButton Glyph TransparencyImage in TSpeedbutton with TImageListTSpeedButton with TabOrder propertyHow to show gif on TSpeedButtonRemove flickering from TSpeedButton
Registration and login script
Why is so much work done on numerical verification of the Riemann Hypothesis?
Loading commands from file
Pre-modern battle - command it, or fight in it?
What was the exact wording from Ivanhoe of this advice on how to free yourself from slavery?
What percentage of fillings performed today are done with mercury amalgam?
Why does the Sun have different day lengths, but not the gas giants?
Closed-form expression for certain product
Count the occurrence of each unique word in the file
What if a revenant (monster) gains fire resistance?
Why did the EU agree to delay the Brexit deadline?
Melting point of aspirin, contradicting sources
copy and scale one figure (wheel)
What does routing an IP address mean?
Can Legal Documents Be Siged In Non-Standard Pen Colors?
Freedom of speech and where it applies
Is it improper etiquette to ask your opponent what his/her rating is before the game?
2.8 Why are collections grayed out? How can I open them?
Lowest total scrabble score
height map for normal input sharp edges
Strong empirical falsification of quantum mechanics based on vacuum energy density
What should you do when eye contact makes your subordinate uncomfortable?
Electoral considerations aside, what are potential benefits, for the US, of policy changes proposed by the tweet recognizing Golan annexation?
Symbol used to indicate indivisibility
React in TSpeedButton descandant on style change
Flatten a TSpeedButton?Is it possible to remove hideous outline around a TSpeedButton glyph?How to avoid Image position change in TSpeedButton when caption changes?Centering a Glyph in a TSpeedButtonHow to change the color of a FM TSpeedButtonDelphi TSpeedButton Glyph TransparencyImage in TSpeedbutton with TImageListTSpeedButton with TabOrder propertyHow to show gif on TSpeedButtonRemove flickering from TSpeedButton
I made a TSpeedButton
descandant with built-in custom glyphs that are drawn inside instead of being taken from a ready resource.
The glyphs' drawing routine is being called in a constructor, but when styles are switched at run time with TStyleManager.TrySetStyle
glyphs should be redrawn using colors taken from style.
Normally, in TCustomControl
descendant there is a method CreateWnd
, but TSpeedButton
is not a TCustomControl
descendant.
I tried to replace this method functionality with
procedure CMRecreateWnd(var msg: TMessage); message CM_RECREATEWND;
procedure TMyButton.CMRecreateWnd(var msg: TMessage);
begin
_drawGlyphs();
end;
but it has no effect. This procedure is not being fired.
procedure TMyButton._drawGlyphs();
begin
// ......
// Paint glyphs on _bmp
// ......
inherited Layout := TButtonLayout.blGlyphTop;
inherited Glyph := _bmp;
inherited NumGlyphs := 4;
end;
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
_bmp := Vcl.Graphics.TBitmap.Create();
_drawGlyphs();
end;
Currently I've solved the task with Paint
method and a variable for previous color:
TMyButton = class(TSpeedButton)
private
_disColor: TColor;
end;
procedure TMyButton.Paint();
begin
inherited;
if _disColor <> _getThemedColor(ttbButtonDisabled, ecTextColor) then begin
_disColor := _getThemedColor(ttbButtonDisabled, ecTextColor);
_drawGlyphs();
end;
end;
function TMyButton._getThemedColor(detail: TThemedToolBar; elementColor: TElementColor): TColor;
var
Details: TThemedElementDetails;
begin
Details := StyleServices.GetElementDetails(detail);
StyleServices.GetElementColor(Details, elementColor, Result);
end;
delphi graphics controls
add a comment |
I made a TSpeedButton
descandant with built-in custom glyphs that are drawn inside instead of being taken from a ready resource.
The glyphs' drawing routine is being called in a constructor, but when styles are switched at run time with TStyleManager.TrySetStyle
glyphs should be redrawn using colors taken from style.
Normally, in TCustomControl
descendant there is a method CreateWnd
, but TSpeedButton
is not a TCustomControl
descendant.
I tried to replace this method functionality with
procedure CMRecreateWnd(var msg: TMessage); message CM_RECREATEWND;
procedure TMyButton.CMRecreateWnd(var msg: TMessage);
begin
_drawGlyphs();
end;
but it has no effect. This procedure is not being fired.
procedure TMyButton._drawGlyphs();
begin
// ......
// Paint glyphs on _bmp
// ......
inherited Layout := TButtonLayout.blGlyphTop;
inherited Glyph := _bmp;
inherited NumGlyphs := 4;
end;
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
_bmp := Vcl.Graphics.TBitmap.Create();
_drawGlyphs();
end;
Currently I've solved the task with Paint
method and a variable for previous color:
TMyButton = class(TSpeedButton)
private
_disColor: TColor;
end;
procedure TMyButton.Paint();
begin
inherited;
if _disColor <> _getThemedColor(ttbButtonDisabled, ecTextColor) then begin
_disColor := _getThemedColor(ttbButtonDisabled, ecTextColor);
_drawGlyphs();
end;
end;
function TMyButton._getThemedColor(detail: TThemedToolBar; elementColor: TElementColor): TColor;
var
Details: TThemedElementDetails;
begin
Details := StyleServices.GetElementDetails(detail);
StyleServices.GetElementColor(Details, elementColor, Result);
end;
delphi graphics controls
add a comment |
I made a TSpeedButton
descandant with built-in custom glyphs that are drawn inside instead of being taken from a ready resource.
The glyphs' drawing routine is being called in a constructor, but when styles are switched at run time with TStyleManager.TrySetStyle
glyphs should be redrawn using colors taken from style.
Normally, in TCustomControl
descendant there is a method CreateWnd
, but TSpeedButton
is not a TCustomControl
descendant.
I tried to replace this method functionality with
procedure CMRecreateWnd(var msg: TMessage); message CM_RECREATEWND;
procedure TMyButton.CMRecreateWnd(var msg: TMessage);
begin
_drawGlyphs();
end;
but it has no effect. This procedure is not being fired.
procedure TMyButton._drawGlyphs();
begin
// ......
// Paint glyphs on _bmp
// ......
inherited Layout := TButtonLayout.blGlyphTop;
inherited Glyph := _bmp;
inherited NumGlyphs := 4;
end;
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
_bmp := Vcl.Graphics.TBitmap.Create();
_drawGlyphs();
end;
Currently I've solved the task with Paint
method and a variable for previous color:
TMyButton = class(TSpeedButton)
private
_disColor: TColor;
end;
procedure TMyButton.Paint();
begin
inherited;
if _disColor <> _getThemedColor(ttbButtonDisabled, ecTextColor) then begin
_disColor := _getThemedColor(ttbButtonDisabled, ecTextColor);
_drawGlyphs();
end;
end;
function TMyButton._getThemedColor(detail: TThemedToolBar; elementColor: TElementColor): TColor;
var
Details: TThemedElementDetails;
begin
Details := StyleServices.GetElementDetails(detail);
StyleServices.GetElementColor(Details, elementColor, Result);
end;
delphi graphics controls
I made a TSpeedButton
descandant with built-in custom glyphs that are drawn inside instead of being taken from a ready resource.
The glyphs' drawing routine is being called in a constructor, but when styles are switched at run time with TStyleManager.TrySetStyle
glyphs should be redrawn using colors taken from style.
Normally, in TCustomControl
descendant there is a method CreateWnd
, but TSpeedButton
is not a TCustomControl
descendant.
I tried to replace this method functionality with
procedure CMRecreateWnd(var msg: TMessage); message CM_RECREATEWND;
procedure TMyButton.CMRecreateWnd(var msg: TMessage);
begin
_drawGlyphs();
end;
but it has no effect. This procedure is not being fired.
procedure TMyButton._drawGlyphs();
begin
// ......
// Paint glyphs on _bmp
// ......
inherited Layout := TButtonLayout.blGlyphTop;
inherited Glyph := _bmp;
inherited NumGlyphs := 4;
end;
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
_bmp := Vcl.Graphics.TBitmap.Create();
_drawGlyphs();
end;
Currently I've solved the task with Paint
method and a variable for previous color:
TMyButton = class(TSpeedButton)
private
_disColor: TColor;
end;
procedure TMyButton.Paint();
begin
inherited;
if _disColor <> _getThemedColor(ttbButtonDisabled, ecTextColor) then begin
_disColor := _getThemedColor(ttbButtonDisabled, ecTextColor);
_drawGlyphs();
end;
end;
function TMyButton._getThemedColor(detail: TThemedToolBar; elementColor: TElementColor): TColor;
var
Details: TThemedElementDetails;
begin
Details := StyleServices.GetElementDetails(detail);
StyleServices.GetElementColor(Details, elementColor, Result);
end;
delphi graphics controls
delphi graphics controls
edited 2 days ago
Paul
asked 2 days ago
PaulPaul
10.6k2993185
10.6k2993185
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55281212%2freact-in-tspeedbutton-descandant-on-style-change%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55281212%2freact-in-tspeedbutton-descandant-on-style-change%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown