Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Как мне нескольким 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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.021 c
14-1085047439
Тумар
2004-05-20 14:03
2004.06.20
Страшная история, но мне нужен совет


14-1086168388
Nick-from
2004-06-02 13:26
2004.06.20
Как математически записать, что n предметов


8-1081227114
freeek
2004-04-06 08:51
2004.06.20
Нарисовать на картинке


14-1085942124
RealRascal
2004-05-30 22:35
2004.06.20
Наши в Mathcad?


1-1086258035
nitro
2004-06-03 14:20
2004.06.20
Сохранение в файл jpg все что находится в Groupbox ?