Главная страница
    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.004 c
3-32407
Mirovodin
2002-02-11 12:23
2002.03.11
Использование ADO


1-32442
AlexPro!
2002-02-22 14:09
2002.03.11
Опять про Memo !!!!!!!!!!!!


3-32421
KMM
2002-02-06 12:22
2002.03.11
Уважаемые Мастера, вопрос по SQL...


6-32526
Olfi
2001-12-23 19:15
2002.03.11
Нужен help по компоненту NMSMTP1


6-32532
Dok_3D
2001-12-24 08:04
2002.03.11
COM+





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский