> On Tue, Jan 22, 2013 at 3:45 PM, Art Heimsoth
> <[email protected]> wrote:
>
>> I am trying to get a printer selection to work using the
>> .SingleSelection class
>>
> in my ooDialog program. The selection is displayed, but the
> default item that is passed as a parm does not preselect the item,
> and the return is always the preselected index value. If I take
> the method out of the main program and run it from a simple Rexx
> program, all works just fine. I have verified via traces that the
> parms are passed in correctly and the selected index value is not
> returned. I am looking for ideas of how to find the problem short
> of really stripping the main program until it starts working.
>
>
> Hi Art,
>
>
> It's pretty hard to say without seeing some code. You say "the
> method out of the main" What does this method look like?
>
::method UpdatePrinter
expose Fescue. Tkt.
self~logError(0,"UpdatePrinter entered" time('S'))
self~logError(0,"Fescue.printer set to:" Fescue.printer "on entry")
if Fescue.printer <> '' then return -- stop multiple entry
waitmsg = .TimedMessage~new("Please wait for the list of printers.", ,
"Getting Printer Names", -1)
waitmsg~execute
default_printer = SysWinGetDefaultPrinter()
parse value default_printer with dp ','.
call SysWinGetPrinters all_printers.
do i = 1 to all_printers.0
parse var all_printers.i pname ','.
if pname == dp then do
aprt.i = pname '(Default)'
ldp = i
end
else aprt.i = pname
end
aprt.0 = all_printers.0
m_title = 'Select A Printer For Fescue Program'
self~logError(0,"Preselected:" aprt.ldp)
dlg = .SingleSelection~new('Make A Selection',m_title,aprt.,ldp, ,4)
wt = dlg~execute
waitmsg~ok
if wt <> '' then do
Tkt.Printer~setText(aprt.wt)
self~logError(0,"UpdatePrinter Selected:" aprt.wt)
Fescue.printer = aprt.wt
end
else
self~logError(0,"UpdatePrinter none selected")
Then if I run the following it works as expected:
/* why doesn't printer selection work? */
waitmsg = .TimedMessage~new("Please wait for the list of printers.", ,
"Getting Printer Names", -1)
waitmsg~execute
default_printer = SysWinGetDefaultPrinter()
parse value default_printer with dp ','.
call SysWinGetPrinters all_printers.
do i = 1 to all_printers.0
parse var all_printers.i pname ','.
if pname == dp then do
aprt.i = pname '(Default)'
ldp = i
end
else aprt.i = pname
end
aprt.0 = all_printers.0
m_title = 'Select A Printer For Fescue Program'
dlg = .SingleSelection~new('Make A Selection',m_title,aprt.,ldp, ,4)
wt = dlg~execute
waitmsg~ok
if wt <> '' then
Say "printer selected = "aprt.wt
else
Say "No printer selected"
::requires OODialog.CLS
>
> Off-hand, I'd say it is not possible for it to not work. ;-) So,
> I'm thinking there is something else going on there.
>
I agree there is something else going on, but I am out of ideas
of how to try to find out what!
--
Art Heimsoth - [email protected]
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Oorexx-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-users