Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
2-1175254920
Alex_C
2007-03-30 15:42
2007.04.22
При FreeLibrary( hDLL ) основное окно проги пропадает


2-1175744673
Steep
2007-04-05 07:44
2007.04.22
TNotifyEvent


2-1175145472
Pavel Kuznecov
2007-03-29 09:17
2007.04.22
Indy 10 и отлов ошибок


9-1148653751
Shmidt
2006-05-26 18:29
2007.04.22
Помогите мне сделать дрыгающийся прицел


3-1170253237
O.O
2007-01-31 17:20
2007.04.22
Пользователи и пароли в FireBird





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский