Главная страница
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.115 c
1-1172667708
kyn66
2007-02-28 16:01
2007.04.22
Работа с архивами


15-1174584158
tesseract
2007-03-22 20:22
2007.04.22
суббота и пиво


15-1174976654
Post_
2007-03-27 10:24
2007.04.22
Целесообразно ли...


2-1175161127
Alex7
2007-03-29 13:38
2007.04.22
Как взять данные DataSet в Clipbord, чтобы вставить в Excel


4-1164645015
Альберт
2006-11-27 19:30
2007.04.22
получение хэндла окна из TShellExecuteInfo