Michelle,
>>>>> I have a form, which has two grids, only one of them is really used, and other should be removed. The removing code was in Form's Init method and it works just fine. When I put the same code into Load method, it failes. Both grids have all columns controlsource set in design-time.
>>>>>
>>>>> I'm thinking about put NODEFAULT in Grid Init method, if certain conditions are met. Is there simpler approach?
>>>>>
>>
>>>>Couple of thoughts. I believe the objects are not yet instantiated when the form Load fires, hence, your error. I think you should be able to test in the grid Init and just return .F. from the Init to keep the grid from instantiating.
>>>
>> Ok, I tried it. Two problems I found: 1) I'm still having an error, if it's not a correct structure, so this doesn't help.
>>
>>2) For some reason, in the grid Init methods it could not recognize constants, defined in the include file, if I'm in the debug mode...
>>
>>What are the other suggestions?
>>
>What do you mean by "not a correct structure"? What error are you getting?
'Error loading file - record number 4. grdBldMstr2
.ControlSource: Variable 'ownerzip5' is not found.
The problem with include file might be temproral (at was not able to reproduce it, so I think, something was wrong with the path settings in that time).
Anyway, there is the problem: I have two grids on a form with all columns ControlSource set in design-time. When I run my form, I use only one of them, depending on some conditions. How can I (if it possible) prevent execution of Grid Init and all it's childs Init.
Another possible solution - save these grids as two classes and then instead of removing - add either of them. But how can I do this, if they're already on the form (I mean, create a class)? And, besides, it seems to me that this solution is combersome...
TIA
If it's not broken, fix it until it is.
My Blog