Форум: "Основная";
Текущий архив: 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