Question about property & method access scope.

Vinod K Chandran kcvinu82 at gmail.com
Tue May 11 11:05:41 UTC 2021


On Tuesday, 11 May 2021 at 10:48:03 UTC, Mike Parker wrote:
> On Tuesday, 11 May 2021 at 09:10:02 UTC, Vinod K Chandran wrote:
>
>> So in many situations, I need to check some boolean properties 
>> of Window class and call some functions of Window class in 
>> WndProc.
>> But I don't want to expose those props and functions to the 
>> user. So if I make them private, I can't access them inside 
>> the WndProc function. How do solve this issue. Thanks in 
>> advance.
>
> Assuming window.d and wndproc.d are in the same package (and 
> not the default global package), then you can use `package` 
> instead of `private`.

     On Tuesday, 11 May 2021 at 10:48:03 UTC, Mike Parker wrote:
     >
     > Assuming window.d and wndproc.d are in the same package (and
     > not the default global package), then you can use `package`
     > instead of `private`.

     Thanks. "package" scope worked.
     this is the code now.

     ```d
     package :
             bool misBkClrChanged ;
             void setBkClrInternal(HDC dcHandle)
             {
                 RECT rct;
                 HBRUSH hBr = CreateSolidBrush(cast(COLORREF) 
this.mBackColor);
                 GetClientRect(this.mHandle, &rct) ;
                 FillRect(dcHandle, &rct, hBr) ;
                 DeleteObject(hBr) ;
             }
     // And this is the wndproc
     case WM_ERASEBKGND :
     {
         if(win.misBkClrChanged)
         {
              auto dch = cast(HDC) wParam ;
              win.setBkClrInternal(dch) ;
              return 1 ;
          }			}
          break ;
     }

```


More information about the Digitalmars-d-learn mailing list