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; }
//**************************************************************************************************** //Обработчик двойного клика на список функций с ошибками 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; } }
//**************************************************************************************************** //Обработчик нажатия на кнопку Редактировать 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; } }
//**************************************************************************************************** //Обработчик нажатия на кнопку Создать 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; } } }
public void SetLastEditorFormNull() { m_last_ef = null; }
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; } }
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; } } }