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 aEditor<>Editor then
Editor := aEditor; //!! here SetEditor is called that contains
changing Parent with impact on focus
end;
Mattias Gaertner schrieb:
u-boot <[email protected]> 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
------------------------------------------------------------------------
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus