Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.019 c
1-32513
Геральт
2002-02-24 22:58
2002.03.11
Работа с OLE контейнером


7-32586
Корса
2001-12-04 13:10
2002.03.11
Потоки... HELP !


1-32463
FELLINI
2002-02-21 04:15
2002.03.11
Можно ли использовать математ. формулы в Delphi


1-32510
Лана Розанова
2002-02-25 12:01
2002.03.11
DDE


7-32587
wHammer
2001-11-30 13:05
2002.03.11
Speaker





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский