Форум: "Основная";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
ВнизМассив компонентов. Найти похожие ветки
← →
Ilya (2002-02-22 16:40) [0]Предположим, что нужно при нажатии на одну из 10(20) кнопок выполнять одно и то же действи отличающееся лишь индексом, например, как в калькуляторе. Как это сделать?
Заранее спасибо.
← →
[NIKEL] (2002-02-22 16:43) [1]пиши один обработчик для всех кнопок, а через Sender будешь получать имя кнопки, и соответственно выполнять действия связанные с этой кнопкой
← →
Counsellor (2002-02-22 16:43) [2]Для этого у компонента есть поле Tag. В него заносим индекс, а обработчик события устанавливать для всех одинаковый и в нем анализировать это поле.
← →
DieHard (2002-02-22 16:44) [3]Укажи в свойстве Tag каждой кнопки уникальное значение и в зависимости от него в общем обработчике делай то, что тебе надо
← →
Vitaly Nevzorov (2002-02-23 16:26) [4]Обычно достаточно просто компоненты назвать например в1..b20? тогда
Procedure TForm1.buttonClick(Sender:TObject);
begin
(sender as TButton).caption:= copy((sender as TButton).name,1,2);
end;
Впрочем никто не мешает создать и массив для выполнений в цикле...
По поводу использования Tag - к сожалению параметер только цифровой, и когда надо действовать согласно 2-3 параметрам то его не достаточно, в имени можно больше передать параметров... А для одного параметра конечно Tag подходит неплохо. Кроме того играясь с именами файлов, в отличие от Tag легко найти нужный компонент, а не только идентифицировать данный, а с tag прийдется в цикле все компоненты крутить.
← →
Ilya (2002-02-23 20:50) [5]>Vitaly Nevzorov
Впрочем никто не мешает создать и массив для выполнений в цикле...
Вот это меня как раз и интересует, только как это сделать?
Что нибудь типа:
b:array [1..10] of TButton;
← →
panov (2002-02-23 21:08) [6]Точно так и есть:
var
b:array [1..10] of TButton;
begin
//Для каждого элемента массива описываешь:
b[n] := TButton.Create(Form1);
b[n].Left :=
b[n].Width :=
b[n].Caption :=
b[n].Parent :=
b[n].OnClick := buttonClick;
Если используешь форму b[n] := TButton.Create( Form1);, то кнопки уничтожать вручную не нужно. Form1 позаботится об этом сам.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c