Before you do all of that, try delaying your focus setting function using 
callLater.  It might just be a timing problem.

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of aceoohay
Sent: Monday, September 15, 2008 1:26 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: How can I set focus to a field in a programatically 
created popup?


Kenneth:

I'm not sure that I know how to do all the things I would need to do.

In the current code I create a titlewindow, add all of the bits and
pices such as horizontal boxes, textinputs, and datagrids, which are
all dynamic and can change based on content, and then I use the
popup manager to display it.

I don't know how to accomplish the same thing starting out with a
mxml component.

Paul

--- In flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>, 
"Kenneth Sutherland"
<[EMAIL PROTECTED]> wrote:
>
> Why don't you try
>
> ttlwQuery.addEventListener(FlexEvent.SHOW, functionToSetFocus);
>
>
>
> I'd also recommend not creating the titleWindow inside the
> loadQueryCanvas, it would be better to create as separate class
which is
> a titlewindow that you can then create and show. See
> http://blog.flexexamples.com/2008/08/16/creating-an-undraggable-
titlewin
> dow-container-in-flex/ for an example if I'm not making sense J
>
>
>
>
>
> P.S I've know people to use private paste to show there code.
> http://privatepaste.com/
>
> Handy especially as pasting code into an email normally makes it
> unreadable.
>
>
>
> HTH,
>
> Kenneth.
>
>
>
> From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
[mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>] On
> Behalf Of aceoohay
> Sent: 15 September 2008 15:36
> To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
> Subject: [flexcoders] Re: How can I set focus to a field in a
> programatically created popup?
>
>
>
> Kenneth:
>
> Thanks for the response. That is precisely how I have done it in
the
> past as well. Unfortunately, I do not know how to create
> functions "on-the-fly." I am creating the entire object using AS
> code and then displaying it in a popup. Is there a way of creating
a
> new function in an object as you create it? If so I could create
an
> initApp() function and call it from creationComplete.
>
> Also is there a better way of posting code so that it doesn't lose
> its formatting?
>
> Paul
> --- In flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> <mailto:flexcoders%
40yahoogroups.com>
> , "Kenneth Sutherland"
> <kenneth.sutherland@> wrote:
> >
> > I haven't tried your code but I would normally do what you're
doing
> > using the show event.
> >
> >
> >
> > e.g. show="fieldToGetFocus.setFocus();"
> >
> >
> >
> > this would go inside of your popup code.
> >
> >
> >
> > From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> > <mailto:flexcoders%
40yahoogroups.com>
>
> [mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> <mailto:flexcoders%
40yahoogroups.com>
> ] On
> > Behalf Of aceoohay
> > Sent: 15 September 2008 07:38
> > To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> > <mailto:flexcoders%
40yahoogroups.com>
> > Subject: [flexcoders] How can I set focus to a field in a
> > programatically created popup?
> >
> >
> >
> > I am creating a titlewindow with some fields completely in AS3
> > script. I then display this object using a popup. I want to set
> focus
> > to the very first field in the popped up titlewindow.
> >
> > I have tried a number of things, the most promising (I thought)
> was
> > to add a creation complete event listener. This did not work.
> >
> > All ideas welcome, here is the code;
> >
> > public function loadQueryCanvas():void
> > {
> > _ttlwQuery = new TitleWindow;
> > _hbQuery = new HBox;
> > _dgDisplay = new DataGrid;
> > // _ttlwQuery.width = 200;
> > // _ttlwQuery.height = 200;
> > _ttlwQuery.showCloseButton = true;
> > _ttlwQuery.title = _title;
> > _ttlwQuery.addEventListener
> > (CloseEvent.CLOSE,closePopup);
> > /* var intX:int = _targetTextBox["x"];
> > var intY:int = _targetTextBox["y"] +
> > _targetTextBox["height"] + 2;
> > _ttlwQuery.x = intX;
> > _ttlwQuery.y = intY;
> > */
> > var cvsQuery:Canvas = new Canvas;
> > _hbQuery.height = 25;
> > var txtField:ValidatedTextInput;
> > var lblField:Label;
> > var dgColumn:DataGridColumn;
> > var aryColumns:Array = new Array;
> > var intTabIndex:int = 0;
> > for each (var objItem:Object in
> > _searchFields)
> > {
> > if (objItem["Input"] == "Y")
> > {
> > lblField = new Label
> > lblField.text =
> > objItem["Label"] + ":";
> > lblField.id
> > = "lbl" + objItem["Field"];
> > lblField..setStyle
> > ("fontWeight","bold");
> > _hbQuery.addChild
> > (lblField);
> > txtField = new
> > ValidatedTextInput;
> > txtField.name
> > = "txt" + objItem["Field"];
> > txtField.width =
> > objItem["Width"];
> > txtField.maxChars =
> > objItem["MaxChars"];
> > txtField.dataType =
> > objItem["DataType"];
> >
> > txtField.charactersAlsoPermitted = "%_";
> > txtField.tabIndex =
> > intTabIndex;
> > intTabIndex++;
> > if (!_txtFirstField)
> > _txtFirstField = txtField;
> > _hbQuery.addChild
> > (txtField);
> > }
> > dgColumn = new DataGridColumn
> > ();
> > dgColumn.dataField = objItem
> > ["Field"];
> > dgColumn.width = objItem
> > ["Width"];
> > dgColumn.headerText = objItem
> > ["Label"];
> > aryColumns.push(dgColumn);
> > }
> > var btnSearch:Button = new Button;
> > btnSearch.id = "btnSearch";
> > btnSearch.label = "Search"
> > btnSearch.addEventListener
> > (MouseEvent.CLICK,doSearch);
> > _hbQuery.addChild(btnSearch);
> > _hbQuery.defaultButton = btnSearch;
> > _dgDisplay.id = "_dgDisplay";
> > _dgDisplay.columns = aryColumns;
> > // _dgDisplay.dataProvider =
> > _acDataTable;
> > _dgDisplay.x = 0;
> > _dgDisplay.y = 26;
> > _dgDisplay.height =
> > _targetTextBox.parent.height - 100;
> > _dgDisplay.percentWidth = 100;
> > _dgDisplay.addEventListener
> > (ListEvent.ITEM_CLICK,_dgDisplaySelected);
> > // _dgDisplay.addEventListener
> > (DataGridEvent.HEADER_RELEASE,headerReleaseHandler);
> > cvsQuery.addChild(_hbQuery);
> > cvsQuery.addChild(_dgDisplay);
> > _ttlwQuery.addChild(cvsQuery);
> >
> > _ttlwQuery.visible = true;
> > _ttlwQuery.addEventListener
> > (FlexEvent.CREATION_COMPLETE,setPopupFocus);
> > PopUpManager.addPopUp(_ttlwQuery,
> > _targetTextBox.parent, true);
> > PopUpManager.centerPopUp(_ttlwQuery);
> >
> > // var event:Event;
> > // doSearch(event);
> > // _targetTextBox.parent.addChild
> > (_ttlwQuery);
> >
> > }
> > public function setPopupFocus
> > (event:Event):void
> > {
> > _ttlwQuery.focusManager.setFocus
> > (_ttlwQuery.focusManager.getNextFocusManagerComponent());
> > }
> >
> >
> >
> > Disclaimer
> > ----------------------------------------------------------
> ------------------------
> > This electronic message contains information which may be
> privileged and confidential. The information is intended to be for
> the use of the individual(s) or entity named above. If you are not
> the intended recipient, be aware that any disclosure, copying,
> distribution or use of the contents of this information is
> prohibited. If you have received this electronic message in error,
> please notify us by telephone on 0131 476 6000 and delete the
> material from your computer.
> > Registered in Scotland number: SC 172507.
> > Registered office address: Quay House 142 Commercial Street
> Edinburgh EH6 6LB.
> >
> > This email message has been scanned for viruses by Mimecast.
> > ----------------------------------------------------------
> ------------------------
> >
>
>
>
> Disclaimer
> ----------------------------------------------------------
------------------------
> This electronic message contains information which may be
privileged and confidential. The information is intended to be for
the use of the individual(s) or entity named above. If you are not
the intended recipient, be aware that any disclosure, copying,
distribution or use of the contents of this information is
prohibited. If you have received this electronic message in error,
please notify us by telephone on 0131 476 6000 and delete the
material from your computer.
> Registered in Scotland number: SC 172507.
> Registered office address: Quay House 142 Commercial Street
Edinburgh EH6 6LB.
>
> This email message has been scanned for viruses by Mimecast.
> ----------------------------------------------------------
------------------------
>

Reply via email to