Forum Replies Created
-
AuthorPosts
-
SzakiLaciParticipant'Support' wrote:
I think I understand a problem now.
I'll plan to make a new component later. This component will take icons from AlphaImageList and change size to any other on the fly.
This component will be inherited from standard ImageList and may be used as ImageList.
Hi,
I have the same problem, since I've started to use nice, big, scalable (non resized) icons with TsAlphaImageList.
I was thinking a lot about a solution, and realized, the easiest way would be to use a “Virtual Imagelist”
Solution 1.:
making a new component called TsVirtualImageList, having no images itself, but pointing to an other TsAlphaImageList.
Solution 2.:
altering the current TsAlphaImageList component by adding a:
property UseVirtually: TsAlphaImageList;
The first case is quicker, the 2th case is more elegant, but following things had to be done:
– by selecting UseVirtually >> checking if TsAlphaImageList is already using UseVirtually property ( nil) to prevent circular reference.
– rewriting procedures (maybe not all, just the Create and Destroy)
– checking if the original TsAlphaImageList is still Assigned() before making any changes trying to read from it.
Solution 3.:
Rewriting all components (like TsBitButton, …) to set unique picture drawing size and property (like: Origin=orUpperCenter; Width=16; Height=24, AutoScaled=False, Proportional=False …)
SzakiLaciParticipantYes, good idea to try ! When I install next release, will do it 😉
SzakiLaciParticipantWhat do you mean by “programs with manifest” ?
The above code works perfectly under any kind of windows.
SzakiLaciParticipantTemporarily I've made following changes at
Code:unit sBitBtn;
…
type
TsBitBtn = class(TTntBitBtn)
private
…
FFocusedColor: TColor;
…
published
property FocusedColor : TColor read FFocusedColor write FFocusedColor default clBtnFace;Code:constructor TsBitBtn.Create(AOwner: TComponent);
begin
…
FFocusedColor := clBtnFace;Code:procedure TsBitBtn.StdDrawItem(const DrawItemStruct: TDrawItemStruct);
…
if ThemeServices.ThemesEnabled then begin
…
else
…
if IsFocused or IsDefault then begin
Canvas.Pen.Color := clWindowFrame;
Canvas.Pen.Width := 1;
Canvas.Brush.Style := bsClear;
Canvas.Brush.Color := FocusedColor; // << THIS
Canvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom);
…
if IsDown then begin
Canvas.Pen.Color := clBtnShadow;
Canvas.Pen.Width := 1;
Canvas.Brush.Color := FocusedColor; //clBtnFace; << THIS CHANGED
Canvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom);
InflateRect(R, -1, -1);
end
else DrawFrameControl(DrawItemStruct.hDC, R, DFC_BUTTON, Flags);
…
if IsFocused and IsDefault then begin
Canvas.Pen.Color := clWindowFrame;
Canvas.Brush.Color := FocusedColor; //clBtnFace;
InflateRect(R, -2, -2); // << THIS
Canvas.Rectangle(R); // << THIS
R := ClientRect;
InflateRect(R, -4, -4);
DrawFocusRect(Canvas.Handle, R);
end;SzakiLaciParticipant'Hamilton' wrote:…how you managed to color a TBitBtn…
I did NOT. That's why I'm asking it here. I did it with a normal TButton.
And yes, I had to “rewrite” the TButton component by Copy-Paste 😀
Code:TButton = class(TButton)
…
published
property Color;
end;procedure TsButton.DrawButton(Rect: TRect; State: UINT);
…
FCanvas.Brush.Color := Color; //instead of clBtnFaceBut I don't wanna mess up with AlphaControls, since
– they are a bit more complicated,
– and every time a new version is out, I had to make those changes again and again,
– or if I'm overriding it the same way I did with normal TButton > I would loose the improvements with new versions.
That' why I'm asking here, maybe there's a simple solution form me.
[Of course it would be the easies and most logic way, if Serge would put those few lines into the component itself,
but I can not force him to create a “FocusedColor” property.] :a8:
SzakiLaciParticipantThanks, it SEEMS it is turning off, what means visually it's not there, BUT if globally
sSkinManager1.ExtendedBorders = True
then it's effecting somehow the OpenGL repaint on THAT form too.
And The whole program is running 5-10x slower.
(If turned off globally, everything works fine)
Of course it's a bit pity, because that feature:
– looks cool
– helps “basic” users to see, witch window is at the foreground.
I know, you can not do too much about that, I'm just writing down,
if I want to use OpenGL somewhere in my app. ,
I'll have to keep that feature turned off globally.
So there is no solution for this.
SzakiLaciParticipant'Support' wrote:I have prepared a small demo, look it please :
WOW ! You are amazing :-)))))))
Exactly what I've asked and even more !
This should go to the FAQ too, because it's VERY informative and opens ALL kind of new possibilities.
You've just convinced me to buy the commercial version. (I just need some more money… Hungarian financial crisis is still making my life impossible, had my first PAYING customer in 6 month ;( But I'm sure this new look will turn my luck !)
SzakiLaciParticipant… any ideas how to do that ? Thanks !
SzakiLaciParticipant'Support' wrote:Thank you very much, I'll research it soon.
Dear Support,
is there any solution for that?
(I've just began to experiment with AlphaSkins yesterday, to upgrade my program's look.)
I've downloaded latest version (7.63) and it seems to have that problem with ComboBox scaling.
I have just searched this forum, and found this old topic…
I really need to know, are there any nearby plans or schedule to fix this problem with ComboBoxes?
To reproduce the problem:
– put this line to LiteDemo.exe's OnFormShow procedure:
…
ScaleBy(229,100);
end;
… also it would be nice, if the “X” at checkboxes would get sized if ScaleBy is used (or font gets bigger).
On today's 20″ FULL HD touch screens those tiny signs need to be bigger to see them.
That's all, I've found yet, but you have to know, at first sight these components
– seem to do their job well,
– they look very cool,
– the AlphaConvert.exe worked 90% fine too, needed only 1 hour to fix some problems on 56 .pas files
– and it's great I can turn it off and use my program at the old way, until I'm sure fixed all problems with AlphaS.
-> A BIG congratulation for your work !!!
Thank you.
-
AuthorPosts