Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизНе работают процедуры... Найти похожие ветки
← →
Sergey B (2004-01-20 23:43) [0]Помогите плиз...
Кидаю Label на форму и кнопку, пару раз кликаю на кнопку, Delphi автоматом прописывает
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
...
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Я после begin пишу Label1.Caption:= ("TEST")
Потом F9, все работает..
Но если я просто кидаю на форму Label и кнопку, а
procedure Button1Click(Sender: TObject); и т.д. пишу сам, то не работает...И так с любой процедурой, которую я в ручную пишу, просто не работает и все....В чем проблема???
← →
хз (2004-01-20 23:54) [1]Просто не пиши вручную, вот и вся проблема.
← →
Sergey B (2004-01-21 00:45) [2]А если серьезно?
← →
Германн (2004-01-21 00:53) [3]А вот если ты после этого откроешь Инспектор объектов, выберешь в нем Button1 и назначишь обработчиком события OnClick процедуру Button1Click - обрадуешься. :)))
← →
ЮЮ (2004-01-21 05:35) [4]Когда это делает Delphi, она об этом пишет в dfm :
object Button1: TButton
Left = 72
Top = 64
Width = 75
Height = 25
Caption = "Button1"
TabOrder = 0
OnClick = Button1Click
end
А из того, что ты написал какую-ту процедуру, вовсе не следует, что кто-то будет использовать её в качестве своего обработчика.
Если же хочется назначить обработчика динамически, то в программе следует написать:
Button1.onClick := Button1Click;
этот же обработчик можно назначить и другой кнопке
Button2.onClick := Button1Click;
Если же в коде обработчика следует отличать, кто его вызвал, то следует анализировать параметр Sender.
← →
olookin (2004-01-21 09:26) [5]В оригинале так:
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
...
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Вручную насколько я понял пишется только
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Так вот, надо еще и жирное выделенное вверху написать (разумеется тоже вручную)... И напоследок выбрать в Event кнопки соотв. событие (т.е. привязать написанное к кнопке). Понятно, что проще просто дважды щелкнуть и написать обработчик в возникшей процедуре. Однако если надо написать свою функцию, не привязанную к объектам, то только вручную (еще раз - декларацию процедуры в секции interface, и саму процедуру в секции implementation).
← →
KSergey (2004-01-21 09:31) [6]> [5] olookin © (21.01.04 09:26)
> Однако если надо написать свою функцию, не привязанную
> к объектам, то только вручную (еще раз - декларацию процедуры
> в секции interface, и саму процедуру в секции implementation).
Небольшое уточнение: выделенное только для случая, когда к функции необходимо обраться вне этого модуля. Ну ливо, если это не просто функция, а метод некоего класса - тогда, конечно, в декларации класса (которая, в общем случае, не обязана быть в секции interface).
← →
olookin (2004-01-21 09:34) [7]to KSergey
Я понял вашу мысль. Согласен с ней. С моей стороны тоже уточнение - если процедура находится в динамической библиотеке, то в секции implementation она не нуждается быть прописанной.
← →
Sergey B (2004-01-21 13:47) [8]Всем спасибо за помощь!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c