well that's very interesing FabienWang but I disagree the reason is due to windows wideget sets and others. Did microsoft think it was effecient to not update the form variables if it's maximized and leave the original values for demaximize in a temp variable so I could get real values for my form? the test proves not.
Microsoft doesn't update form variables. It only reports the top,left,right,bottom when you query for it. It is up to the LCL to decide if the top,left,width,heigt of a component (==form) is updated.
IMO the LCL should do this since you need to know the size for various reason
I just tested this in VB6 and the VB form when maximized does return updated values so I think it's the way Lazarus is doing things.
the LCL is not VB. So the way the LCL handle things could be different than how VB handles this.
the original point of this thread is why is a stretched timage not returning pixel values for pixels I know are lit. The answer is my original image wasn't that size that the lcl know how to stretch something but keeps all the data after the stretch to itself.
Then you still don't get what the TImage.Stretched property means.
It does the same thing when it stretches the form for it's designed state to a maximized state. If find it hard gto uderstand why it does this I wnat to work with the lcl not against it.
I don't know why you think it does, since the LCL doesn't
if I read the top,left,widht,heigt of a miximized window, I get the updated values.