![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
процедура для обработки нажатия любой кнопки на форме [D7]
dimokis © (2012-03-05 17:16:00)Вот какая проблемка. Есть форма с 726 кнопками(битбтн) (реализована через tabsheet ). Caption'ы прописываются программно из БД. Как-то неохота прописывать на такое кол-во кнопок онбаттонклик на каждую. Можно ли как-то сделать так, что-бы при клике на любую кнопку запускалась процедура и записывала значение caption нажатой кнопки в переменную?
Я чайник, и даже не представляю откуда начинать думать, чтобы придумать решение.
Спасибо всем заранее.
oldman (2012-03-06 14:55:00) [1]
> Категорий блюд и напитков 18.
> Сделал 21 вкладку(категории) разновидностей блюд.
А почему не 18 вкладок?
Ega23 (2012-03-06 11:08:00) [2]
> Или TDrawGrid
К сабжу не относится, но... Не могу объяснить почему, но дико невзлюбил данный конторол. вот просто жуткое отвращение вызывает.
Не могу объяснить. :)
Amoeba_ (2012-03-06 11:05:00) [3]
> Ega23 © (06.03.12 10:26) [11]
>
>
> > Вот вам и 735+1 кнопка.
>
>
> Или всего один TPaintBox
Или TDrawGrid
Ega23 (2012-03-06 10:26:00) [4]
> Вот вам и 735+1 кнопка.
Или всего один TPaintBox
> Устраивает всех.
Это не означает, что сделано хорошо и грамотно.
> плюнул, решил что быстрее набросать программку автоматизирующую
> ввод текста, и через 5 минут все было введено.
Б-же мой. Узнаю себя лет так 12-13 назад.
procedure TForm1.OnCreate(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do
if (Components[i] is TButton) and
TButton(Components[i]) ... then
TButton(Components[i]).OnClick := ...;
end;
oldman (2012-03-06 09:59:00) [5]
> Наименований блюд и напитков около 400.
> Категорий блюд и напитков 18.
> Сделал 21 вкладку(категории) 3 ряда по 7, на каждой по 35
> разновидностей блюд.
> Вот вам и 735+1 кнопка.
Combobox отменили????
Вот гады!!!!
Inovet (2012-03-05 22:59:00) [6]> [8] dimokis (05.03.12 22:15)
> Ламер (чайник)
ламер
1) "чайник", исполненный самомнения
ComputerSlang (Ru-Ru) (к версии ABBYY Lingvo x5 ME)
dimokis (2012-03-05 22:15:00) [7]Кщд
Пробовал сначала через FindComponent, не смог подобрать правильного синтаксиса, плюнул, решил что быстрее набросать программку автоматизирующую ввод текста, и через 5 минут все было введено.
По поводу болезненной реакции - я обратился за помощью, именно потому, что чайник, в чем признался сразу, рассчитывая получить совет а не напоминание о моем статусе.
Ламер (чайник)
(от англ. lame – "слабак")
"Ламер" – это прозвище, которым люди, претендующие на продвинутость в компьютерном деле, именуют тех, кто, по их мнению, плохо в этом разбирается.
-из словаря тындекса
Я и не возражаю, c Delphi знаком всего две недели и то только в свободное от работы время.
Может, во мне дремлет великий програмер? :)
Кщд (2012-03-05 21:51:00) [8]>dimokis (05.03.12 18:44) [4]
>Спасибо еще раз, мужики, Вы сэкономили мне кучу времени и дурной рутинной работы!
btn1.OnClick := MyOnClick;
btn2.OnClick := MyOnClick;
// ..
btn256.OnClick := MyOnClick;
так и сделали?)
или таки через FindComponent, Components[]?
QAZ всего лишь повторил Ваши слова: судя по вопросу, Вы, действительно, "чайник", что не страшно, ибо все были; судя по болезненной реакции - воинствующий ламер, что тоже не страшно, но грустно и нелепо.
dimokis (2012-03-05 20:22:00) [9]QAZ
Молодца, сострил в стиле лучших юмористов!
Парирую: есть задача написания проги (фронт офис) под ресторан. Наименований блюд и напитков около 400.
Категорий блюд и напитков 18.
Сделал 21 вкладку(категории) 3 ряда по 7, на каждой по 35 разновидностей блюд.
Интерфейс под тачскрин 800х600.
На первое место ставлю удобство работы персонала.
Вот вам и 735+1 кнопка.
С одного экрана доступ сразу ко всему ассортименту без лишних движений.
Устраивает всех.
QAZ, огромное Вам спасибо за столь дельный комментарий!
Высший delphi-пилотаж!
QAZ (2012-03-05 18:45:00) [10]
> Есть форма с 726 кнопками
> Я чайник
несомненно...
dimokis (2012-03-05 18:44:00) [11]Все сработало.
Спасибо еще раз, мужики, Вы сэкономили мне кучу времени и дурной рутинной работы!
dimokis (2012-03-05 17:47:00) [12]Германн
AV
Спасибо ОГРОМНОЕ, буду пробовать.
AV (2012-03-05 17:35:00) [13]type
TForm1 = class(TForm)
btn1: TButton;
btn2: TButton;
btn3: TButton;
btn256: TButton;
procedure FormCreate(Sender: TObject);
private { Private declarations }
procedure MyOnClick(Sender: TObject);
public { Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
btn1.OnClick := MyOnClick;
btn2.OnClick := MyOnClick;
// ..
btn256.OnClick := MyOnClick;
end;
procedure TForm1.MyOnClick(Sender: TObject);
begin
ShowMessage( TButton(sender).Caption);
end;
Германн (2012-03-05 17:24:00) [14]Всем кнопкам прописать одну и ту же процедуру OnClick.