Forum Replies Created
-
AuthorPosts
-
Ronaldo SouzaParticipant'Support' wrote:
Hello
I think, you should use standard ways for this, I mean the DataSource.OnChange event or your DBField.OnChange event.
This event fires way too many times in my case, even before the fields get fully defined, so I ended up with a rather simple solution:
Code://VERY simplified pseudo-code
procedure TForm1.sDBLookupComboBoxOnClick(Sender: TObject);
begin
if (Table1Item.AsString fLastItem)
then begin
fLastItem := Table1Item.AsString; //save for next check
ShowMessage('ITEMS ARE DIFFERENT!')
end;
end;Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Hello!
I will think how to do it. Maybe it's possible, but I can't promise at the moment.
Thanks for considering a solution! 🙂
Best regards,
Ronaldo
Ronaldo SouzaParticipantDid some quick testing and, as far as I can tell, both the issue with the magnifier and the exception are solved in 11.05beta.
Good job!
Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Thank you. But this form doesn't helps, unfortunately.
Maybe you can catch and show a full callstack for this error?
Also, can you try to replace a combobox on this form to TsComboBox? What result will you have?
1) If I replace the regular TComboBox by TsComboBoxes, the exception goes away.
2) Just noticed this exception is happening in other forms containing regular combo boxes.
3) If I turn skins off, the problem goes away.
4) Doing a bit of debugging, the exception seems to be happening in unit sAlphaGraph, procedure DrawSkinGlyph, line “CopyTransRect(Bmp, MasterBitmap…”:
Code:CALL STACK:
DrawSkinGlyph($7778F44,(351, 12),???,1,(nil, 'COMBOBOX', 'GLYPHMASK', (32, 63, 59, 68, (32, 63), (59, 68)), 3, 0, 0, 0, itisaGlyph, $26BBFF0, 0, 0, 0, 0, 0, 67, 9, 5),($7778F44, 0, 0, 16711935, (0, 0, 0, 0, (0, 0), (0, 0)), True))
TacComboBoxWnd.PaintButton(???)
TacComboBoxWnd.RepaintButton
TacComboBoxWnd.acWndProc(???)
TsSkinProvider.AC_WMActivate(???)
TsSkinProvider.NewWndProc((6, 1, 657264, 0, 1, 0, 1904, 10, 0, 0))
TacMainWnd.CallPrevWndProc(???,???,1,657264)
TacScrollWnd.acWndProc((6, 1, 657264, 0, 1, 0, 1904, 10, 0, 0))Code:procedure DrawSkinGlyph(Bmp: TBitmap; P: TPoint; State, AddedTransparency: integer; const MaskData: TsMaskData; const CI: TCacheInfo);
var
w, h, cy, cx, dw: integer;
begin
w := MaskData.Width;
h := MaskData.Height;
if State >= MaskData.ImageCount then
State := MaskData.ImageCount – 1;dw := State * w;
cy := iff(p.y < 0, -p.y, 0);
cx := iff(p.x < 0, -p.x, 0);
with MaskData.R do
if MaskData.Bmp = nil then
with TsSkinManager(MaskData.Manager) do begin
if (MaskData.Manager nil) and (MaskData.ImageCount > 0) then
if MaskData.MaskType > 0 then
BlendGlyphByMask(Rect(p.x + cx, p.y + cy, p.x + w – 1 + cx, p.y + h + cy {- 1}),
Rect(dw + cx + Left, cy + Top, dw + w – 1 + cx + Left, h – 1 + cy + Top),
Bmp, MasterBitmap, AddedTransparency, MaskData)
else
if AddedTransparency 1 then
BlendTransRectangle(Bmp, p.x + cx, p.y + cy, MasterBitmap,
Rect(dw + cx + Left, cy + Top, dw + cx + Left + w – 1, cy + Top + h – 1),
127)
else
>>>>>>>>>> CopyTransRect(Bmp, MasterBitmap, p.x + cx, p.y + cy, <<<<<<< EXCEPTION HERE
Rect(dw + cx + Left, cy + Top, dw + cx + Left + w – 1, cy + Top + h – 1),
clFuchsia, CI, True);
end
else
if (Right <= MaskData.Bmp.Width) and (Bottom <= MaskData.Bmp.Height) then
BlendGlyphByMask(Rect(p.x + cx, p.y + cy, p.x + w – 1 + cx, p.y + h + cy – 1),
Rect(dw + cx + Left, cy + Top, dw + w – 1 + cx + Left, h – 1 + cy + Top),
Bmp, MaskData.Bmp, AddedTransparency, MaskData);
end;Hope it helps!
Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:I think, this error exists in all subversions of version 11.
Can you give me Dfm-file for this form, please?
I've sent it to support@alphaskins.com.
Best regards,
Ronaldo
Ronaldo SouzaParticipantIf you provide links to beta versions 11.00, 11.01, 11.02 and 11.03, I'd be glad to test them to see if and when this exception starts to happen.
Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:When you receives these error messages?
Can I repeat it in your demo?
This is the form that triggers the error:
[attachment=7758:ExceptionForm.jpg]
Ronaldo SouzaParticipant'Support' wrote:When you receives these error messages?
Can I repeat it in your demo?
Nope. As I said, it's in a totally unrelated part of the program and has nothing to do with the magnifier. I probably shoud've created a new thread. Sorry. I just mentioned it here because I've never seen this exception before (from version 10.18 to 10.30) and I noticed it while testing my apps with 11.04 beta regarding the magnifier problem.
Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Thank you for the message.
What is version number of your Windows?
6.1.7601 Service Pack 1 Compilation 7601
Windows 7 Pro 64 bits Service Pack 1
Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Thank you for the good demo-app. I see the problem and I will fix it soon.
The problem seems to be fixed with version 11.04 beta, but I'm getting a bunch of unrelated “EInvalidGraphicOperation: Scan line index out of range” in a totally unrelated part of the program which runs fine with 10.30.
I can't pinpoint the cause of the problem, but the exception happens in unit acSBUtils, procedure TacComboBoxWnd.acWndProc, so I added a TRY/EXCEPT and some logging to this procedure and this is is typical of what I got:
Code:30/06/2016 13:33:40: Exception.Message – EInvalidGraphicOperation: Scan line index out of range
TMessage – WParam:00170BFA LParam:00000000 Result:00000001 – WParamLo:0BFA WParamHi:0017 LParamLo:0000 LParamHi:0000 ResultLo:0001 ResultHi:0000
30/06/2016 13:33:57: Exception.Message – EInvalidGraphicOperation: Scan line index out of range
TMessage – WParam:0015019C LParam:00000000 Result:00000001 – WParamLo:019C WParamHi:0015 LParamLo:0000 LParamHi:0000 ResultLo:0001 ResultHi:0000
30/06/2016 13:34:10: Exception.Message – EInvalidGraphicOperation: Scan line index out of range
TMessage – WParam:001A01D4 LParam:00000000 Result:00000001 – WParamLo:01D4 WParamHi:001A LParamLo:0000 LParamHi:0000 ResultLo:0001 ResultHi:0000Hope it helps,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Hello!
Try to change the TsSkinProvider.SkinData.CustomColor to True and you can use the Color property of the form then.
Thanks, it works!
Ronaldo
Ronaldo SouzaParticipant'HeDiBo' wrote:When OnMouseUp and OnMouseDown work, there should be an easy way to get from the X,Y coordinates to the pertinent date.
I believe you can use the day, month & year fieds to get the current date:
procedure TForm1.sMonthCalendar1Change(Sender: TObject); //OnChange handler
begin
Form1.Caption := Format('%0.2d/%0.2d/%0.2d',[sMonthCalendar1.day,sMonthCalendar1.month,sMonthCalendar1.year]);
end;
Hope it helps!
Best regards,
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Hello!
As a quick solution, I can suggest you to try the TsSpeedButton component instead of standard TSpeedButton.
For a solving of this problem I need to see it somehow. Maybe you can make a demo where I can repeat the problem?
Sorry for the delay. I can't reproduce the problem in a small program.
I did make it go away by changing a few TSpeedButtons to TsSpeedbuttons, but don't really understand what's going on.
Glad it's gone thou
Thakns for the support!
Ronaldo
Ronaldo SouzaParticipant'Ronaldo wrote:The title pretty much describes the problem:
[attachment=7666:TrackBar.png]
if I disable ths skins, an error occurs:
[attachment=7665:TrackBarErrorMsg.png]
See attached demo.
[attachment=7664:TrackBarError.rar]
Thanks in advance!
Ronaldo
Problem solved with version 10.28.
Thanks!
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:This issue exists only in Delphi 7 and older.
Standard SpeedButtons can have same behaviour there, because MouseLeave message is not always send to the control.
I will think how this situation may be improved. Also, I can suggest to use newer version of the Delphi.
Thanks for the clarification.
Since it's a legacy application, it's kinda hard to migrate it to a newer Delphi, but changing the TSpeedButtons to TsSpeedButtons does seem to fix the issue.
Thanks!
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Hello, Ronaldo!
Can you save an information about your system using the msinfo32 tool and send it to support@alphaskins.com?
I can't repeat this problem using your Exe (Windows 7 x64), I will search a system where it's repeated.
Whatever it was, it seems that version 10.27 fixed this problem.
Thanks! 🙂
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Thank you for the demo, I will try to fix it in the nearest release.
You can use TsDBCheckBox component also, while the problem with standard control is not solved,
Thanks!
ROnaldo
Ronaldo SouzaParticipant'jimsweb' wrote:Can someone please share their valuable advise here?
The demo application (compiled with Delphi XE10) always crashes when clicked on “shell Controls” option from left pane.
Do you get an “External Excption EEFFACE”? If so, take a look here: http://www.audacia-software.de/en/bcb/external-exception-eefface.htm
Does it also happen if you run the demo outside the IDE?
HTH!
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:Hello
These properties are just strings and has maximum length of strings in the Delphi (up to 2Gb).
There is no special limitations in the package.
Ok. I'll just convert them to short strings and take precautions for the off chance some crazy skin name gets longer than 255 chars. 🙂
Thanks!
Ronaldo
Ronaldo SouzaParticipant'Support' wrote:I think, you can exclude this statusbar rectangle before painting, like this:
ExcludeClipRect(Canvas.Handle, sStatusBar1.Left, sStatusBar1.Top, sStatusBar1…)
Works perfectly. Thanks!
Ronaldo
-
AuthorPosts