Windows.Forms вместо GraphABC - PascalABC.NET

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

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

Здравствуйте. Решил написать программу. Так как я ещё новичок использовал только известные мне "вещи" и естественно столкнулся с проблемами. Можете написать подобную (простенькую) программу, используя не графику, а формы (кнопочки), а я уж сам пойму, что к чему ().

Самый главный вопрос

: Как сделать так, чтобы таблица по критериям (запускайте программу) состояла из ячеек, на которые можно было бы кликать, и вводить в них текст. Данные же можно было записывать в массив.
Pascal
Вот кое-что нашёл. Написал вот такую программу:
Pascal
При нажатии на кнопку, нас просят ввести текст. После ввода он отображается на кнопке, но возникает проблема. Если не использовать GraphABC, то ввод текста осуществляется через командную строку, но даже так приходиться работать с двумя окнами.

Вопрос: Можно ли сделать так, чтобы данные вводились в одном (первом) окне, не используя GraphABC и командную строку?

Решение задачи: «Windows.Forms вместо GraphABC»

textual
Листинг программы
  1. {$apptype windows}
  2. {$reference 'System.Windows.Forms.dll'}
  3. uses
  4.   System,
  5.   System.Windows.Forms;
  6.  
  7. var
  8.   i: string;
  9.   MyForm: Form;
  10.   But: Button;
  11.   Lab: &Label;
  12.   Txt: TextBox;
  13.  
  14. procedure Click(Sender: Object; Args: System.EventArgs);
  15. begin
  16.   But.Text := Txt.Text; // это сработает при нажатии кнопки
  17. end;
  18.  
  19. procedure kp(Sender : Object; Args : KeyEventArgs);
  20. begin
  21.   if Args.KeyCode = Keys.Enter then // это сработает при нажатии Enter-а в TextBox-е
  22.   begin
  23.     But.Text := (Sender as TextBox).Text;
  24.     Args.SuppressKeyPress := true;
  25.   end;
  26. end;
  27.  
  28. begin
  29.   MyForm := new Form;
  30.   MyForm.text := 'Форма';
  31.   MyForm.Height := 400;
  32.   MyForm.Width := 600;
  33.  
  34.   But := new Button;
  35.   But.Width := 100;
  36.   But.Height := 100;
  37.   But.Left := 250;
  38.   But.Top := 100;
  39.   But.Click += Click;
  40.   MyForm.Controls.Add(But);
  41.  
  42.   Lab := new &Label;
  43.   Lab.text := 'Какая цифра вам больше всего нравиться?';
  44.   Lab.Left := 50;
  45.   Lab.Top := 20;
  46.   Lab.Width := 500;
  47.   Lab.Height := 50;
  48.   MyForm.Controls.Add(Lab);
  49.  
  50.   Txt := new TextBox;
  51.   Txt.Left := 50;
  52.   Txt.Top := 80;
  53.   Txt.KeyDown += kp;
  54.  
  55.   MyForm.Controls.Add(Txt);
  56.   MyForm.ActiveControl := Txt; // устанавливаем фокус на TextBox
  57.  
  58.   Application.Run(MyForm);
  59. end.

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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