|
Вопрос # 6 557/ вопрос решён / |
|
Здравствуйте! Сейчас написал так:
procedure TForm1.Button1Click(Sender: TObject);
//var i: Integer; //глобальная переменная
case i of
1: Memo1.Lines.Add('B'); //
2: Memo2.Lines.Add('B'); //когда будет 2 то 'B' записать в Memo2
3: Memo3.Lines.Add('B'); //
end;
а хочу написать так:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo[i].Lines.Add('B'); //записать 'B' в Memo[i]
end;
Как это сделать правильно?
|
Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 22 августа 2014, 22:37
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Двух способов хватит?
Первый:
var
Memo: array[1..3] of TMemo;
i: Integer; //глобальная переменная
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo[1]:= Memo1;
Memo[2]:= Memo2;
Memo[3]:= Memo3;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo[i].Lines.Add('B'); //записать 'B' в Memo[i]
end;
Второй:
procedure TForm1.Button1Click(Sender: TObject);
var
Memo: TMemo;
begin
Memo:= TMemo(FindComponent('Memo' + IntToStr(i)));
// или Memo:= TMemo(FindChildControl('Memo' + IntToStr(i)));
if Assigned(Memo)
then Memo.Lines.Add('B'); //записать 'B' в Memo[i]
end;
|
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 22 августа 2014, 22:57
Оценка за ответ: 5
Комментарий к оценке: Хватит первого способа. Спасибо.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 23 августа 2014, 18:47; участников в обсуждении: 1.
22 августа 2014, 22:58: Вопрос закрыт (решение принял автор вопроса — zvygin1964): Нашел где почитать, попробую сам.
23 августа 2014, 00:00: Статус вопроса изменён на решённый (изменил автор вопроса — zvygin1964)
|
zvygin1964 (статус: Посетитель), 23 августа 2014, 18:47 [#1]:
Вопрос звучал как: "Массив из компонентов" .
(Это пояснение для поисковика сайта).
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|