Forum Replies Created
-
AuthorPosts
-
HeDiBoParticipant'Support' wrote:
The text is drawn better under Win 10, but it looks same under Windows 7.
I'm searching the best solution now.
Stephane Senecal, I need to find why it was crashed on your side. This error is repeatable still?
Did you change the implementation? Because with version 4.17 I do not see any difference.
HeDiBoParticipant'Support' wrote:Thank you for the demo, I will check it today.
It's solved in 14.17
HeDiBoParticipant'Stephane wrote:I hope it's a false positive.
It is: my virus checker does not find a problem. I had a false positive with WIndows Defender before. That virus checker sucks.
HeDiBoParticipant'Support' wrote:Look my test of the GdipDrawString procedure.
Sources I can send by PM, if needed.
The point of this exercise is: do the texts look OK when drawn in an angle.
Your test shows that they do look fine on my system. Having the same test with GDI would give the definitive answer.
PS. I do not have the reported problem. On my Windows 10 Pro system it works fine.
HeDiBoParticipant'Stephane wrote:From what I tried, it seemed to output better result with DrawString from GDI+.
GDI+ does not use the same algorithm than GDI. Another weird thing from Microsoft.
More over, there is also DirectWrite / Direct2D, but those function use the GPU. I think it would be a little bit overkill.
In GDI+ text rendering is done completely in software. That makes it both slower but also different from GDI.
Thanks Stephane for your illuminating input
HeDiBoParticipant'Support' wrote:I will try to make it soon, but I'm not sure that GDI+ string drawing will work better than GDI with ClearType.
I will check it.
To clarify: the letter type (Trebuchet MS) and the quality of font (ClearType) cannot be the cause.
HeDiBoParticipant'Support' wrote:This text is rendered by Windows text API procedures.
Try to set the Quality of Font property to the ClearType, maybe it helps.
Stephane Senecal made an interesting remark.
Could you comment on that?
HeDiBoParticipant'Support' wrote:Thank you for the demo, I will check it soon.
Apparently you changed things. But I'm not happy. The texts now seem distorted and have uneven thickness:
[attachment=9146:LabelFXDistorted.jpg]
Look for example at the two consecutive el's in Instellingen.
The cause for these problems is lack of anti-aliassing.
HeDiBoParticipant'Support' wrote:Hello!
I see the error, this error will be fixed in the new release on this week.
In 14.15 all's fine now
February 5, 2019 at 10:10 am in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #59029HeDiBoParticipant'Support' wrote:Did you see this new sSkinManager.pas already?
Yes. The new sSkinManager 2.0 had the problem, that dropping it on a form, the SkinName list was empty.
Now that I restarted the IDE, that problem has gone away too.
All's solved
HeDiBoParticipant'Support' wrote:I will check why it doesn't work in the TsDBText and I hope to fix it very soon.
The fix you sent me only made things worse.
Now, if I activate the bound label, I get an immediate exception in the IDE.
If I run the project, I get an exception also. This is the stack trace:
Code:sCommonData.TsBoundLabel.UpdateVisibility
sDBText.TsDBText.Loaded
System.Classes.NotifyGlobalLoading
System.Classes.InitInheritedComponent($7D4A6D70,TFrame)
Vcl.Forms.TCustomFrame.Create(???)
frPoule.TfrPoolMembers.Create($7D64BAB0)
Competition.TsTabSheet.GetTabPoolFrame
Competition.TfrCompetition.pcCompPagesChange($7DE60290)
Competition.TfrCompetition.VirginStart
Competition.TfrCompetition.StartFrame((5425, 1, 1, 0, 1, 0, (), 1, 0, (), 0, 0, ()))
Vcl.Controls.TControl.WndProc((5425, 1, 1, 0, 1, 0, (), 1, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.WndProc((5425, 1, 1, 0, 1, 0, (), 1, 0, (), 0, 0, ()))
sFrameAdapter.TsFrameAdapter.NewWndProc((5425, 1, 1, 0, 1, 0, (), 1, 0, (), 0, 0, ()))
acSBUtils.TacMainWnd.CallPrevWndProc(3804454,5425,1,1)
acSBUtils.TacScrollWnd.acWndProc((5425, 1, 1, 0, 1, 0, (), 1, 0, (), 0, 0, ()))
Vcl.Controls.TControl.Perform(???,???,1)
WIP4Main.TWIP4MainForm.pcMainTabsChange($7EBDA540)
WIP4Main.TWIP4MainForm.Wip_Start_Prog((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TControl.WndProc((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.WndProc((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Forms.TCustomForm.WndProc((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.NewWndProc((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
acFloatCtrls.TacFloatComponent.NewWndProc((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
acSBUtils.TacMainWnd.CallPrevWndProc(2231582,5424,0,0)
acSBUtils.TacScrollWnd.acWndProc((5424, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(2231582,5424,0,0)
:76fabf1b ; C:WINDOWSSysWOW64user32.dll
:76fa83ea ; C:WINDOWSSysWOW64user32.dll
:76fa7f8a ; C:WINDOWSSysWOW64user32.dll
:76faa6d9 ; C:WINDOWSSysWOW64user32.dll
:774ecd3d ntdll.KiUserCallbackDispatcher + 0x4d
:76f8bc57 ; C:WINDOWSSysWOW64user32.dll
WIP4Main.TWIP4MainForm.FormPaint($7EBDAF20)
sSkinProvider.TsSkinProvider.PaintAll
sSkinProvider.TsSkinProvider.AC_SMAlphaCmd_Skinned((41216, 1507328, 0, 0, 0, 23, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.NewWndProc((41216, 1507328, 0, 0, 0, 23, (), 0, 0, (), 0, 0, ()))
acFloatCtrls.TacFloatComponent.NewWndProc((41216, 1507328, 0, 0, 0, 23, (), 0, 0, (), 0, 0, ()))
acSBUtils.TacMainWnd.CallPrevWndProc(2231582,41216,1507328,0)
acSBUtils.TacScrollWnd.acWndProc((41216, 1507328, 0, 0, 0, 23, (), 0, 0, (), 0, 0, ()))
sVclUtils.TrySendMessage(2231582,41216,1507328,0)
sVclUtils.SendAMessage(2231582,23,0)
acSBUtils.ac_NCDraw($7FE17990,2231582,-1,0)
acSBUtils.TacScrollWnd.acWndProc((133, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(2231582,133,1,0)
:76fabf1b ; C:WINDOWSSysWOW64user32.dll
:76fa83ea ; C:WINDOWSSysWOW64user32.dll
:76fa7f8a ; C:WINDOWSSysWOW64user32.dll
:76faa6d9 ; C:WINDOWSSysWOW64user32.dll
:774ecd3d ntdll.KiUserCallbackDispatcher + 0x4d
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(2231582,133,1,0)
:76fabf1b ; C:WINDOWSSysWOW64user32.dll
:76fa83ea ; C:WINDOWSSysWOW64user32.dll
:76fa7f8a ; C:WINDOWSSysWOW64user32.dll
:76faa6d9 ; C:WINDOWSSysWOW64user32.dll
:774ecd3d ntdll.KiUserCallbackDispatcher + 0x4d
Vcl.Controls.TControl.WndProc(???)
Vcl.Controls.TWinControl.WndProc((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Forms.TCustomForm.WndProc((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.AC_CMShowingChanged((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.NewWndProc((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
acFloatCtrls.TacFloatComponent.NewWndProc((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TControl.Perform(???,???,0)
Vcl.Controls.TWinControl.UpdateShowing
Vcl.Controls.TWinControl.UpdateControlState
Vcl.Controls.TWinControl.CMVisibleChanged(???)
Vcl.Controls.TControl.WndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.WndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Forms.TCustomForm.WndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.AC_WMVisibleChanged((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
sSkinProvider.TsSkinProvider.NewWndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
acFloatCtrls.TacFloatComponent.NewWndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TControl.Perform(???,???,0)
Vcl.Controls.TControl.SetVisible(True)
Vcl.Forms.TCustomForm.SetVisible(True)
Vcl.Forms.TApplication.Run
WIP4.WIP4
:76308484 KERNEL32.BaseThreadInitThunk + 0x24
:774e3ab8 ntdll.RtlAreBitsSet + 0x88
:774e3a88 ntdll.RtlAreBitsSet + 0x58The TsDSBText is placed on a TFrame, which is created dynamically (the stack trace line: “frPoule.TfrPoolMembers.Create”).
Not much happens thereafter, the exception occurs in the Loaded procedure of the TsDBText.
The exception is in sCommonData, in this line:
Code:if (FCommonData.SkinManager = nil) or (FCommonData.SkinManager.Options.ScaleMode in [smOldMode, smVCL]) then
FTheLabel.Font.Height := ScaleInt(FTheLabel.Font.Height, FCommonData);It appears FCommonData is nil in this case.
February 2, 2019 at 10:39 am in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #59022HeDiBoParticipant'Support' wrote:Thank you for the demo.
I have sent the patched sSkinManager.pas by PM, try it please.
Thank you. It seems to have done something. I see the internal skins in the SkinName drop down list.
However if I drop a brand new TsSkinManager on a form and click the SkinName drop down list, it is completely empty . If I add one internal skin, all other skins appear also .
If I close the project and reopen it again, the skin names reappear
So, only if I drop a fresh skin manager on a form, no skins are selectable. After that all's fine.
February 1, 2019 at 11:42 am in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #59016HeDiBoParticipant'Support' wrote:Maybe they are not saved in the Dfm file? Can you show an example project with the issue, please?
This is the same project again.
Notice that the SkinName is Calcium(intern). I typed that in, to get at the internal skin. I could not select it from the list.
Pull down the list of skinnames: none of the internal skins are listed.
[attachment=9130:acIntHidden.zip]
If you do not have any internal skins in the dfm, when the project was shipped, SkinManager contained 5 internal skins. You must be able to verify this by viewing the ACIH.dfm file outside of the IDE.
Then I got a brainwave and renamed one of the skins form BlueIce (intern) to “Blauw IJs”. Subsequently I refreshed the internal skins: and now they were listed in the SkinName list.
This does not mean the problem is solved, it only means it's a complicated problem to reproduce.
I did the same thing in another project: only renaming an internal skin brought back all internal skins in the SkinName list.
HeDiBoParticipant'Support' wrote:Hello
I think, this issue will be solved in the nearest release.
In AC 14.14 things have gone so bad, that I get exceptions in the AC bpl when I start the IDE.
This is the stack trace:
Code:[1D2FB755]{acntDelphiXE4_R.bpl} sCommonData.TsBoundLabel.HandleOwnerMsg + $C1
[5005EE12]{rtl180.bpl } System.@IsClass (Line 15664, “System.pas” + 1) + $8
[1D1C2378]{acntDelphiXE4_R.bpl} sLabel.TsCustomLabel.WndProc + $100
[19B69F6A]{AlphaDBDelphiXE4.bpl} sDBText.TsDBText.WndProc (Line 200, “sDBText.pas” + 6) + $F
[50452734]{vcl180.bpl } Vcl.Controls.TControl.Perform (Line 7002, “Vcl.Controls.pas” + 10) + $8
[504505C5]{vcl180.bpl } Vcl.Controls.TControl.SetBounds (Line 5636, “Vcl.Controls.pas” + 13) + $B
[5047290C]{vcl180.bpl } Vcl.StdCtrls.TCustomLabel.AdjustBounds (Line 2353, “Vcl.StdCtrls.pas” + 18) + $15
[50472A94]{vcl180.bpl } Vcl.StdCtrls.TCustomLabel.CMTextChanged (Line 2458, “Vcl.StdCtrls.pas” + 2) + $6
[50452AF9]{vcl180.bpl } Vcl.Controls.TControl.WndProc (Line 7224, “Vcl.Controls.pas” + 91) + $6
[50170090]{rtl180.bpl } System.Classes.StdWndProc (Line 16860, “System.Classes.pas” + 8) + $0
[504576C6]{vcl180.bpl } Vcl.Controls.TWinControl.DefaultHandler (Line 10080, “Vcl.Controls.pas” + 30) + $19
[1D1C2378]{acntDelphiXE4_R.bpl} sLabel.TsCustomLabel.WndProc + $100
[19B69F6A]{AlphaDBDelphiXE4.bpl} sDBText.TsDBText.WndProc (Line 200, “sDBText.pas” + 6) + $F
[19B69F4A]{AlphaDBDelphiXE4.bpl} sDBText.TsDBText.WndProc (Line 198, “sDBText.pas” + 4) + $6
[50452734]{vcl180.bpl } Vcl.Controls.TControl.Perform (Line 7002, “Vcl.Controls.pas” + 10) + $8
[50450609]{vcl180.bpl } Vcl.Controls.TControl.SetTextBuf (Line 5649, “Vcl.Controls.pas” + 2) + $B
[5045125A]{vcl180.bpl } Vcl.Controls.TControl.SetText (Line 6131, “Vcl.Controls.pas” + 8) + $B
[501274B3]{rtl180.bpl } System.TypInfo.{System.TypInfo}TPropSet.SetProc (Line 2238, “System.TypInfo.pas” + 8) + $5
[50125D0D]{rtl180.bpl } System.TypInfo.SetStrProp (Line 3107, “System.TypInfo.pas” + 8) + $A
[504575B5]{vcl180.bpl } Vcl.Controls.TWinControl.WndProc (Line 10039, “Vcl.Controls.pas” + 153) + $6
[212B3C27]{vclide180.bpl} IDEInspListBox.TPropInspEdit.WndProc (Line 361, “IDEInspListBox.pas” + 7) + $4
[50452734]{vcl180.bpl } Vcl.Controls.TControl.Perform (Line 7002, “Vcl.Controls.pas” + 10) + $8
[5045274C]{vcl180.bpl } Vcl.Controls.TControl.Perform (Line 7072, “Vcl.Controls.pas” + 1) + $4
[2111D893]{designide180.bpl} DesignEditors.TPropertyEditor.SetStrValue (Line 860, “DesignEditors.pas” + 4) + $7
[2111EDC8]{designide180.bpl} DesignEditors.TStringProperty.SetValue (Line 1541, “DesignEditors.pas” + 0) + $0
[212B4BFB]{vclide180.bpl} IDEInspListBox.TInspListBox.SetPropValue (Line 782, “IDEInspListBox.pas” + 38) + $19
[212B5992]{vclide180.bpl} IDEInspListBox.TInspListBox.EditKeyPress (Line 1116, “IDEInspListBox.pas” + 25) + $7
[5045922B]{vcl180.bpl } Vcl.Controls.TWinControl.KeyPress (Line 11121, “Vcl.Controls.pas” + 1) + $16
[504734DD]{vcl180.bpl } Vcl.StdCtrls.TCustomEdit.KeyPress (Line 2876, “Vcl.StdCtrls.pas” + 1) + $4
[5045927E]{vcl180.bpl } Vcl.Controls.TWinControl.DoKeyPress (Line 11137, “Vcl.Controls.pas” + 9) + $8
[504592A6]{vcl180.bpl } Vcl.Controls.TWinControl.WMChar (Line 11176, “Vcl.Controls.pas” + 6) + $4
[50452AF9]{vcl180.bpl } Vcl.Controls.TControl.WndProc (Line 7224, “Vcl.Controls.pas” + 91) + $6
[5005F618]{rtl180.bpl } System.TMonitor.Enter (Line 16808, “System.pas” + 4) + $2
[5042F4BE]{vcl180.bpl } Vcl.Graphics.TCustomCanvas.TryLock (Line 3654, “Vcl.Graphics.pas” + 9) + $5
[5005F4C4]{rtl180.bpl } System.TMonitor.CheckOwningThread (Line 16730, “System.pas” + 2) + $0
[5005F79A]{rtl180.bpl } System.TMonitor.Exit (Line 16911, “System.pas” + 1) + $2
[5005F7EB]{rtl180.bpl } System.TMonitor.Exit (Line 16933, “System.pas” + 2) + $7
[50434B53]{vcl180.bpl } Vcl.Graphics.FreeMemoryContexts (Line 7047, “Vcl.Graphics.pas” + 12) + $8
[50456C0D]{vcl180.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9754, “Vcl.Controls.pas” + 6) + $0
[50170090]{rtl180.bpl } System.Classes.StdWndProc (Line 16860, “System.Classes.pas” + 8) + $0
[504575B5]{vcl180.bpl } Vcl.Controls.TWinControl.WndProc (Line 10039, “Vcl.Controls.pas” + 153) + $6
[212B3C27]{vclide180.bpl} IDEInspListBox.TPropInspEdit.WndProc (Line 361, “IDEInspListBox.pas” + 7) + $4
[50456BF8]{vcl180.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9751, “Vcl.Controls.pas” + 3) + $6
[50170090]{rtl180.bpl } System.Classes.StdWndProc (Line 16860, “System.Classes.pas” + 8) + $0
[50580E87]{vcl180.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10288, “Vcl.Forms.pas” + 23) + $1
[50580ECA]{vcl180.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10318, “Vcl.Forms.pas” + 1) + $4
[50581205]{vcl180.bpl } Vcl.Forms.TApplication.Run (Line 10456, “Vcl.Forms.pas” + 26) + $3At run time the bound label does not show at all anymore.
It's a mess.
PS. The test project in this report goes OK now. The problem I'm referring to now is a bound label attached to a TsDBText field.
January 30, 2019 at 3:50 pm in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #59002HeDiBoParticipantThings got much worse in 14.14.
Internal skins are not listed at all in the SkinNames list.
January 24, 2019 at 9:51 am in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #58961HeDiBoParticipant'Support' wrote:So, skins are saved in the Dfm-file, but not shown after adding immediately. Right?
That would be my preliminary conclusion.
January 23, 2019 at 10:31 am in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #58950HeDiBoParticipant'Support' wrote:I have some troubles with repeating of this problem.
You are choosing a skin, clicking the “Exit” button, opening the dialog again and see that list of skins was not changed?
- After adding a skin and pressing Exit, the skin does not show in the SkinName list property.[*]Clicking the InternalSkins property does show the skin name as if it is added.[*]After termination of the IDE (and saving the changes as requested) and restart the Internal skins are listed in the SkinName list property.[*]After adding a skin and pressing Exit. followed immediately by closing the IDE the IDE asks to save the project (as it should) and upon restart the SkinName list property is OK.[*]After adding a skin and pressing Exit, I can manually enter in the SkinName list property the internal skin name (eg “Flatline (Internal)”), although it is not in the list.
So, only the case where a skin is added to the internal skins list, the skin cannot be selected from the SkinName list property, unless the IDE is closed and reopened.
January 13, 2019 at 1:31 pm in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #58922HeDiBoParticipant'Support' wrote:Is this correct demo? TsSkinManager hasn't any internal skins there.
It was the correct demo.
Only the SkinManager's info in the dfm file was not updated.
This is an old bug: changing the internal skins in a skin manager is not enough to make it update the dfm file. That's the reason why I did not have an internal skin for BlueIce: it was not saved as internal skin. Now, by re-opening the project both internal skins are present in the pull down list.
So, you'll have to look for another bug: altered property InternalSkins does not let the dfm file be saved!!
By the way, this bug is much more important: http://www.alphaskins.com/forum/index.php?showtopic=10215&st=0&p=53226&fromsearch=1&#entry53226
January 11, 2019 at 4:03 pm in reply to: AC 14.13 SkinManager.SkinName dows not show (internal) #58904HeDiBoParticipant'Support' wrote:Is it possible to make a demo with such behavior?
In this project both Bejing and BlueIce are internal skins:
[attachment=9099:acIntHidden.zip]
This is what I see when I pull down SkinNames on the skin manager:
[attachment=9100:Intern Missing.jpg]
Only Bejing shows “(intern)”. BlueIce (intern) is missing.
HeDiBoParticipant'Support' wrote:Thank you for the demo.The sLabelFX4 control has changed position because the AutoSize property is True.Try to set this property to False and realign the control again.
That was stupid of me 😳
-
AuthorPosts