I know that the other order works for my simple procedure. I asked because i inspected a bug, that is described in the german forum (http://www.lazarusforum.de/viewtopic.php?f=18&t=4599 <http://www.lazarusforum.de/viewtopic.php?f=18&t=4599>):
following code was tried in Stringgrid1.OnSelectEditor:
procedure TForm1.StringGrid1SelectEditor(Sender: TObject; aCol, aRow: Integer;
var Editor: TWinControl);
begin
if (aCol=2) and (aRow>0) then
begin
Memo1.Visible:=True;
Editor:=Memo1;
Memo1.BoundsRect:=StringGrid1.CellRect(2,aRow);
Editor.SetFocus; //!!! here is the focus that doesn't work
end;
end;
//looking up the selecteditor-proceure:
procedure TCustomGrid.SelectEditor;
var
aEditor: TWinControl;
begin
aEditor := GetDefaultEditor(Col);
if EditingAllowed(FCol) and Assigned(OnSelectEditor) then begin
// in some situations there are only non-selectable cells
// if goAlwaysShowEditor is on set initially editor to nil,
// user can modify this value in OnSelectEditor if needed
if not SelectCell(FCol,FRow) then
aEditor:=nil;
OnSelectEditor(Self, fCol, FRow, aEditor); //!! here the above procedure with the setfocus is called
end;
if aEditorEditor then
Editor := aEditor; //!! here SetEditor is called that contains changing Parent with impact on focus
end;
Show quoted text 34 lines
u-boot hat am 24. Januar 2011 um 17:49 geschrieben:
> Same question here as in irc nobody answered it a few hours ago.
>
>
> I tried the following lines. It does not work with setfocus before
> parent changing.
> My question is, if it should work in this order or if this is correct
> behaviour.
>
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> edit1.SetFocus;
> if (Edit1.Parent=Panel2) Then Edit1.Parent:=Panel1 else
> Edit1.Parent:=Panel2;
> end;
Changing the Parent switches the focus to another control.
So, you should set the focus after changing the parent.
Mattias
Show quoted text 8 lines
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20110125/86bc4270/attachment-0001.html>