Ross, Two things.
1. What has access to these items ? Could a thread be altering these items out from beneath you ? (I noticed in a previous email from you in July that you are working with threads). 2. Why not make the code a little safer e.g. If (length(Items.SubItems) > 2) then begin Result := StringReplace(Result,'%a',Item.Caption,[rfReplaceAll]); Result := StringReplace(Result,'%t',Item.SubItems[0],[rfReplaceAll]); Result := StringReplace(Result,'%s',Item.SubItems[1],[rfReplaceAll]); Result := StringReplace(Result,'%c',Item.Subitems[3],[rfReplaceAll]); End Else Begin What the hell am I doing trying to access an array element that does not exist. End; I have one user of my software which is experiencing an occasional access violation in a routine which is simply reading some data stored in a ListView. The items in the listview are static and not changing at the time. There are always 5 columns of data, the Caption, and 4 SubItems. The function simply replaces some parameters in a user formatted string with data as follows. Not very efficient but nevermind. The first line always works. Item.Caption gets replaced correctly every time and never crashes. If an Access Violation occurs, it's usually on the 2nd line, but sometimes this also works, and the crash occurs on the 3rd line. I've not seen a crash on the 4th line. The items were loaded at least 20 minutes prior to this function being called, so it's not a matter of the ListItem being deleted or created at the same time. It's completely beyond me. Are there any known issues with ListViews in Delphi 7, or any other ideas? Thanks, Ross. _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [EMAIL PROTECTED] with Subject: unsubscribe _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [EMAIL PROTECTED] with Subject: unsubscribe _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [EMAIL PROTECTED] with Subject: unsubscribe