Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-2428
comwad
2003-11-21 12:42
2004.02.02
Как ассоциировать THandle файла в памяти с именем Name: String


3-2026
dimablind
2004-01-09 22:51
2004.02.02
quickreport и число записей


3-1987
Юля П
2004-01-08 16:00
2004.02.02
Запрос с группировкой записей


1-2231
man
2004-01-19 19:49
2004.02.02
как получить список процессов, которые используют данный файл


6-2265
Andersen
2003-11-28 14:18
2004.02.02
Token пользователя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский