Windows.Forms вместо GraphABC - PascalABC.NET
Формулировка задачи:
Здравствуйте. Решил написать программу. Так как я ещё новичок использовал только известные мне "вещи" и естественно столкнулся с проблемами. Можете написать подобную (простенькую) программу, используя не графику, а формы (кнопочки), а я уж сам пойму, что к чему ().
Самый главный вопрос
: Как сделать так, чтобы таблица по критериям (запускайте программу) состояла из ячеек, на которые можно было бы кликать, и вводить в них текст. Данные же можно было записывать в массив.| Pascal |
Вот кое-что нашёл. Написал вот такую программу:
При нажатии на кнопку, нас просят ввести текст. После ввода он отображается на кнопке, но возникает проблема. Если не использовать GraphABC, то ввод текста осуществляется через командную строку, но даже так приходиться работать с двумя окнами.
| Pascal |
Вопрос: Можно ли сделать так, чтобы данные вводились в одном (первом) окне, не используя GraphABC и командную строку?
Решение задачи: «Windows.Forms вместо GraphABC»
textual
Листинг программы
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
uses
System,
System.Windows.Forms;
var
i: string;
MyForm: Form;
But: Button;
Lab: &Label;
Txt: TextBox;
procedure Click(Sender: Object; Args: System.EventArgs);
begin
But.Text := Txt.Text; // это сработает при нажатии кнопки
end;
procedure kp(Sender : Object; Args : KeyEventArgs);
begin
if Args.KeyCode = Keys.Enter then // это сработает при нажатии Enter-а в TextBox-е
begin
But.Text := (Sender as TextBox).Text;
Args.SuppressKeyPress := true;
end;
end;
begin
MyForm := new Form;
MyForm.text := 'Форма';
MyForm.Height := 400;
MyForm.Width := 600;
But := new Button;
But.Width := 100;
But.Height := 100;
But.Left := 250;
But.Top := 100;
But.Click += Click;
MyForm.Controls.Add(But);
Lab := new &Label;
Lab.text := 'Какая цифра вам больше всего нравиться?';
Lab.Left := 50;
Lab.Top := 20;
Lab.Width := 500;
Lab.Height := 50;
MyForm.Controls.Add(Lab);
Txt := new TextBox;
Txt.Left := 50;
Txt.Top := 80;
Txt.KeyDown += kp;
MyForm.Controls.Add(Txt);
MyForm.ActiveControl := Txt; // устанавливаем фокус на TextBox
Application.Run(MyForm);
end.