Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

Процедуры и функции   Найти похожие ветки 

 
annn   (2007-04-02 16:36) [0]

Люди помогите разобраться. Прочему в 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.


 
Ega23 ©   (2007-04-02 16:38) [1]

Потому, что procedure TForm1.Button2Click(Sender: TObject); не является процедурой, а является методом класса TForm1. А Button2 является полем класса TForm1.


 
Alll   (2007-04-02 16:41) [2]

А как же тогда написать процедуру потому что много в когде нужно
переделывать везде form1 приписывать? with form1 do begin
````````
тоже что то не помогает


 
annn   (2007-04-02 16:43) [3]

annn:=Alll


 
Ega23 ©   (2007-04-02 16:46) [4]


> А как же тогда написать процедуру потому что много в когде
> нужно
> переделывать везде form1 приписывать? with form1 do begin
> ````````
> тоже что то не помогает
>


Начать следует с книжки. Сначала - простой. Потом - посложнее. Разобраться с тем, что такое область видимости процедур(функций) и переменных. Потом понять, что такое класс и что такое его метод и чем метод отличается от процедуры.


 
annn   (2007-04-02 16:56) [5]

Ну подскажите пожалуйста, просто горит, я непремнно прочитаю


 
SergGG ©   (2007-04-02 16:57) [6]


procedure TForm1.mmm;
begin
Button2.Click;
end;


 
{RASkov}   (2007-04-02 16:58) [7]

> [0] annn   (02.04.07 16:36)

Не удачный вопрос с неудачным примером... Что нужно то в итоге?
Пример написанный почти рабочий, но бессмысленный..
А вообще это не должно скомпилится.
Метода одного не хватает. Т.н. его реализации. Нажми, в описании метода Формы - mmm, кнопки Ctrl+Shift+C....


 
{RASkov}   (2007-04-02 16:59) [8]

> Нажми, в описании метода Формы - mmm, кнопки Ctrl+Shift+C....

Ну да и получится [6] :)


 
Ega23 ©   (2007-04-02 17:00) [9]


> Ну подскажите пожалуйста, просто горит, я непремнно прочитаю


"Утром деньги - вечером стулья."


 
annn   (2007-04-02 17:11) [10]

А почему так не работает???
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:20) [11]

Очевидно по тому, что метод Click выглядит несколько не так. И имеет параметр.

Рекомендую ещё раз внимательно ознакомиться с постом [4]


 
{RASkov}   (2007-04-02 17:23) [12]

> [10] annn   (02.04.07 17:11)

А где теперь вызов твоей mmm?


 
{RASkov}   (2007-04-02 17:25) [13]

> [11] Ega23 ©   (02.04.07 17:20)
> Очевидно по тому, что метод Click выглядит несколько не
> так. И имеет параметр.

Да нет, Click у TButton именно так и вызывается. И не имеет параметра(ов)....
но [4] в силе. Для автора вопроса конечно-ж.


 
Ega23 ©   (2007-04-02 17:29) [14]


> Да нет, Click у TButton именно так и вызывается. И не имеет
> параметра(ов)....


Хм.. Гляди-ка... В натуре такой метод есть... А в качестве Sender"а онЮ конечно же, себя подставляет...


 
SergGG ©   (2007-04-03 09:16) [15]

>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



Страницы: 1 вся ветка

Текущий архив: 2007.04.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
15-1175070915
Менеджер Ольга
2007-03-28 12:35
2007.04.22
ВАКАНСИЯ


2-1175678391
sergeyst
2007-04-04 13:19
2007.04.22
Версия программы


2-1175581584
sergeyst
2007-04-03 10:26
2007.04.22
Автоматическое обновление


1-1172573346
Choco
2007-02-27 13:49
2007.04.22
Размер кадра видеофайла


2-1175183362
mahab
2007-03-29 19:49
2007.04.22
TImage