예제 #1
0
 public static EditorForm EditFunction(string name, Facade bridge)
 {
     if (s_opened_functions.IndexOf(name) >= 0)
         return null;
     if (!Parser.IsUserID(name)) {
         MessageBox.Show("Неправильное имя функции");
         return null;
     }
     if (IsOpened(name)) {
         MessageBox.Show("Функция уже открыта");
         return null;
     }
     EditorForm ef = new EditorForm();
     ef.m_fasade = bridge;
     ef.m_file = new FileInfo(Directory.GetCurrentDirectory() + @"\subroutines\" + name);
     ef.sbEdit.LoadFile(ef.m_file.FullName);
     ef.m_name = name;
     ef.Text = name;
     s_opened_functions.Add(name);
     return ef;
 }
예제 #2
0
        //****************************************************************************************************
        //Обработчик двойного клика на список функций с ошибками
        private void ErrorFuncListBox_DoubleClick(object sender, EventArgs e)
        {
            //Если не выбрана функция
            if (ErrorFuncListBox.SelectedIndex < 0) return;

            EditorForm ef = EditorForm.EditFunction(ErrorFuncListBox.SelectedItem.ToString(), m_fasade);

            //Ловим ошибку
            if (ef == null) MessageBox.Show("Ошибка при открытии функции", "Ошибка!!!");
            else
            {
                this.Close();
                ef.Show();
                m_last_ef = ef;
            }
        }
예제 #3
0
        //****************************************************************************************************
        //Обработчик нажатия на кнопку Редактировать
        private void Edit_Click(object sender, EventArgs e)
        {
            //Если не выбрана функция
            if (FuncListBox.SelectedIndex < 0)
                return;

            //Создаем редактор тела функции
            EditorForm ef = EditorForm.EditFunction(FuncListBox.SelectedItem.ToString(), m_fasade);            
            if (ef == null) MessageBox.Show("Ошибка при открытии функции", "Ошибка!!!");
            else
            {
                this.Close();
                ef.Show();
                m_last_ef = ef;
            }
        }
예제 #4
0
        //****************************************************************************************************
        //Обработчик нажатия на кнопку Создать
        private void Create_Click(object sender, EventArgs e)
        {
            string name;
            StreamWriter sw = null;

            //Вызываем окно вода имени функции
            if (InputForm.Input("Создать функцию", "Введите имя функции", out name))
            {
                //Если введена пустая строка
                if (name == "")
                {
                    MessageBox.Show("Неправильное имя функции", "Ошибка!!!");
                    return;
                }
                try
                {
                    sw = new StreamWriter(Directory.GetCurrentDirectory() + @"\subroutines\" + name);
                    sw.WriteLine(name + " []");
                }
                finally
                {
                    if (sw != null)
                        sw.Close();
                }

                //Вызываем редактор тела функции
                EditorForm ef = EditorForm.EditFunction(name, m_fasade);

                //Если функция не определена
                if (ef == null)
                {
                    MessageBox.Show("Ошибка при создании функции", "Ошибка!!!");
                    FileInfo fi = new FileInfo(Directory.GetCurrentDirectory() + @"\subroutines\" + name);
                    if (fi.Exists)
                    {
                        fi.Delete();
                    }
                }
                else
                {
                    m_fasade.LoadSub(name);
                    this.Close();
                    ef.Show();
                    m_last_ef = ef;
                }
            }
        }
예제 #5
0
		public void SetLastEditorFormNull() {
			m_last_ef = null;
		}
예제 #6
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (listBox1.SelectedIndex < 0)
         return;
     EditorForm ef = EditorForm.EditFunction(listBox1.SelectedItem.ToString(), m_fasade);
     if (ef == null)
         MessageBox.Show("Ошибка при открытии функции");
     else {
         this.Close();
         ef.Show();
         m_last_ef = ef;
     }
 }
예제 #7
0
 private void button2_Click(object sender, EventArgs e)
 {
     string name;
     StreamWriter sw = null;
     if (InputForm.Input("", "Введите имя функции", out name)) {
         if (name == "") {
             MessageBox.Show("Неправильное имя функции");
             return;
         }
         try {
             sw = new StreamWriter(Directory.GetCurrentDirectory() + @"\subroutines\" + name);
             sw.WriteLine(name + " []");
         }
         finally {
             if (sw != null)
                 sw.Close();
         }
         EditorForm ef = EditorForm.EditFunction(name, m_fasade);
         if (ef == null) {
             MessageBox.Show("Ошибка при создании функции");
             FileInfo fi = new FileInfo(Directory.GetCurrentDirectory() + @"\subroutines\" + name);
             if (fi.Exists) {
                 fi.Delete();
             }
         }
         else {
             m_fasade.LoadSub(name);
             this.Close();
             ef.Show();
             m_last_ef = ef;
         }
     }
 }