If that was the case.. then its unlikely to happen midstream during a very small short procedure call. Especially if that procedure call is a user initiated one.
if that is the case.. its extremely simple to test this with remote desktop and some logging of the construction/destruction of the list items. On Tue, Apr 9, 2013 at 11:29 PM, Ross Levis <[email protected]>wrote: > I’ve had someone suggest this elsewhere…**** > > ** ** > > *The user connects a monitor to a laptop, or connects remotely via > terminal services. > Basically, anything that changes the display resolution has that kind of > consequences.* > > ** ** > > I have seen a TeamViewer in one of the many screen shots. So I guess > Windows is recreating the windows and allocating new handles to the list > items as I thought. I’ll check with them if the crashes coincide with use > of TeamViewer.**** > > ** ** > > Ross.**** > > ** ** > > *From:* Ross Levis [mailto:[email protected]] > *Sent:* Tuesday, 9 April 2013 11:17 p.m. > *To:* 'NZ Borland Developers Group - Delphi List' > *Subject:* RE: [DUG] TListitems disappearing and reappearing causing > access violations**** > > ** ** > > The list is populated by the software. It’s still in Delphi 7.**** > > ** ** > > No threads are deleting any items. Only the main thread adds and removes > items.**** > > ** ** > > There is no one procedure this has occurred in. It can work for 2 days > and suddenly this happens in a random procedure that accesses a list item. > **** > > ** ** > > In this particular case, it is in a procedure where one specific listitem > is sent as a parameter.**** > > ** ** > > Here are some of the relevant lines of code in the procedure being > executed.**** > > ** ** > > if Item <> nil then**** > > begin**** > > if Item.Selected then UpdateButtons;**** > > …**** > > Item.ImageIndex := 8;**** > > end;**** > > ** ** > > There are no deletions in the procedure.**** > > ** ** > > The Item.Selected test works fine but Item.ImageIndex := 8 crashes at > TListItem.SetImage with an access violation.**** > > ** ** > > The item existed and then no items exist based on the screen shot.**** > > ** ** > > I’ve been having to put validations all over the place like this…**** > > if ListView.Items.IndexOf(Item) >= 0 then Listitem.ImageIndex := 8.**** > > ** ** > > This user has had a crash where it does this validation up the procedure > somewhere which validated, but further down it will be accessing Item.Index > and this crashes.**** > > ** ** > > It’s a nightmare. I’m wondering if it could be corrupt RAM in the PC or > something.**** > > ** ** > > Cheers,**** > > Ross.**** > > ** ** > > *From:* [email protected] [ > mailto:[email protected]<[email protected]>] > *On Behalf Of *Kyley Harris > *Sent:* Tuesday, 9 April 2013 10:33 p.m. > *To:* NZ Borland Developers Group - Delphi List > *Subject:* Re: [DUG] TListitems disappearing and reappearing causing > access violations**** > > ** ** > > without seeing the 10lines above, and whats inbetween (if you were being > literal) its very hard to say. **** > > The only time I've ever had something dissapear from a list is when I > deleted it though a callback, method, thread etc.. or freeing something. * > *** > > what version of delphi is the code now? How does the list get populated or > edited by the application.. **** > > I'd start by looking at how many locations of code insert or delete the > list items, and verify none are being called while your procedure is > executing its for-loop, (assuming the access violation is an index based > one because of the list count change)**** > > ** ** > > ** ** > > On Tue, Apr 9, 2013 at 10:21 PM, Ross Levis <[email protected]> > wrote:**** > > Wondering if anyone has any ideas.**** > > **** > > I've had this problem a long time from when I started writing an app about > 7 or 8 years ago, but it happens so rarely it's not usually an issue. But > one user in particularly is regularly sending me MadExcept reports which > either have access violation errors or "the application appears to be > frozen". In all cases it's during an access of a TListItem which was > perfectly valid 10 lines of code up a procedure but suddenly doesn't exist. > **** > > **** > > The screenshot created at the same time shows the ListView has no visible > items, but I know for a fact there are 30 or more items in the list. I > believe sometimes the items visually disappear and reappear shortly > afterwards, like a Desktop refresh.**** > > **** > > I think I've heard something about Windows recreating the window handles > or some such thing. I don't understand why it would do so. There are no > changes to the listview that would require re-creating the window.**** > > **** > > Any ideas?**** > > **** > > > _______________________________________________ > NZ Borland Developers Group - Delphi mailing list > Post: [email protected] > Admin: http://delphi.org.nz/mailman/listinfo/delphi > Unsubscribe: send an email to [email protected] with > Subject: unsubscribe**** > > > > > -- > Kyley Harris > Harris Software > +64-21-671-821 **** > > _______________________________________________ > NZ Borland Developers Group - Delphi mailing list > Post: [email protected] > Admin: http://delphi.org.nz/mailman/listinfo/delphi > Unsubscribe: send an email to [email protected] with > Subject: unsubscribe > -- Kyley Harris Harris Software +64-21-671-821
_______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: [email protected] Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [email protected] with Subject: unsubscribe
