![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процедуры и функции [D7, XP]
annn © (2007-04-02 16:36:00)Люди помогите разобраться. Прочему в procrdure mmm
Button2.Click; работает только так Form1.Button2.Click;
Вопрос: как сделать чтобы всё было норамльно
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure mmm;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure mmm;
begin
Button2.Click;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
mmm;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Color:=clred;
end;
end.
SergGG (2007-04-03 09:16:00) [1]> annn (02.04.07 16:36)
Если Вам надо, чтобы при нажатии кнопки Button1 выполнялось событие Button2Click (т.е. "нажималась" кнопка Button2), можно сделать намного проще:
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Color:=clred;
end;
end.
А для Button2 - необходимо в инспекторе обьектов на событие OnClick установить Button1Click
Ega23 (2007-04-02 17:29:00) [2]
> Да нет, Click у TButton именно так и вызывается. И не имеет
> параметра(ов)....
Хм.. Гляди-ка... В натуре такой метод есть... А в качестве Sender'а онЮ конечно же, себя подставляет...
{RASkov} (2007-04-02 17:25:00) [3]> [11] Ega23 © (02.04.07 17:20)
> Очевидно по тому, что метод Click выглядит несколько не
> так. И имеет параметр.
Да нет, Click у TButton именно так и вызывается. И не имеет параметра(ов)....
но [4] в силе. Для автора вопроса конечно-ж.
{RASkov} (2007-04-02 17:23:00) [4]> [10] annn (02.04.07 17:11)
А где теперь вызов твоей mmm?
Ega23 (2007-04-02 17:20:00) [5]Очевидно по тому, что метод Click выглядит несколько не так. И имеет параметр.
Рекомендую ещё раз внимательно ознакомиться с постом [4]
annn (2007-04-02 17:11:00) [6]А почему так не работает???
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure mmm;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.mmm;
begin
button2.click;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Color:=clred;
end;
end.
Ega23 (2007-04-02 17:00:00) [7]
> Ну подскажите пожалуйста, просто горит, я непремнно прочитаю
"Утром деньги - вечером стулья."
{RASkov} (2007-04-02 16:59:00) [8]> Нажми, в описании метода Формы - mmm, кнопки Ctrl+Shift+C....
Ну да и получится [6] :)
{RASkov} (2007-04-02 16:58:00) [9]> [0] annn (02.04.07 16:36)
Не удачный вопрос с неудачным примером... Что нужно то в итоге?
Пример написанный почти рабочий, но бессмысленный..
А вообще это не должно скомпилится.
Метода одного не хватает. Т.н. его реализации. Нажми, в описании метода Формы - mmm, кнопки Ctrl+Shift+C....
SergGG (2007-04-02 16:57:00) [10]
procedure TForm1.mmm;
begin
Button2.Click;
end;
annn (2007-04-02 16:56:00) [11]Ну подскажите пожалуйста, просто горит, я непремнно прочитаю
Ega23 (2007-04-02 16:46:00) [12]
> А как же тогда написать процедуру потому что много в когде
> нужно
> переделывать везде form1 приписывать? with form1 do begin
> ````````
> тоже что то не помогает
>
Начать следует с книжки. Сначала - простой. Потом - посложнее. Разобраться с тем, что такое область видимости процедур(функций) и переменных. Потом понять, что такое класс и что такое его метод и чем метод отличается от процедуры.
annn (2007-04-02 16:43:00) [13]annn:=Alll
Alll (2007-04-02 16:41:00) [14]А как же тогда написать процедуру потому что много в когде нужно
переделывать везде form1 приписывать? with form1 do begin
````````
тоже что то не помогает
Ega23 (2007-04-02 16:38:00) [15]Потому, что procedure TForm1.Button2Click(Sender: TObject); не является процедурой, а является методом класса TForm1. А Button2 является полем класса TForm1.