![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое создание компонентов. [D7]
Владимир_К © (2006-04-02 09:36:00)Здравствуйте, подскажите ответ на такой вопрос. Создаю динамически панель, а на ней кнопку SpeedButton. Таких панелей с кнопками в зависимости от ситуации может быть разное количество. Обработчиком для нажатия всех кнопок является B.OnClick:=Form1.Informacia. Подскажите как создать динамически обработчик для каждой созданной кнопки.
procedure TForm1.UserConnect;
var
B:TSpeedButton;
G:TGroupBox;
Informacia:TNotifyEvent;
begin
//Создание панельки под кнопку.
G:=TGroupBox.Create(Form1);
G.Parent:=Form1.ScrollBox1;
G.Caption:=ImiaKomp;
ButtonCoordinat; //Получение координат.
G.Height:=H;
G.Left:=L;
G.Top:=T-ScrollBox1.VertScrollBar.Position;
G.Width:=W;
//Создание кнопки.
B:=TSpeedButton.Create(Form1);
B.Parent:=G;
B.OnClick:=Form1.Informacia;
B.Glyph.LoadFromFile('компьютер.bmp');
B.Height:=73;
B.Left:=5;
B.Top:=15;
B.Width:=90;
end;
Юрий Зотов (2006-04-02 12:18:00) [21]Что значит "динамически создать обработчик"?
Динамически назначить- это понятно (в Вашем коде так и делается: B.OnClick:=Form1.Informacia, только Form1 уберите), а вот что значит "динамически создать"?
Обработчик события - это метод класса. То есть, определенный машинный код, кусок программы. Вы хотите, чтобы программа сама создала кусок свего же кода?
Вообще говоря, это сделать можно, но без уверенного знания ассемблера и машинных команд за такую задачу лучше даже и не браться. Начинающим такие штучки явно не по зубам, да и НЕначинающим они мало кому по зубам.