From: John Martens on
I'm using it only in sub-windows which have one control.

I do not know if this works: oEvent:Control:Name

John



Op 24-5-2010 19:48, Kevin schreef:
> John,
>
> Thanks that worked.
>
> Do you know how to identify the actual control involved? I am new to
> coding at this level.
>
> Kevin
>
>
> "John Martens" <adsl672100(a)tiscali.nl> wrote in message
> news:4bfaaacf$0$30707$5fc3050(a)news.tiscali.nl:
>
>> Kevin,
>>
>> Make it:
>> IF DWORD(oEvent:NotifyCode) = NM_CUSTOMDRAW
>>
>> John
>>
>>
>> Op 24-5-2010 17:28, Kevin schreef:
>> > I have a ControlNotify method on a DataWindow. What I want to do is use
>> > change the colour of items in a ListView depending on a value. The
>> > method code is shown below and compiles without any problem.
>> >
>> > When the program runs it never gets in to the code to handle the
>> > colouring, oEvent:NotifyCode is never NM_CUSTOMDRAW. This is on a
>> > DataWindow, but it does not work on a dialog either.
>> >
>> > Can anyone tell me what I am missing? I have search the newsgroups and
>> > found links to examples which no longer exists. The articles don't tell
>> > me what I may be missing.
>> >
>> > Thanks in advance.
>> >
>> > Kevin
>> >
>> > method ControlNotify( oEvent ) class MainWindow
>> > //
>> > // Control notify event handler
>> > //
>> > local p_NMCD as _winNMLVCustomDraw
>> > local dwDrawStage as dword
>> > local dwIndex as dword
>> > local oLV_Item as ListViewItem
>> > //local oFont as Font
>> >
>> > if oEvent:NotifyCode == NM_CUSTOMDRAW
>> > p_NMCD := ptr( _cast, oEvent:lParam )
>> > dwDrawStage := p_NMCD.nmcd.dwDrawStage
>> >
>> > do case
>> > case dwDrawStage == CDDS_PREPAINT
>> > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
>> CDRF_NOTIFYPOSTPAINT )
>> >
>> > case _and( dwDrawStage, CDDS_ITEMPREPAINT ) > 0
>> > dwIndex := p_NMCD.nmcd.dwItemSpec
>> > oLV_Item := self:oDClvStructure:GetItemAttributes( dwIndex + 1 )
>> >
>> > if IsNil( oLV_Item )
>> > if self:lDragActive
>> > if _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
>> > // White on dark blue / highlight
>> > p_NMCD.clrText := dword(RGB(255, 255, 255))
>> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128))
>> >
>> > else
>> > // black on white
>> > p_NMCD.clrText := dword(RGB( 0, 0, 0 ))
>> > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
>> > endif
>> >
>> > elseif _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
>> > // white on dark blue / highlight color
>> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128 ))
>> >
>> > else
>> > // black on white
>> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
>> > endif
>> >
>> > else
>> > // (p_NMCD.iSubItem) % 8 will give you the
>> > // 0 base column #
>> > // (i.e. 0 means column 1 on the screen)
>> > if (p_NMCD.iSubItem ) % 8 == 1 .and. ;
>> > oLV_Item:GetValue( #F_NAME ) == "PUR_DATE"
>> > //oFont := Font{, 10, "Arial" }
>> > //oFont:Bold := true
>> > //SelectObject( p_NMCD.nmcd.hdc, oFont:Handle() )
>> > // White on dark blue
>> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 255 ))
>> > else
>> > // black on white
>> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 0 ))
>> >
>> > endif
>> >
>> > endif
>> >
>> > // Return this again for all subitems
>> > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
>> CDRF_NOTIFYPOSTPAINT )
>> >
>> > otherwise
>> > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
>> CDRF_NOTIFYPOSTPAINT )
>> >
>> > endcase
>> >
>> > SetWindowLong( self:Handle(), DWL_MSGRESULT, self:EventReturnValue )
>> >
>> > endif
>> >
>> > return self:EventReturnValue
>> >
>
From: Kevin on
John,

Scrap that last question, I found the answer.

What is the difference between a dialog window and a DataWindow for this
method? I modified the method in a dialog window and it works fine. But
when I add the method to a DataWindow the app (which is just a
datawindow) starts and then quits straight away?

Kevin

"Kevin" <kdmurphy(a)eircom.net> wrote in message
news:WZyKn.52$K4.156(a)news.indigo.ie:

> John,
>
> Thanks that worked.
>
> Do you know how to identify the actual control involved? I am new to
> coding at this level.
>
> Kevin
>
>
> "John Martens" <adsl672100(a)tiscali.nl> wrote in message
> news:4bfaaacf$0$30707$5fc3050(a)news.tiscali.nl:
>
> > Kevin,
> >
> > Make it:
> > IF DWORD(oEvent:NotifyCode) = NM_CUSTOMDRAW
> >
> > John
> >
> >
> > Op 24-5-2010 17:28, Kevin schreef:
> > > I have a ControlNotify method on a DataWindow. What I want to do is use
> > > change the colour of items in a ListView depending on a value. The
> > > method code is shown below and compiles without any problem.
> > >
> > > When the program runs it never gets in to the code to handle the
> > > colouring, oEvent:NotifyCode is never NM_CUSTOMDRAW. This is on a
> > > DataWindow, but it does not work on a dialog either.
> > >
> > > Can anyone tell me what I am missing? I have search the newsgroups and
> > > found links to examples which no longer exists. The articles don't tell
> > > me what I may be missing.
> > >
> > > Thanks in advance.
> > >
> > > Kevin
> > >
> > > method ControlNotify( oEvent ) class MainWindow
> > > //
> > > // Control notify event handler
> > > //
> > > local p_NMCD as _winNMLVCustomDraw
> > > local dwDrawStage as dword
> > > local dwIndex as dword
> > > local oLV_Item as ListViewItem
> > > //local oFont as Font
> > >
> > > if oEvent:NotifyCode == NM_CUSTOMDRAW
> > > p_NMCD := ptr( _cast, oEvent:lParam )
> > > dwDrawStage := p_NMCD.nmcd.dwDrawStage
> > >
> > > do case
> > > case dwDrawStage == CDDS_PREPAINT
> > > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW, CDRF_NOTIFYPOSTPAINT )
> > >
> > > case _and( dwDrawStage, CDDS_ITEMPREPAINT ) > 0
> > > dwIndex := p_NMCD.nmcd.dwItemSpec
> > > oLV_Item := self:oDClvStructure:GetItemAttributes( dwIndex + 1 )
> > >
> > > if IsNil( oLV_Item )
> > > if self:lDragActive
> > > if _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
> > > // White on dark blue / highlight
> > > p_NMCD.clrText := dword(RGB(255, 255, 255))
> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128))
> > >
> > > else
> > > // black on white
> > > p_NMCD.clrText := dword(RGB( 0, 0, 0 ))
> > > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
> > > endif
> > >
> > > elseif _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
> > > // white on dark blue / highlight color
> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128 ))
> > >
> > > else
> > > // black on white
> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
> > > endif
> > >
> > > else
> > > // (p_NMCD.iSubItem) % 8 will give you the
> > > // 0 base column #
> > > // (i.e. 0 means column 1 on the screen)
> > > if (p_NMCD.iSubItem ) % 8 == 1 .and. ;
> > > oLV_Item:GetValue( #F_NAME ) == "PUR_DATE"
> > > //oFont := Font{, 10, "Arial" }
> > > //oFont:Bold := true
> > > //SelectObject( p_NMCD.nmcd.hdc, oFont:Handle() )
> > > // White on dark blue
> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 255 ))
> > > else
> > > // black on white
> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 0 ))
> > >
> > > endif
> > >
> > > endif
> > >
> > > // Return this again for all subitems
> > > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW, CDRF_NOTIFYPOSTPAINT )
> > >
> > > otherwise
> > > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW, CDRF_NOTIFYPOSTPAINT )
> > >
> > > endcase
> > >
> > > SetWindowLong( self:Handle(), DWL_MSGRESULT, self:EventReturnValue )
> > >
> > > endif
> > >
> > > return self:EventReturnValue
> > >

From: John Martens on
Kevin,

I think it is in the last lines for a data-window.
This is my (simplified)code in a data-window

John

LOCAL pNMCustomDraw AS _WINNMLVCUSTOMDRAW
LOCAL dwDrawStage AS DWORD
LOCAL dwItem AS DWORD
LOCAL cStatus := '' AS STRING

DO CASE
CASE DWORD(oEvent:NotifyCode) = NM_CUSTOMDRAW
pNMCustomDraw := PTR( _CAST , oEvent:lParam )
dwDrawStage := pNMCustomDraw.nmcd.dwDrawStage
DO CASE
CASE dwDrawStage = CDDS_PREPAINT
SELF:EventReturnValue := CDRF_NOTIFYITEMDRAW
CASE dwDrawStage = CDDS_ITEMPREPAINT
dwItem := pNMCustomDraw.nmcd.dwItemSpec
// dwItem contains the 0-based item and
// pNMCustomDraw.iSubItem contains the 0-based subitem == column (runs
only till 0 when full-row-select is on)
// White RGB( 255 , 255 , 255 )
// Green RGB( 0 , 255 , 0 )
// Red RGB( 255 , 0 , 0 )
// Yellow RGB( 255 , 255 , 0 )
// Grey RGB( 192 , 192 , 192 )
*
* get status and color


SELF:EventReturnValue := CDRF_NEWFONT
OTHERWISE
SELF:EventReturnValue := CDRF_DODEFAULT
ENDCASE
SetWindowLong( SELF:__GetFormSurface():Handle() , DWL_MSGRESULT ,
SELF:EventReturnValue )
SELF:__GetFormSurface():EventReturnValue := SELF:EventReturnValue
RETURN SELF:EventReturnValue
ENDCASE
RETURN SUPER:ControlNotify(oEvent)


Op 24-5-2010 20:28, Kevin schreef:
> John,
>
> Scrap that last question, I found the answer.
>
> What is the difference between a dialog window and a DataWindow for this
> method? I modified the method in a dialog window and it works fine. But
> when I add the method to a DataWindow the app (which is just a
> datawindow) starts and then quits straight away?
>
> Kevin
>
> "Kevin" <kdmurphy(a)eircom.net> wrote in message
> news:WZyKn.52$K4.156(a)news.indigo.ie:
>
>> John,
>>
>> Thanks that worked.
>>
>> Do you know how to identify the actual control involved? I am new to
>> coding at this level.
>>
>> Kevin
>>
>>
>> "John Martens" <adsl672100(a)tiscali.nl> wrote in message
>> news:4bfaaacf$0$30707$5fc3050(a)news.tiscali.nl:
>>
>> > Kevin,
>> >
>> > Make it:
>> > IF DWORD(oEvent:NotifyCode) = NM_CUSTOMDRAW
>> >
>> > John
>> >
>> >
>> > Op 24-5-2010 17:28, Kevin schreef:
>> > > I have a ControlNotify method on a DataWindow. What I want to do
>> is use
>> > > change the colour of items in a ListView depending on a value. The
>> > > method code is shown below and compiles without any problem.
>> > >
>> > > When the program runs it never gets in to the code to handle the
>> > > colouring, oEvent:NotifyCode is never NM_CUSTOMDRAW. This is on a
>> > > DataWindow, but it does not work on a dialog either.
>> > >
>> > > Can anyone tell me what I am missing? I have search the newsgroups
>> and
>> > > found links to examples which no longer exists. The articles don't
>> tell
>> > > me what I may be missing.
>> > >
>> > > Thanks in advance.
>> > >
>> > > Kevin
>> > >
>> > > method ControlNotify( oEvent ) class MainWindow
>> > > //
>> > > // Control notify event handler
>> > > //
>> > > local p_NMCD as _winNMLVCustomDraw
>> > > local dwDrawStage as dword
>> > > local dwIndex as dword
>> > > local oLV_Item as ListViewItem
>> > > //local oFont as Font
>> > >
>> > > if oEvent:NotifyCode == NM_CUSTOMDRAW
>> > > p_NMCD := ptr( _cast, oEvent:lParam )
>> > > dwDrawStage := p_NMCD.nmcd.dwDrawStage
>> > >
>> > > do case
>> > > case dwDrawStage == CDDS_PREPAINT
>> > > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
>> CDRF_NOTIFYPOSTPAINT )
>> > >
>> > > case _and( dwDrawStage, CDDS_ITEMPREPAINT ) > 0
>> > > dwIndex := p_NMCD.nmcd.dwItemSpec
>> > > oLV_Item := self:oDClvStructure:GetItemAttributes( dwIndex + 1 )
>> > >
>> > > if IsNil( oLV_Item )
>> > > if self:lDragActive
>> > > if _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
>> > > // White on dark blue / highlight
>> > > p_NMCD.clrText := dword(RGB(255, 255, 255))
>> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128))
>> > >
>> > > else
>> > > // black on white
>> > > p_NMCD.clrText := dword(RGB( 0, 0, 0 ))
>> > > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
>> > > endif
>> > >
>> > > elseif _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
>> > > // white on dark blue / highlight color
>> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128 ))
>> > >
>> > > else
>> > > // black on white
>> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
>> > > endif
>> > >
>> > > else
>> > > // (p_NMCD.iSubItem) % 8 will give you the
>> > > // 0 base column #
>> > > // (i.e. 0 means column 1 on the screen)
>> > > if (p_NMCD.iSubItem ) % 8 == 1 .and. ;
>> > > oLV_Item:GetValue( #F_NAME ) == "PUR_DATE"
>> > > //oFont := Font{, 10, "Arial" }
>> > > //oFont:Bold := true
>> > > //SelectObject( p_NMCD.nmcd.hdc, oFont:Handle() )
>> > > // White on dark blue
>> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 255 ))
>> > > else
>> > > // black on white
>> > > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
>> > > p_NMCD.clrTextBk := dword(RGB( 0, 0, 0 ))
>> > >
>> > > endif
>> > >
>> > > endif
>> > >
>> > > // Return this again for all subitems
>> > > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
>> CDRF_NOTIFYPOSTPAINT )
>> > >
>> > > otherwise
>> > > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
>> CDRF_NOTIFYPOSTPAINT )
>> > >
>> > > endcase
>> > >
>> > > SetWindowLong( self:Handle(), DWL_MSGRESULT, self:EventReturnValue )
>> > >
>> > > endif
>> > >
>> > > return self:EventReturnValue
>> > >
>
From: Geoff Schaller on
Kevin.

Let me introduce you to bBrowser. Just does all this as par for the
course....

Geoff



"Kevin" <kdmurphy(a)eircom.net> wrote in message
news:pWwKn.49$K4.40(a)news.indigo.ie:

> I have a ControlNotify method on a DataWindow. What I want to do is use
> change the colour of items in a ListView depending on a value. The
> method code is shown below and compiles without any problem.
>
> When the program runs it never gets in to the code to handle the
> colouring, oEvent:NotifyCode is never NM_CUSTOMDRAW. This is on a
> DataWindow, but it does not work on a dialog either.
>
> Can anyone tell me what I am missing? I have search the newsgroups and
> found links to examples which no longer exists. The articles don't tell
> me what I may be missing.
>
> Thanks in advance.
>
> Kevin
>
> method ControlNotify( oEvent ) class MainWindow
> //
> // Control notify event handler
> //
> local p_NMCD as _winNMLVCustomDraw
> local dwDrawStage as dword
> local dwIndex as dword
> local oLV_Item as ListViewItem
> //local oFont as Font
>
> if oEvent:NotifyCode == NM_CUSTOMDRAW
> p_NMCD := ptr( _cast, oEvent:lParam )
> dwDrawStage := p_NMCD.nmcd.dwDrawStage
>
> do case
> case dwDrawStage == CDDS_PREPAINT
> self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
> CDRF_NOTIFYPOSTPAINT )
>
> case _and( dwDrawStage, CDDS_ITEMPREPAINT ) > 0
> dwIndex := p_NMCD.nmcd.dwItemSpec
> oLV_Item := self:oDClvStructure:GetItemAttributes( dwIndex + 1 )
>
> if IsNil( oLV_Item )
> if self:lDragActive
> if _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
> // White on dark blue / highlight
> p_NMCD.clrText := dword(RGB(255, 255, 255))
> p_NMCD.clrTextBk := dword(RGB( 0, 0, 128))
>
> else
> // black on white
> p_NMCD.clrText := dword(RGB( 0, 0, 0 ))
> p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
> endif
>
> elseif _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) ==
> CDIS_SELECTED
> // white on dark blue / highlight color
> p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> p_NMCD.clrTextBk := dword(RGB( 0, 0, 128 ))
>
> else
> // black on white
> p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
> endif
>
> else
> // (p_NMCD.iSubItem) % 8 will give you the
> // 0 base column #
> // (i.e. 0 means column 1 on the screen)
> if (p_NMCD.iSubItem ) % 8 == 1 .and. ;
> oLV_Item:GetValue( #F_NAME ) == "PUR_DATE"
> //oFont := Font{, 10, "Arial" }
> //oFont:Bold := true
> //SelectObject( p_NMCD.nmcd.hdc, oFont:Handle() )
> // White on dark blue
> p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> p_NMCD.clrTextBk := dword(RGB( 0, 0, 255 ))
> else
> // black on white
> p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> p_NMCD.clrTextBk := dword(RGB( 0, 0, 0 ))
>
> endif
>
> endif
>
> // Return this again for all subitems
> self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
> CDRF_NOTIFYPOSTPAINT )
>
> otherwise
> self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
> CDRF_NOTIFYPOSTPAINT )
>
> endcase
>
> SetWindowLong( self:Handle(), DWL_MSGRESULT, self:EventReturnValue )
>
> endif
>
> return self:EventReturnValue

From: Kevin on
Geoff,

I am well aware of bBrowser and use it. This is simply something I was
experimenting with.

Kevin


"Geoff Schaller" <geoffx(a)softxwareobjectives.com.au> wrote in message
news:2YCKn.26920$pv.23170(a)news-server.bigpond.net.au:

> Kevin.
>
> Let me introduce you to bBrowser. Just does all this as par for the
> course....
>
> Geoff
>
>
>
> "Kevin" <kdmurphy(a)eircom.net> wrote in message
> news:pWwKn.49$K4.40(a)news.indigo.ie:
>
> > I have a ControlNotify method on a DataWindow. What I want to do is use
> > change the colour of items in a ListView depending on a value. The
> > method code is shown below and compiles without any problem.
> >
> > When the program runs it never gets in to the code to handle the
> > colouring, oEvent:NotifyCode is never NM_CUSTOMDRAW. This is on a
> > DataWindow, but it does not work on a dialog either.
> >
> > Can anyone tell me what I am missing? I have search the newsgroups and
> > found links to examples which no longer exists. The articles don't tell
> > me what I may be missing.
> >
> > Thanks in advance.
> >
> > Kevin
> >
> > method ControlNotify( oEvent ) class MainWindow
> > //
> > // Control notify event handler
> > //
> > local p_NMCD as _winNMLVCustomDraw
> > local dwDrawStage as dword
> > local dwIndex as dword
> > local oLV_Item as ListViewItem
> > //local oFont as Font
> >
> > if oEvent:NotifyCode == NM_CUSTOMDRAW
> > p_NMCD := ptr( _cast, oEvent:lParam )
> > dwDrawStage := p_NMCD.nmcd.dwDrawStage
> >
> > do case
> > case dwDrawStage == CDDS_PREPAINT
> > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
> > CDRF_NOTIFYPOSTPAINT )
> >
> > case _and( dwDrawStage, CDDS_ITEMPREPAINT ) > 0
> > dwIndex := p_NMCD.nmcd.dwItemSpec
> > oLV_Item := self:oDClvStructure:GetItemAttributes( dwIndex + 1 )
> >
> > if IsNil( oLV_Item )
> > if self:lDragActive
> > if _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) == CDIS_SELECTED
> > // White on dark blue / highlight
> > p_NMCD.clrText := dword(RGB(255, 255, 255))
> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128))
> >
> > else
> > // black on white
> > p_NMCD.clrText := dword(RGB( 0, 0, 0 ))
> > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
> > endif
> >
> > elseif _and( p_NMCD.nmcd.uItemState, CDIS_SELECTED ) ==
> > CDIS_SELECTED
> > // white on dark blue / highlight color
> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 128 ))
> >
> > else
> > // black on white
> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > p_NMCD.clrTextBk := dword(RGB( 255, 255, 255 ))
> > endif
> >
> > else
> > // (p_NMCD.iSubItem) % 8 will give you the
> > // 0 base column #
> > // (i.e. 0 means column 1 on the screen)
> > if (p_NMCD.iSubItem ) % 8 == 1 .and. ;
> > oLV_Item:GetValue( #F_NAME ) == "PUR_DATE"
> > //oFont := Font{, 10, "Arial" }
> > //oFont:Bold := true
> > //SelectObject( p_NMCD.nmcd.hdc, oFont:Handle() )
> > // White on dark blue
> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 255 ))
> > else
> > // black on white
> > p_NMCD.clrText := dword(RGB( 255, 255, 255 ))
> > p_NMCD.clrTextBk := dword(RGB( 0, 0, 0 ))
> >
> > endif
> >
> > endif
> >
> > // Return this again for all subitems
> > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
> > CDRF_NOTIFYPOSTPAINT )
> >
> > otherwise
> > self:EventReturnValue := _or( CDRF_NOTIFYITEMDRAW,
> > CDRF_NOTIFYPOSTPAINT )
> >
> > endcase
> >
> > SetWindowLong( self:Handle(), DWL_MSGRESULT, self:EventReturnValue )
> >
> > endif
> >
> > return self:EventReturnValue