Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Процедуры [D6, XP]


Allexandr ©   (2007-02-23 23:47:00) 

Здравствуйте. В моей программе в юните2 есть такая процедура

procedure TForm2.RadioButton2Click(Sender: TObject);
begin
Form1.TransparentColor:=false;
form1.Color:=colordialog1.Color;
end;


Мне нужно вызвать эту процедуру из другой процедуры (вызвать нужно с того же самого второго юнита).
Если в другой процедуре пишу:

TForm2.RadioButton2Click;

то появляется ошибка
[Error] Unit2.pas(60): Not enough actual parameters

Насколько я догадываюсь - этой процедуре нужно передать какой то параметр? Так ли это? И если так - то какой параметр?
Спасибо!


Allexandr   (2007-02-24 00:53:00) [1]


> Идея ясна?


Да, спасибо!
Это намного удобнее :)


Kolan   (2007-02-24 00:47:00) [2]

А вообще по нормльному надо сделать так:

1. Выделить требуемое в отдельную процедуру:
TForm2 = class(TFrom)
public
 procedure DoTransparent;
end;

{…}

procedure TForm2.DoTransparent;
begin
 Form1.TransparentColor:=false;
 form1.Color:=colordialog1.Color;  
end;


И вызывать где надо:
Было:
procedure TForm2.RadioButton1Click(Sender: TObject);
begin
Form1.TransparentColor:=false;
form1.Color:=colordialog1.Color;
end;


Стало:
procedure TForm2.RadioButton1Click(Sender: TObject);
begin
 DoTransparent;
end;


Было:
procedure TForm2.Button2Click(Sender: TObject);
begin
form2.RadioButton1.OnClick(radiobutton1)
end;


Стало:
procedure TForm2.Button2Click(Sender: TObject);
begin
 DoTransparent;
end;


Идея ясна?

Скоме того так как ты обращаешся к Form1,
то DoTransparent;лучьше сделать в Form1

ЗЫ
…


Kolan   (2007-02-24 00:35:00) [3]

«Если в другой процедуре пишу:

TForm2.RadioButton2Click;

то появляется ошибка»

TForm2 писать ненадо, а вот параметры(«Sender: TObject») указать надо.

Например:
RadioButton2Click(S(Self);


Kolan   (2007-02-24 00:35:00) [4]

«(S»

Чертов PuntoSwitcher


Allexandr   (2007-02-24 00:20:00) [5]

Спасибо. Процедура вызвалась:)


vasIZmax   (2007-02-24 00:07:00) [6]

то что я наваял здесь для юнита2
procedure TForm2.RadioButton1Click(Sender: TObject);
begin
Form1.TransparentColor:=false;
form1.Color:=colordialog1.Color;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
form2.RadioButton1.OnClick(radiobutton1)
end;


если я понимаю о чем разговор)))))


Наверх

Титульная страница Поиск, карта сайта Написать письмо