Forum Replies Created
-
AuthorPosts
-
HeDiBoParticipantQUOTE (Support @ Mar 10 2010, 12:27 PM) <{POST_SNAPBACK}>Try to change the DrawOverBorder property to True, some skins have thick, non-transparent border which is drawn over the content if this property is False.
That was it
HeDiBoParticipantThanks <img src="style_emoticons//a7.gif” style=”vertical-align:middle” emoid=”:a7:” border=”0″ alt=”a7.gif” /> That showed me how to fade in a panel. But fading out (slowly making it invisible) was not in the demo. Can you explain how to do that?
HeDiBoParticipantIt's even more complicated, sometimes the SpeedButton's glyph and caption disappear, sometimes they don't.
When they disappear? The TsBitBtn disappears as in the picture: it's on a TsPanel, which is on the form, but it appears in front of a TsMemo, which is on the same form. The SpeedButton's glyph and caption disappear when on a Frame with a FrameAdapter and part of a TsFrameBar. When the SpeedButtons are on a TsToolbar, their glyphs and captions do not disappear.
HeDiBoParticipantUnfortunately, I have to conclude that TsSpeedButton has exactly the same problem
HeDiBoParticipantBecause animation is only shown when the message queue is handled, you could say that animation is totally absent: when the message queue is handled, you mostly are awaiting user input. That's exactly when the gauge should not be animated, because then it would suggest that the program is still working.
HeDiBoParticipantThis bug stems from a bug in CommCtrl.pas. It contains this function:
CODEfunction ListView_GetTextColor(hwnd: HWND): TColorRef;
begin
Result := SendMessage(hwnd, LVM_GETTEXTCOLOR, 0, 0);
end;Because the Result must be a TColorRef (a DWORD), and SendMessage returns a LongInt, a Range Check error may occur. The function should be:
CODEfunction ListView_GetTextColor(hwnd: HWND): TColorRef;
begin
Result := TColorRef(SendMessage(hwnd, LVM_GETTEXTCOLOR, 0, 0));
end;There are a few more cases of this bug:
ListView_GetBkColor
ListView_GetTextBkColor
and
DateTime_GetMonthCalColorSo, in the case of the procedure TacListViewWnd.SaveStdParams in module acSBUtils, the cure would be to do the SendMessage, i.s.o. calling the bugged functions ListView_GetBkColor and ListView_GetTextColor from CommCtrl.
February 15, 2010 at 11:54 am in reply to: 2 buggs in MDI Child code + source code solution {v6.53} #41704HeDiBoParticipantQUOTE (Support @ Feb 15 2010, 12:50 PM) <{POST_SNAPBACK}>Problem occurs in automatic self-destroying when timer used for a form hiding animation effect.
Seems you hadn't it earlier Could be, I didn't have that because the modal form in which the timer was used could only be destroyed manually.February 9, 2010 at 1:49 pm in reply to: 2 buggs in MDI Child code + source code solution {v6.53} #41631HeDiBoParticipantQUOTE (Support @ Feb 9 2010, 12:36 PM) <{POST_SNAPBACK}>Thank you.
I have have a problem with killing the TThreadedTimer…
Do you know how to make this timer terminated and destroyed automatically when animation is finished?
In the OnCreate event in TAuAnimBmp the timer is created:FTimer := TThreadedTimer.Create(Self);
In the OnDestroy event of TAuAnimBmp the timer is destroyed again:
FTimer.Enabled := false; // This will suspend the thread
FTimer.Free; // And this will kill the thread.Hope this helps.
February 9, 2010 at 10:37 am in reply to: 2 buggs in MDI Child code + source code solution {v6.53} #41626HeDiBoParticipantQUOTE (Support @ Feb 9 2010, 11:31 AM) <{POST_SNAPBACK}>Thank you, I'll try to use TThreadedTimer. Can I change this code and use a changed code in the package?
I've included the author's license file, so you can see for yourself, it's totally free to use and modify (the author qualifies it as freeware).[attachment=3747:README.TXT]February 5, 2010 at 4:02 pm in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41619HeDiBoParticipantUnfortunately, despite all measures I took, the program still appears to be hanging sometimes at start-up.
HeDiBoParticipantQUOTE (emailaya @ Feb 4 2010, 10:07 PM) <{POST_SNAPBACK}>when im looking for a problem in the forum, im using the search option so the header or the fact one topic includes several problems is not a problemIt's not about you, it's about everyone else. Please stick to the forum rules.
HeDiBoParticipantQUOTE (emailaya @ Feb 2 2010, 01:10 PM) <{POST_SNAPBACK}>i had different posts for different problems but it made a mess looking for different posts everytime, this way, i have all the problems in one place
The point is, that a forum is for the benefit of all its readers. Otherwise support could be easily done by email.If other users want to find something in this forum, it would be hardly possible with a message heading that doesn't reveal anything about the message content.
February 3, 2010 at 11:54 am in reply to: 2 buggs in MDI Child code + source code solution {v6.53} #41597HeDiBoParticipantQUOTE (Support @ Feb 3 2010, 12:39 PM) <{POST_SNAPBACK}>Do you know a solution for updating controls in the animation process?
In this topic OnPaint cannot contain Application ProcessMessages I included a testfile AppHang.rar.That archive contains two components: a threaded timer (TThreadedTimer) and an animated bitmap (TAuAnimBmp) that uses the timer to refresh. It does not use an Application.ProcessMessages statement.
Maybe that's the idea you're looking for.
The threaded timer is Open Source, so you can include it in the AC components.
February 2, 2010 at 4:08 pm in reply to: 2 buggs in MDI Child code + source code solution {v6.53} #41579HeDiBoParticipantThis is a sure place to get an AV:
Module sFrameBar.pas contains:
CODEif Assigned(acMagnForm) then SendMessage(acMagnForm.Handle, SM_ALPHACMD, MakeWParam(0, AC_REFRESH), 0);
if Steps > 0 then Application.ProcessMessages;
end;
FadingForbidden := False;
inc(sHeight, BorderWidth + 2 * integer(BorderStyle = bsSingle));
if VertScrollBar.Range <> sHeight then VertScrollBar.Range := sHeight;
Arranging := False;
UpdateWidths;
if Showing then
RedrawWindow(Handle, nil, 0, RDW_ALLCHILDREN or RDW_INVALIDATE or RDW_ERASE or RDW_FRAME);
if Assigned(acMagnForm) then SendMessage(acMagnForm.Handle, SM_ALPHACMD, MakeWParam(0, AC_REFRESH), 0);
MouseForbidden := False;
Application.ShowHint := AppShowHint;
ShowHintStored := False;If anywhere before the Steps > 0 test the user has closed the form containing the sFrameBar or has closed the acMagnForm, he/she will get an access violation.
This is just one example. Have a look in sPageControl for another one.February 2, 2010 at 2:52 pm in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41578HeDiBoParticipantI'm getting a bit nearer to the problem.
If you place an extra statement in the DPR file like this:SetProcessAffinityMask(GetCurrentProcess, 1);
and add ause Windows,
to the top, the problem goes away.
This is a problem occurring with hyperthreaded CPU's and Delphi 7.So, unless you have a hyperthreaded CPU, you cannot reproduce it!
Now that I found it, I don't think AlphaControls is to blame. Just because it incurs extra processing this old bug resurfaces.
February 2, 2010 at 1:59 pm in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41577HeDiBoParticipantQUOTE (Support @ Feb 2 2010, 12:29 PM) <{POST_SNAPBACK}>Thank you.
What is TBCBitmap? (abort_icon: TBCBitmap;)
Don't worry, just replace it with a standard bitmap.February 2, 2010 at 11:10 am in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41567HeDiBoParticipantQUOTE (Support @ Feb 2 2010, 08:19 AM) <{POST_SNAPBACK}>I have installed TFormResizer and check it too, but can't receive an issue. How you are using this component? Could you help me to reproduce the problem?
Here is a test application that hangs when started (with Run) from the IDE of Delphi 7.I think the problem is more in another component: AuAniBmp. If I remove that one from the Aura_messager form the problem disappears.
So, I've included that component. And the ThreadedTimer it uses. I think it's complete now, but if you miss something please let me know.Remember, the problem only appears if you run the application from the IDE under the Delphi debugger. Not if you start it stand-alone.
[attachment=3732:AppHang.rar]February 1, 2010 at 2:06 pm in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41554HeDiBoParticipantIs this the solution? Or is it a bug (I would say it's a bug) <img src="style_emoticons//happy.gif” style=”vertical-align:middle” emoid=”^_^” border=”0″ alt=”happy.gif” />
In the new release (6.54), this bug has become horrible. I cannot debug my project anymore! It simply hangs on startup. I have set the sSkinManager1.AnimEffects.FormShow.Active to False. It doesn't help.It appears to have to do with a form that's autocreated in the DPR file. If I create that form dynamically in the main form there's no problem.
The form in question contains among others a custom form resizer, that resizes the form and all its controls dynamically upon request. The resize operation is not done though; only the current size is saved at the form create time.
This is the open source form resizer: [attachment=3726:EasySize.rar]
HELP <img src="style_emoticons//huh.gif” style=”vertical-align:middle” emoid=”:huh:” border=”0″ alt=”huh.gif” />January 28, 2010 at 4:13 pm in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41533HeDiBoParticipantIs this the solution? Or is it a bug (I would say it's a bug)
January 27, 2010 at 4:00 pm in reply to: OnPaint cannot contain Application.ProcessMessages (6.53) #41520HeDiBoParticipantSerge, Did you have a chance to look at this one?
AuthorPosts