Paradox Community

Items in pnews.paradox-programming

Subject:Re: PopUpMenu exceeds the limit
Date:Wed, 8 Aug 2018 16:23:02 -0400
From:"Steven Green" <greens@diamondsg.com>
Newsgroups:pnews.paradox-programming
I've looked at the code, but no, I haven't run it yet.. sorry

--

Steven Green
Myrtle Beach, South Carolina, USA

http://www.OasisTradingPost.com

Collectibles and Memorabilia
Vintage Lego Sets and Parts
- and Paradox support, too
"Thies Grimm"  wrote in message news:5b6ae8a2@pnews.thedbcommunity.com...


Hi Steven,

no influence.
Setting the value menusetlimit higher: no influence
Did you try my script?
I can choose 12 times and then I get the error. Always on excact the same
record.
Paradox 11 and Paradox 11 Runtime. Different PCs.
Do you get the same?

Thies

"Steven Green" <greens@diamondsg.com> wrote:
>I had an app with a few large popups, and the guy had been using
>menusetlimit() on-the-fly, with an occasional conflict.. I put the
>menusetlimit() in his startup process, no problems since then
>
>
>--
>
>Steven Green
>Myrtle Beach, South Carolina, USA
>
>http://www.OasisTradingPost.com
>
>Collectibles and Memorabilia
>Vintage Lego Sets and Parts
>- and Paradox support, too
>"Thies Grimm"  wrote in message news:5b69651d$1@pnews.thedbcommunity.com...
>
>
>Hi there
>
>I want to build a user Select via PopUpMenu
>
>for example I read some data in a TCursor and let the user choose as many
>values as he or she wants to choose.
>
>
>so far everything works as desired.
>
>after about 10 choices I get an error
>
>The number of menu items has exceeded the limit set
>p.addText(tc.(2), tc.(3))
>
>Why? It works about 10 times, I empty the popUpMenu,
>the menuSetLimit is set to 254. So what is wrong?
>
>
>you might check it on your PC, creating a new script and paste the code.
>
>Read it before you start it. :-)
>
>There are to procs and one method
>
>Thanks in advance
>
>Thies
>
>
>
>
>proc cpUserSelect(
>            stTitle String,
>            var tc TCursor
>            )Logical
>var
>   pnt               Point
>   p                  popUpMenu
>   stChoice            String
>endVar
>
>   pnt = Point(1440,1440)
>
>   tc.edit()
>
>; // let the user choose as long as he or she wants tos do so
>; // stop it, using okay, cancel ...
>; //
>   while 2> 1
>      p.unassign()
>      cpBuildPopUp(tc, p)
>
>      stChoice = p.show(pnt.X(), pnt.Y())
>
>      switch
>         case stChoice = "Okay":       return True
>         case stChoice = "Cancel":     errorLog(UserError, "Cancel")
>                                       return False
>         case stChoice.isblank():      errorLog(UserError, "No Choice")
>                                       return False
>         case tc.locate(2, stChoice):  if tc.(3) = MenuChecked then
>                                          tc.(3) = MenuNotChecked
>                                       else
>                                          tc.(3) = MenuChecked
>                                       endIf
>                                       tc.unlockRecord()
>         otherWise:                    errorLog(UserError, "nn error")
>                                       return False
>      endSwitch
>   endWhile
>
>   tc.endEdit()
>
>   return True
>
>endProc
>
>proc cpBuildPopUp(
>            var tc TCursor,
>            var p PopUpMenu
>            )Logical
>var
>   si                  SmallInt
>endVar
>
>   menuSetLimit(254)
>
>   p.empty()
>   si = 0
>
>; // having a break every 40 lines
>   scan tc:
>      if si.mod(40) = 0 then
>         p.addBreak()
>         si = 0
>      endIf
>      si = si + 1
>
>      p.addText(tc.(2), tc.(3))
>
>   endScan
>
>; // adding Okay and Cancel
>   p.addSeparator()
>   p.addText("Okay")
>   p.addText("Abbrechen")
>
>
>   return True
>endProc
>
>method run(var eventInfo Event)
>var
>   tc                  TCursor
>   db                  DataBase
>   itemSQL             SQL
>   li                  LongInt
>endVar
>
>; // create some test data ==> tc
>
>   enumRTLConstants(":priv:__tblRTLConstants.db")
>
>   db.open("priv")
>   li = MenuChecked
>   itemSQL =
>      SQL
>         SELECT GroupName, ConstantName, ~li AS Choice
>         FROM '__tblRTLConstants.db'
>         WHERE GroupName like 'A%'
>      endSQL
>   itemSQL.wantInMemoryTCursor(Yes)
>   if not itemSQL.executeSQL(db, tc) then
>      errorShow()
>      return
>   endIf
>
>; // ask the user
>   if not cpUserSelect("RTLConstants", tc) then
>      errorshow()
>      return
>   endIf
>
>; // if succes ==>
>   tc.instantiateView(":priv:__tblRTLConstantsChoice.db")
>   tc.close()
>
>endMethod
>
>
>
> 


Copyright © 2004 thedbcommunity.com