MapInfo Pro Developers User Group

 View Only
  • 1.  Implementing legacy style picker controls in .NET?

    Posted 07-13-2024 14:54

    We are converting some of our MapBasic forms using .NET. 

    Is there a way to replicate the standard MapInfo PenPicker and BrushPicker controls in the .NET form world?



    ------------------------------
    Jay Russell
    Lead Systems Analyst
    CENTERPOINT ENERGY RESOURCES
    Houston TX
    ------------------------------


  • 2.  RE: Implementing legacy style picker controls in .NET?

    Posted 07-13-2024 15:17

    I did like this, hope this helps

     

    private void butSetSymStart_Click(object sender, EventArgs e)

            {

                miSymbol sym = new miSymbol();

                sym.setSymbolStyle(rwNet.P2PStartSym);

                _application.RunMapBasicCommand("run menu command " + dotNetMap.mapinfo.M_FORMAT_PICK_SYMBOL);

                sym.setSymbolPropertiesFromCurrent();

                rwNet.P2PStartSym = sym.makeSymbolCommand;

            }

     

     

    Note M_FORMAT_PICK_SYMBOL = 503   I had setup as defines.

     

    I had create a class

     

    namespace dotNetMap

    {

        public interface ImiSymbol

        {

            Int32 Symbol

            {

                get;

                set;

            }

     

            Int32 Colour

            {

                get;

                set;

            }

     

            Int32 Size

            {

                get;

                set;

            }

     

            Int32 shapeFromCurrent

            {

                get;

            }

     

            Int32 sizeFromCurrent

            {

                get;

            }

     

            Int32 colourFromCurrent

            {

                get;

            }

     

            string makeSymbolCommand

            {

                get;

                set;

            }

     

        }

       

        public class miSymbol : mapinfo, ImiSymbol

        {

            internal Int32 m_Shape = 0;

            internal Int32 m_Colour = 0;

            internal Int32 m_Size = 0;

     

            internal string m_MakeSymbolCommand = string.Empty;

     

           

            public string makeSymbolCommand

            {

                set

                {

                    m_MakeSymbolCommand = value;

                }

                get

                {

                    return m_MakeSymbolCommand;

                }

            }

     

            public Int32 Symbol

            {

                get

                {

                    return m_Shape;

                }

                set

                {

                    m_Shape = value;

                }

            }

     

            public Int32 Colour

            {

                get

                {

                    return m_Colour;

                }

                set

                {

                    m_Colour = value;

                }

            }

     

            public Int32 Size

            {

                get

                {

                    return m_Size;

                }

                set

                {

                    m_Size = value;

                }

            }

     

            public Int32 shapeFromCurrent

            {

                get

                {

                    string command = string.Format(@"StyleAttr(CurrentSymbol(),{0})", SYMBOL_CODE);

                    Int32 shape = Convert.ToInt32(Eval(command));

                    return shape;

                }

            }

     

            public Int32 sizeFromCurrent

            {

                get

                {

                    string command = string.Format(@"StyleAttr(CurrentSymbol(),{0})", SYMBOL_POINTSIZE);

                    Int32 size = Convert.ToInt32(Eval(command));

                    return size;

                }

            }

     

            public Int32 colourFromCurrent

            {

                get

                {

                    string command = string.Format(@"StyleAttr(CurrentSymbol(),{0})", SYMBOL_COLOR);

                    Int32 colour = Convert.ToInt32(Eval(command));

                    return colour;

                }

            }

        

            public void setSymbolPropertiesFromCurrent()

            {

                m_Shape = shapeFromCurrent;

                m_Size = sizeFromCurrent;

                m_Colour = colourFromCurrent;

     

                m_MakeSymbolCommand = string.Format("makesymbol({0},{1},{2})", m_Shape, m_Colour, m_Size);

     

                //setSymbolStyle();

            }

     

            public void setSymbolStyle()

            {

                string command = string.Format("Set style symbol makesymbol({0},{1},{2})", m_Shape, m_Colour, m_Size);

                Do(command);

            }

     

            public void setSymbolStyle(Int32 symbol, Int32 colour, Int32 size)

            {

                m_Shape = symbol;

                m_Colour = colour;

                m_Size = size;

     

                setSymbolStyle();

            }

     

            public void setSymbolStyle(string makeSymbol)

            {

                m_MakeSymbolCommand = makeSymbol;

                setSymbolStyleFromCommand();

            }

     

            public void setSymbolStyleFromCommand()

            {

                Do("Set style symbol " + m_MakeSymbolCommand);

            }

        }

    }