Another question about placing control's over a grid.

I have a small problem.

I want to have multiple edit controls and combo box controls for each column
in a grid, one per row. The control will just become visible when the
underlying column is selected.

Overriding the paint event makes the border dissapear on the combo's which
means the actual text editing rectangle starts about 3 pixels down and to
the right of the top left edge of the combo.

I want my edit controls to also edit text at this offset. The way I though
was using the EM_SETRECT message which allows me to control where the actual
editing rectangle is for the edit control.

The edit control must have the ES_MULTILINE flag set in the Params section
of CreateParams for the EM_SETRECT message to work.

procedure TAdrockVisualFieldEdit.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or ES_MULTILINE or WS_CLIPCHILDREN;
end;

Now the problem, when I am on the edit control and move to a cell with the
combo I get a combo with no cursor, and I can not type in to the control. If
I press tab I get the cursor, and am able to enter text. This also only
occurs when I am navigating using the UP and Down Arrow Keys. Using the
mouse works fine.

If I do not have the ES_MULTILINE flag the problem does not show up at all,
and I get a cursor every time on each field without a problem.

But then without the ES_MULTILINE flag I can not move the actual editing
rectangle of the edit control to the position I want.

Any ideas what is happening here?

Chris



 -- 8< -- 8< -- [ Original Message End ] -- >8 -- >8 --


---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to