Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

Как мне нескольким Tbutton одним описанием присвоть событие OnCli   Найти похожие ветки 

 
FragMan   (2004-06-04 10:59) [0]

Может кто знает как мне помоч! буду признателен!

Прблема заключается в том, что у меня есть frame в котором хранится большая куча Tbutton штук 150 их там, так вот
они все должны выполнять одно действие, а именно содержащиеся на них картинки передавать на форму и всё... Если я начну описывать действие над каждой кнопкой, то это до потери пулься можно будет сидеть и щёлкать мышью.

А моет кто подскажет, как мне нескольким Tbutton одним описанием присвоть событие OnClick ???

Может кто идеи подбросил дельные?


 
Романов Р.В. ©   (2004-06-04 11:05) [1]

Назначаешь событие первой кнопке.
В Object Inspector для остальных кнопок выбираешь это же событие.


 
FragMan   (2004-06-04 11:10) [2]

> Романов Р.В. ©
Логично конечно, но как мне растолковать программе что картинка нужна другая, а не ода и та же с "Первой кнопки"


 
Тимохов ©   (2004-06-04 11:12) [3]


> FragMan   (04.06.04 11:10) [2]

иными словами как ризличать, какая кнопака вызвала генерацию собитя onclick?
понять это спопосбов масса. Один из них - пользоваться tag у кнопки, по нему и понимать, какая кнопка.


 
FragMan   (2004-06-04 11:16) [4]

> Тимохов ©

А в виде примера можно? Потому что я пока смутно представляю эту картинку


 
Плохиш   (2004-06-04 11:16) [5]


> FragMan   (04.06.04 11:10) [2]
> > Романов Р.В. ©
> Логично конечно, но как мне растолковать программе что картинка
> нужна другая, а не ода и та же с "Первой кнопки"

А прочитать в справке для чего нужен параметр Sender не судьба?


 
Романов Р.В. ©   (2004-06-04 11:17) [6]

Sender - указатель на кнопку. А на кнопке лежит нужная картинка.


 
Тимохов ©   (2004-06-04 11:20) [7]


> Плохиш   (04.06.04 11:16) [5]
> Романов Р.В. ©   (04.06.04 11:17) [6]

во блин, про tag сказал, а про sender забыл :)))

автору
ну пишите типа
case (sender as tbutton).tag of
1: Первая кнопка
2: вторая кнопка.
...

только в инспекторе объектов надо у каждой кнопки поставить уникальный (т.е. не повторяющийся) tag


 
FragMan   (2004-06-04 11:27) [8]

Фантастика!

На форме есть 2 кнопки: Button1 и Button2

События кнопок:

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Caption:="1";
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Button1Click(Sender);
end;

:))) просьба дописать там где надо :) чтобы при нажатии на Button2 form1.Caption присваивалось значение "2" а не "1"


 
Романов Р.В. ©   (2004-06-04 11:33) [9]

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption:=TButton(Sender).Name;
end;

И назначь этот обработчик для обеих кнопок. Как я говорил в Романов Р.В. ©   (04.06.04 11:05) [1]


 
FragMan   (2004-06-04 11:33) [10]

> Тимохов ©

case (sender as tbutton).tag of
1: Первая кнопка
2: вторая кнопка.

Собственно говоря, проще воспользоваться стандартными методами описания, а не через case of их выводить..

----------------
Вопрос состоял в автоматическом определении кнопки от которой поступило событие!

К примеру:

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.image1.Picture:=buttonXXX.image1.Picture;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Button1Click(Sender);
end;


 
Тимохов ©   (2004-06-04 11:36) [11]


> FragMan   (04.06.04 11:33) [10]
> > Тимохов ©


> Вопрос состоял в автоматическом определении кнопки от которой
> поступило событие!

вот именно, что стоял.
на него ответ был дан.
потрудитесь почитать и подумать.


 
KSergey ©   (2004-06-04 11:37) [12]

> [7] Тимохов ©   (04.06.04 11:20)

одно действие, а именно содержащиеся на них картинки передавать - слова автора

Я не пойму зачем вы про tag упорствуете??? (sender as tbutton) - этого достаточно по идее.


 
SergP ©   (2004-06-04 11:37) [13]


> buttonXXX.image1.Picture;


И что это?


 
Тимохов ©   (2004-06-04 11:38) [14]


> KSergey ©   (04.06.04 11:37) [12]

вы читать умеете?


 
KSergey ©   (2004-06-04 11:40) [15]

> [10] FragMan   (04.06.04 11:33)
> К примеру:
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> form1.image1.Picture:=buttonXXX.image1.Picture;
> end;
>
> procedure TForm1.Button2Click(Sender: TObject);
> begin
> Button1Click(Sender);
> end;


Так вы внимательно первый же ответ [1] Романов Р.В. ©   (04.06.04 11:05) прочитать собираетесь??? (Подсказка для танкистов: ключевые слова - это же)


 
KSergey ©   (2004-06-04 11:42) [16]

> [14] Тимохов ©   (04.06.04 11:38)
> вы читать умеете?

По-русски - безусловно.
Только не пойму в чем проблема.


 
SergP ©   (2004-06-04 11:42) [17]

Если уже так, то:

procedure TForm1.Button1Click(Sender: TObject);
var
 Baton:TButton;
begin
 Baton:=TButton(Sender);

 // Теперь в Baton находится указатель на кнопку, которая вызвала эту процедуру...

end;

Надеюсь так понятно?  Хотя об этом уже почти все тебе втирают...


 
FragMan   (2004-06-04 11:43) [18]

Всё, всё! Джентельмены! по койкам!

Тов. Романов Р.В. © - Выражаю благодарность! (наконец-то в этом форуме мне дали хоть один исчерпывающий ответ!)

С П А С И Б О

А остальным! Учитесь уступать и не вредничать :) пупы земли

Всем спасибо, за активную помощь


 
Тимохов ©   (2004-06-04 11:44) [19]


> KSergey ©   (04.06.04 11:42) [16]


про "упорствуете".
я же сказал - один из вариантов.
в учетов [1] внутри с помощью tag понять какая кнопка.


 
KSergey ©   (2004-06-04 11:45) [20]

Ответы здесь почти всегда исчерпывающие
Только:
а) на поставленный вопрос
б) ... (ну вы догадались)


 
KSergey ©   (2004-06-04 11:46) [21]

> [19] Тимохов ©   (04.06.04 11:44)
> я же сказал - один из вариантов.
> в учетов [1] внутри с помощью tag понять какая кнопка.

Да надо ли это автору в его задаче это понимать... Вот о чем я хочу сказать.
Впрочем, ему виднее.


 
Тимохов ©   (2004-06-04 11:47) [22]


> FragMan   (04.06.04 11:43) [18]


> наконец-то в этом форуме мне дали хоть один исчерпывающий
> ответ!)

когда-то давно я также думал - ну наконец-то, дали ответ.
когда подрос, оказалось все проще - понять ответ - тоже навык, причем ох как полезный в жизни :))


 
Тимохов ©   (2004-06-04 11:48) [23]


> KSergey ©   (04.06.04 11:46) [21]


> Да надо ли это автору в его задаче это понимать...

меня это не волнует - здесь не школа :))


 
FragMan   (2004-06-04 12:54) [24]

:) вы это давай те по теме :)))

Может у кого ещё есть предложения??


 
Тимохов ©   (2004-06-04 12:55) [25]

у ме ня е сть - взять и на писать нормально вопрос.
поратить 5 минут времени, написать 10 (можно) продуманных строчек текста с описанием задачи, и получить абсолютно полноценный ответ.

проверте способ, по попыту знаю, страшно помогает.


 
Плохиш   (2004-06-04 12:56) [26]

>FragMan   (04.06.04 12:54) [24]

Напоминает: Чукча не читатель, чукча - писатель :-(


 
NAlexey ©   (2004-06-04 13:40) [27]

>KSergey ©   (04.06.04 11:37) [12]
А где у TButton свойство типа картинка? Нет по моему. Следовательно Tag здесь очень может даже причем.


 
evvcom ©   (2004-06-04 14:17) [28]


> у меня есть frame в котором хранится большая куча Tbutton
> штук 150 их там, ..., а именно содержащиеся
> на них картинки передавать на форму

На TButton действительно нет картинки, но на TBitBtn и TSpeedButton есть. Тогда

procedure TForm1.ButtonClick(Sender: TObject);
begin
 if Sender is TBitBtn then
   image1.Picture.Bitmap := TBitBtn(Sender).Glyph;
 if Sender is TSpeedButton then
   image1.Picture.Bitmap := TSpeedButton(Sender).Glyph;
end;


 
Anatoly Podgoretsky ©   (2004-06-04 14:38) [29]

Ответ по вопросу поступил сразу же первом ответе, остальное бардак.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.032 c
4-1084450714
senator
2004-05-13 16:18
2004.06.20
Отправка факса из программы


1-1086581187
SkyRanger
2004-06-07 08:06
2004.06.20
Запись в файл


4-1084300625
ipavels
2004-05-11 22:37
2004.06.20
Обновить конфигурацию оборудования


1-1086432205
Narayan
2004-06-05 14:43
2004.06.20
a+b=c


1-1086254684
TALLA
2004-06-03 13:24
2004.06.20
Переименование NodeName и Attributes в XML?





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