Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравсвуйте помогите с програмированием в девел некст

Юлия Чикачёва Ученик (211), открыт 1 неделю назад
здравсвуйте мне нужна помощь как сдеалть так чтобы в девел некст при нажатии кнопки наинался прогресс бар и кнопка блокировалась и при окончании она разблокировалась и потом при нажатии на нее она перемещала на другую форму?
2 ответа
бабуин гибонович Просветленный (48677) 1 неделю назад
Здравствуйте! Давайте разберёмся, как реализовать этот функционал в DevelNext. Нам нужно сделать следующее:
1. Добавить кнопку и прогресс-бар на форму.
2. Написать код, который будет запускать прогресс-бар и блокировать кнопку при нажатии на неё.
3. Разблокировать кнопку по завершению прогресса и перемещать на другую форму при повторном нажатии.

Вот пошаговое руководство:

1. **Добавление кнопки и прогресс-бара на форму:**
- Откройте ваш проект в DevelNext.
- Добавьте кнопку и прогресс-бар на вашу форму через палитру компонентов.

2. **Написание кода для кнопки и прогресс-бара:**

В DevelNext используем язык PHP для написания кода. Предположим, что у нас есть:
- Кнопка с идентификатором `myButton`.
- Прогресс-бар с идентификатором `myProgressBar`.

Вот пример кода, который нужно разместить в обработчике нажатия кнопки:
 <?php 
// Получаем доступ к кнопке и прогресс-бару
$button = $this->form("myButton");
$progressBar = $this->form("myProgressBar");

// Обработчик нажатия на кнопку
$button->addActionListener(function () use ($button, $progressBar) {
// Блокируем кнопку
$button->setEnabled(false);

// Запускаем прогресс-бар
for ($i = 0; $i <= 100; $i++) {
// Устанавливаем значение прогресса
$progressBar->setValue($i);
// Задержка для симуляции длительного процесса
usleep(50000); // 0.05 секунды
}

// Разблокируем кнопку после завершения прогресса
$button->setEnabled(true);
// Устанавливаем новый обработчик нажатия, чтобы перейти на другую форму
$button->addActionListener(function () {
// Код для перехода на другую форму
// Предположим, что другая форма называется "NewForm"
$this->form("NewForm")->setVisible(true);
$this->form("CurrentForm")->setVisible(false);
});
});
?>


3. **Запуск и проверка:**

- Запустите ваш проект в DevelNext.
- Нажмите на кнопку и убедитесь, что прогресс-бар начинает заполняться, кнопка блокируется, а затем разблокируется после завершения прогресса. При повторном нажатии кнопка должна переместить вас на другую форму.

Если что-то не работает, убедитесь, что правильно заданы идентификаторы компонентов и что нет ошибок в коде. Если потребуется дополнительная помощь или возникнут вопросы, не стесняйтесь спрашивать!
Рустам Абдрашитов Мыслитель (8488) 1 неделю назад
 using System; 
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors; // Убедитесь, что вы добавили ссылку на DevExpress
using DevExpress.Utils;

namespace YourNamespace
{
public partial class MainForm : XtraForm // Используем XtraForm от DevExpress
{
public MainForm()
{
InitializeComponent();
InitializeCustomComponents();
}

private void InitializeCustomComponents()
{
// Настройка формы
this.Text = "Пример приложения";
this.Size = new Size(300, 200);
this.StartPosition = FormStartPosition.CenterScreen;
this.BackColor = Color.White; // Цвет фона формы

// Создание кнопки в виде плитки
TileControl tileControl = new TileControl
{
Dock = DockStyle.Fill,
BackColor = Color.LightGray,
ItemSize = new Size(200, 100)
};

TileItem tileItem = new TileItem
{
Text = "Начать",
AppearanceItem =
{
Normal =
{
BackColor = Color.LightSkyBlue,
Font = new Font("Segoe UI", 12, FontStyle.Bold),
Options =
{
UseBackColor = true,
UseFont = true
}
}
}
};
tileItem.ItemClick += TileItem_ItemClick;

tileControl.Items.Add(tileItem);
this.Controls.Add(tileControl);

// Создание прогресс-бара
ProgressBarControl progressBar = new ProgressBarControl
{
Location = new Point(50, 120),
Size = new Size(200, 30),
Visible = false,
Properties =
{
ShowTitle = true,
ProgressAnimationMode = ProgressAnimationMode.Circular // Круговой стиль прогресс-бара
}
};

this.Controls.Add(progressBar);
}

private async void TileItem_ItemClick(object sender, TileItemEventArgs e)
{
TileItem tileItem = sender as TileItem;
ProgressBarControl progressBar = (ProgressBarControl)this.Controls[1]; // Получаем прогресс-бар

tileItem.Enabled = false; // Блокировка плитки
progressBar.Visible = true; // Отображение прогресс-бара

await Task.Delay(5000); // Имитация длительной операции (например, 5 секунд)

progressBar.Visible = false; // Скрытие прогресс-бара
tileItem.Enabled = true; // Разблокировка плитки

// Переход на другую форму
Form2 form2 = new Form2();
form2.Show();
this.Hide(); // Скрыть текущую форму
}
}
}
Похожие вопросы