Где найти самоучитель по написанию в модуле FormsABC - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Где найти самоучитель по написанию в модуле FormsABC

Решение задачи: «Где найти самоучитель по написанию в модуле FormsABC»

textual
Листинг программы
  1. #apptype 'windows'//Тип подключаемой системы
  2. #reference 'System.Windows.Forms.dll'//Файл-библиотека
  3.  
  4. uses
  5.   System, System.Windows.Forms;//Типы из библоитек
  6.  
  7. var
  8.   _form: Form;//Переменная формы
  9.   _textbox: TextBox;//Переменная окна ввода
  10.   AddHead, RemHead: Button;//Переменные для кнопок
  11.   arr: array[1..1000] of TextBox;//Массив обьектов, графически представляющих этек
  12.   n: integer := 0;//Количество текущих обьектов стека на экране
  13.  
  14. procedure _AddStart(sender: object; e: EventArgs);//Процедура добавления обьекта в начало стека
  15. begin
  16.   _textbox.Focus;//Установка мигающего курсора в окно вводда
  17.   if n = 36 then EXIT;//Если превышено число обьектов на экране, то процедура прерывается
  18.  
  19.   for var i := n downto 1 do//Циклическое смещение обьектов вправо
  20.   begin
  21.     arr[i + 1] := arr[i];//Смещение в массиве
  22.     arr[i + 1].Left := arr[i + 1].Left + 30;//Смещение на экране
  23.   end;
  24.   if n >= 18 then//Если не умещается на одну строку, то обьект, создающий конфликт элемент перемещается вручную вниз
  25.   begin
  26.     arr[19].Top := 70;//Отступ сверху
  27.     arr[19].Left := 30;//Отступ слева
  28.   end;
  29.   arr[1] := new System.Windows.Forms.TextBox;//Выделение памяти под ноый обьект
  30.   arr[1].Text := _textbox.Text.ToString;//Текст из окна ввода копируется в окошко текста, представляющего ячейку стека
  31.   arr[1].Enabled := false;//Запрещаем писать в окошке текста, представляющего ячейку стека
  32.   arr[1].Width := 20;//Ширина обьекта
  33.   arr[1].Top := 20;//Отступ сверху
  34.   arr[1].Left := 30;//Отступ слева
  35.  
  36.   _form.Controls.Add(arr[1]);//Добавляем его на форму
  37.   _textbox.Text := '';//Очищаем окошко ввода
  38.   Inc(n);//Увеличиваем счетчик кол-ва элементов стека
  39. end;
  40.  
  41. procedure _RemHead(sender: object; e: EventArgs);//Процедура удаления обьекта из начала стека
  42. begin
  43.   if n = 0 then EXIT;//Если элементов нет, то процедура прерывается
  44.   arr[1].Dispose;//Удаляем элемент из головы стека и с формы
  45.   Dec(n);//Уменьшаем счетчик кол-ва элементов стека
  46.   for var i := 1 to n do//Смещаем все обьекты влево на 1 позицию
  47.   begin
  48.     arr[i] := arr[i + 1];//Смещаем в массиве
  49.     arr[i].Left := arr[i].Left - 30;//Смещаем на экране
  50.   end;
  51.   if n >= 18 then //Если имело место быть переполнение, то откатываем его "ручным" спомобом
  52.   begin
  53.     arr[18].Top := 20;//Отступ сверху
  54.     arr[18].Left := 30 * 18;//Отступ слева
  55.   end;
  56.   arr[n + 1] := nil;//Очищаем элемент, следующий за последним элементом, так как имело место смещение влево
  57.  
  58. end;
  59.  
  60. begin
  61.   //Создание формы
  62.   _form := new Form();//Выделение памяти
  63.   _form.Width := 600;//Ширина
  64.   _form.Height := 200;//Высота
  65.  
  66.   //Создание окна ввода контента
  67.   _textbox := new TextBox();//Выделение памяти
  68.   _textbox.Left := 0;//Отступ слева
  69.   _textbox.Top := 138;//Отступ сверху
  70.   _textbox.Width := 150;//Ширина
  71.  
  72.   //Создание кнопки для управления добавлением элементов в стека
  73.   AddHead := new System.Windows.Forms.Button();//Выделение памяти
  74.   AddHead.Left := 151;//Отступ слева
  75.   AddHead.Top := 138;//Отступ сверху
  76.   AddHead.Text := 'Add Head';//Надпись на кнопке
  77.  
  78.   //Создание кнопки для управления удалением элементов из стека  
  79.   RemHead := new System.Windows.Forms.Button();//Выделение памяти
  80.   RemHead.Left := 225;//Отступ слева
  81.   RemHead.Top := 138;//Отступ сверху
  82.   RemHead.Text := 'Rem Head';//Надпись на кнопке
  83.  
  84.   //Программирование обработчиков событий нажатия на кнопки
  85.   AddHead.Click += _AddStart;//Добавление в стек
  86.   RemHead.Click += _RemHead; //Удаление из стека
  87.  
  88.   //Добавление на форму объектов, описанных выше
  89.   _form.Controls.Add(_textbox);//Добавление на форму окна ввода
  90.   _form.Controls.Add(AddHead);//Добавление на форму кнопки добавления
  91.   _form.Controls.Add(RemHead);//Добавление на форму кнопки удаления
  92.   _form.Controls.Add(arr[1]);//Добавление на форму не помню чего.
  93.   Application.Run(_form);//Запуск формы
  94. end.

Объяснение кода листинга программы

  1. Объявление переменных и кнопок:
    • _form: Form;
    • _textbox: TextBox;
    • AddHead, RemHead: Button;
    • arr: array[1..1000] of TextBox;
    • n: integer := 0;
  2. Процедура добавления элемента в начало стека (_AddStart):
    • Перемещение фокуса на окно ввода.
    • Проверка, не превышает ли количество элементов 36.
    • Циклическое смещение элементов вправо.
    • Если на экране не умещается 18 элементов, то элемент, создающий конфликт, перемещается вниз вручную.
    • Выделение памяти под новый элемент.
    • Копирование текста из окна ввода в новый элемент.
    • Запрет записи в новый элемент.
    • Установка ширины нового элемента.
    • Добавление нового элемента на форму.
    • Очистка окна ввода.
    • Увеличение счетчика количества элементов.
  3. Процедура удаления элемента из начала стека (_RemHead):
    • Проверка, нет ли элементов в стеке.
    • Удаление элемента из головы стека и с формы.
    • Уменьшение счетчика количества элементов.
    • Смещение всех элементов влево на 1 позицию.
    • Если было смещение влево, то откатываем его ручным способом.
    • Очистка элемента, следующего за последним элементом.
  4. Создание формы:
    • Выделение памяти под форму.
    • Установка ширины и высоты формы.
  5. Создание окна ввода контента:
    • Выделение памяти под окно ввода.
    • Установка координат окна ввода.
  6. Создание кнопок для управления добавлением и удалением элементов:
    • Выделение памяти под кнопки.
    • Установка текста на кнопках.
    • Установка обработчиков событий нажатия на кнопки.
  7. Добавление объектов на форму:
    • Добавление окна ввода, кнопок и неизвестного объекта на форму.
  8. Запуск формы:
    • Запуск формы с помощью метода Application.Run().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы