Page 1 of 1

DataGrid LayoutControl message being sent many, many times

Posted: Wed Jan 25, 2017 8:47 pm
by dpatterson
In working with the DataGrid and trying to understand the various messages, I observed what seems to me to be very odd behavior and I'm hoping someone can explain it to me.

I added some logging to the LayoutControl message handler so that I could observe the order and content of the messages. Specifically, it logs the dgIndex, dgColumn, and the rect.

Code: Select all

logDebug( "index: '" & the dgIndex of me \
         & "', column: '" & the dgColumn of me \
         & "',"  && "rect:" && pControlRect )
The logDebug() function writes the passed string to a scrolling field and appends a cr so that I can collect and scroll through lots of messages while developing and debugging.

The first oddity that I noticed is that dgIndex is always empty (see the log output below).

Next was the number of times that the message is sent. My grid has five visible columns and is populated with three records. I was expecting to see the LayoutMessasge sent 15 times. Instead it is sent to the same column 15 times for each record, each time with a different rect. :?

Here is the log output:

Code: Select all

[11:12:04 AM] index: '', column: 'name', rect: 6,42,241,63
[11:12:04 AM] index: '', column: 'name', rect: 6,63,241,84
[11:12:04 AM] index: '', column: 'name', rect: 6,84,241,105
[11:12:04 AM] index: '', column: 'name', rect: 6,105,241,126
[11:12:04 AM] index: '', column: 'name', rect: 6,126,241,147
[11:12:04 AM] index: '', column: 'name', rect: 6,147,241,168
[11:12:04 AM] index: '', column: 'name', rect: 6,168,241,189
[11:12:04 AM] index: '', column: 'name', rect: 6,189,241,210
[11:12:04 AM] index: '', column: 'name', rect: 6,210,241,231
[11:12:04 AM] index: '', column: 'name', rect: 6,231,241,252
[11:12:04 AM] index: '', column: 'name', rect: 6,252,241,273
[11:12:04 AM] index: '', column: 'name', rect: 6,273,241,294
[11:12:04 AM] index: '', column: 'name', rect: 6,294,241,315
[11:12:04 AM] index: '', column: 'name', rect: 6,315,241,336
[11:12:04 AM] index: '', column: 'name', rect: 6,336,241,357
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,42,302,63
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,63,302,84
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,84,302,105
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,105,302,126
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,126,302,147
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,147,302,168
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,168,302,189
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,189,302,210
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,210,302,231
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,231,302,252
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,252,302,273
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,273,302,294
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,294,302,315
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,315,302,336
[11:12:04 AM] index: '', column: 'acceptsPartials', rect: 241,336,302,357
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,42,392,63
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,63,392,84
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,84,392,105
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,105,392,126
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,126,392,147
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,147,392,168
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,168,392,189
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,189,392,210
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,210,392,231
[11:12:04 AM] index: '', column: 'dateCreated', rect: 302,231,392,252
[11:12:05 AM] index: '', column: 'dateCreated', rect: 302,252,392,273
[11:12:05 AM] index: '', column: 'dateCreated', rect: 302,273,392,294
[11:12:05 AM] index: '', column: 'dateCreated', rect: 302,294,392,315
[11:12:05 AM] index: '', column: 'dateCreated', rect: 302,315,392,336
[11:12:05 AM] index: '', column: 'dateCreated', rect: 302,336,392,357
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,42,482,63
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,63,482,84
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,84,482,105
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,105,482,126
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,126,482,147
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,147,482,168
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,168,482,189
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,189,482,210
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,210,482,231
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,231,482,252
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,252,482,273
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,273,482,294
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,294,482,315
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,315,482,336
[11:12:05 AM] index: '', column: 'dateModified', rect: 392,336,482,357
[11:12:05 AM] index: '', column: 'notes', rect: 482,42,749,63
[11:12:05 AM] index: '', column: 'notes', rect: 482,63,749,84
[11:12:05 AM] index: '', column: 'notes', rect: 482,84,749,105
[11:12:05 AM] index: '', column: 'notes', rect: 482,105,749,126
[11:12:05 AM] index: '', column: 'notes', rect: 482,126,749,147
[11:12:05 AM] index: '', column: 'notes', rect: 482,147,749,168
[11:12:05 AM] index: '', column: 'notes', rect: 482,168,749,189
[11:12:05 AM] index: '', column: 'notes', rect: 482,189,749,210
[11:12:05 AM] index: '', column: 'notes', rect: 482,210,749,231
[11:12:05 AM] index: '', column: 'notes', rect: 482,231,749,252
[11:12:05 AM] index: '', column: 'notes', rect: 482,252,749,273
[11:12:05 AM] index: '', column: 'notes', rect: 482,273,749,294
[11:12:05 AM] index: '', column: 'notes', rect: 482,294,749,315
[11:12:05 AM] index: '', column: 'notes', rect: 482,315,749,336
[11:12:05 AM] index: '', column: 'notes', rect: 482,336,749,357
Aha :!: I just realized what is happening. the DataGrid is sending the LayoutControl message for every visible row, even if there is no data in it.

dgIndex being empty is still an issue, though.

I'll post this anyway just in case some other newcomer like myself runs into this.

Thanks,
Dave

Re: DataGrid LayoutControl message being sent many, many tim

Posted: Fri Feb 24, 2017 11:12 pm
by makeshyft
thanks for this, I wanted to just double check that this is the correct behavior.