Hi Rob,
Well spotted, the array is part of a record referenced via a pointer. The errors are at runtime and I do have range checking turned on so that might be part of the problem. A confusing factor though is it doesn't always cause an error with the same setup each time. I'll try turning range checking off. If that doesn't work I have come up with a workaround. Thanks, Dave. Dave Murray Delphi-En Moderator [EMAIL PROTECTED] --- In [email protected], Rob Kennedy <[EMAIL PROTECTED]> wrote: > Dave Murray wrote: > > What does a type declaration like this mean? > > > > Adapter : array [0..0] of IP_ADAPTER_INDEX_MAP; > > > > Why is the index range 0..0? > > Maybe the array really is supposed to have only one element? > > > I'm trying to iterate through this array in a while loop and > > sometimes get a range error when I know there are still entries > > left. > > As Jonas mentioned, it's a dynamic array. I'm guessing that > declaration actually appears as part of a record, not as a > standalone variable. And you never declare a variable of that > record type, do you? Instead, you declare a pointer to that type, > and then either you allocate a block of memory dynamically, or > Windows returns a pointer. > > If you get run-time errors while accessing elements of the array, > then you need to turn off range checking for that area of the code: > > {$R-} > for i := 0 to Pred(ArrayLength) do > Adapter[i].abc := xyz; > {$R+} > > If you get compile-time errors, then you need to do one of two > things: > > 1. Introduce a variable, so instead of "Adapter[2]" you have "x := > 2; Adapter[x]." > > 2. Adjust the array declaration to include at least as many elements > as you plan to refer to with hard-coded constants. If you need to > access element 2 as "Adapter[2]," then use a range of at least 0..2. > You can still go beyond that range at run time with the loop > structure above. > There's just no way to disable compile-time range checking. > > -- > Rob > ----------------------------------------------------- Home page: http://groups.yahoo.com/group/delphi-en/ To unsubscribe: [EMAIL PROTECTED] Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/delphi-en/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

