Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Popup on Form

Posted on 2010-08-29
6
745 Views
Last Modified: 2012-06-27
Hi,

Is there any way to place a popup (Define Popup) on Form?

Thanks!
SP
0
Comment
Question by:Nirmal Sharma
  • 4
6 Comments
 
LVL 35

Author Comment

by:Nirmal Sharma
ID: 33554006
I use below code in form init but popup does not activate!


      PROCEDURE init
                THIS.DefineMenu
      ENDPROC
      PROCEDURE definemenu       
            DEFINE POPUP shortcut SHORTCUT RELATIVE IN WINDOW (thisform.Name)
                  Define bar 1 of Shortcut Prompt "Item 1"
                  Define bar 2 of Shortcut Prompt "Item 2"
                  Define bar 3 of Shortcut Prompt "Item 3"
            ACTIVATE Popup Shortcut NOWAIT
      ENDPROC
0
 
LVL 35

Author Comment

by:Nirmal Sharma
ID: 33554042
Solved
0
 
LVL 35

Author Comment

by:Nirmal Sharma
ID: 33554056
still unresolved :(
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 29

Accepted Solution

by:
Olaf Doschke earned 250 total points
ID: 33554158
WINDOW (Thisform.name) will not work reliably. Form.Name is not to be confused with a window name. Forms and Windows are in general two seperate collections, windows are only supported for backward compatibility.

What works is
o = CreateObject("form")
o.Name="win1"
Show Window win1

But adding a second form with same name is possible

o2 = CreateObject("form")
o2.Name="win1"

So a window name is not reliable. Skip the Window clause and the popup is within the current active form. In fact define popup is a rather outdated way to create a popup menu and foxpro got no real menu classes comparable to forms.

Popups are context menus and not controls. You typically activate them at right click, not at the start/init of a form, rather use a secondary form, if you want more than a context menu and call that in form.show() when that method runs for the first time.

Rather use the oop menu project from vfpx at codeplex or perhaps try the menu generator of foxpro, in the "Other" tab of the project manager create a new menu, choose a shortcut and then create the items. While in the menu designer choose "Generate" from the menu menu to create an MPR, which is program code to define a popup menu.

A very simplistic result of this comarable to your first try then is:

DEFINE POPUP shortcut SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR 1 OF shortcut PROMPT "item1"
DEFINE BAR 2 OF shortcut PROMPT "item2"

ACTIVATE POPUP shortcut

This creates the popup/shortcut/context menu at the mouse position.

Bye, Olaf.
0
 
LVL 42

Assisted Solution

by:pcelba
pcelba earned 250 total points
ID: 33554365
You may display any popup in a Combo on any form:
DEFINE POPUP shortcutX
Define bar 1 of ShortcutX Prompt "Item 1" 
Define bar 2 of ShortcutX Prompt "Item 2"
Define bar 3 of ShortcutX Prompt "Item 3"

frmMyForm = CREATEOBJECT('Form')

frmMyForm.Width  = 450
frmMyForm.Height   = 100
frmMyForm.Caption  = "Popup Example"
frmMyForm.AutoCenter =.T.
frmMyForm.AddObject("cmdClose","cmdCloseButton")
frmMyForm.AddObject("CmbPopup","cmbPopupCombo")
frmMyForm.SHOW       && Display the form
READ EVENTS        && Start event processing

RELEASE POPUP shortcutX

DEFINE CLASS cmbPopupCombo AS ComboBox
  Left   = 10    && Left edge of button
  Top    = 10     && Position for top of button
  Height   = 20     && Button height
  RowSourceType = 9
  RowSource = 'shortcutX'
  Visible  = .T.    && Show button on form
  
  PROCEDURE Valid
    WAIT WINDOW THIS.Value + " selected" TIMEOUT 0.5
ENDDEFINE

DEFINE CLASS cmdCloseButton AS CommandButton 
  Caption  = "\<Close"   && Caption on command button
  Left   = 175    && Left edge of button
  Top    = 60     && Position for top of button
  Height   = 25     && Button height
  Visible  = .T.    && Show button on form
  FontItalic = .T.    && Turn on italic text
  ForeColor  = RGB(0,0,255) && Change button text color
  PROCEDURE Click
  CLEAR EVENTS     && Stop event processing
ENDDEFINE

Open in new window

0
 
LVL 35

Author Closing Comment

by:Nirmal Sharma
ID: 33736756
Thanks!
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Visual FoxPro (short VFP) is a programming language with it’s own IDE and database, ranking somewhat between Access and VB.NET + SQL Server (Express). Product Description: http://msdn.microsoft.com/en-us/vfoxpro/default.aspx (http://msd…
When it comes to protecting Oracle Database servers and systems, there are a ton of myths out there. Here are the most common.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question