Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 23:39   #1
alexvav
Форумчанин
 
Регистрация: 23.11.2006
Сообщений: 152
По умолчанию Вызов процедуры в процедуре

Подскажите, кто знает.
Есть некая процедура, например:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 DBGrid1.Columns[1].Width:=250;
 DBGrid1.Columns[4].Width:=200;
end;
Могу ли я в любой другой процедуре написать например:

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
<какой-то  код И...>
procedure TForm1.Button1Click(Sender: TObject);
end;
т.е. при нажатии на вторую кнопку, выполнялось действие, которое прописано на первую кнопку БЕЗ копирования всего кода.

Спасибо.
alexvav вне форума Ответить с цитированием
Старый 17.02.2011, 23:55   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Да можно вызывать:

Код:

var
 a,b,c:integer;

Procedure Sum;
begin
c:=a+b;
end;

Procedue Buttom1Click(Sender:Tobject);
begin
a:=5;b:=10;
Sum; //вызываем процедуру
ShowMessage(IntToStr(c)); //выводим полученное значение С
end;
Если вас интересует вызов нажатие одной кнопки из другой то, это тоже можно, но тооько чуть по другому:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 DBGrid1.Columns[1].Width:=250;
 DBGrid1.Columns[4].Width:=200;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//какой-то код
Button1.click; //У кнопок есть метод click который позволяет нажать на кнопку
{Но можно и
Button1Click(Self);}
end;

Последний раз редактировалось Человек_Борща; 18.02.2011 в 00:09.
Человек_Борща вне форума Ответить с цитированием
Старый 18.02.2011, 01:42   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

чуть чуть дополню
можно и параметры посылать
на коленке
Код:
procedure NewProcedure(a:string; b:integer; c:TObject;);
begin
  a := a + IntToStr(5 + 5) + 'Hello'; // = Hi10Hello
  b := b*7;  // 21
  Timage(c).Left := 100; // Image1 переместица на позицию 100
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
begin
  ...
  str := 'Hi';
  NewProcedure(str, 3, Image1);
end;
проверено
Код:
function TForm1.NewFunction(a:string ):Boolean;
begin
  if Length(a) > 0 then NewFunction := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ...
  if NewFunction('проверка') = True then ShowMessage('OK');
end;
VirusN13

Последний раз редактировалось ArtGrek; 18.02.2011 в 03:30.
ArtGrek вне форума Ответить с цитированием
Старый 18.02.2011, 13:07   #4
alexvav
Форумчанин
 
Регистрация: 23.11.2006
Сообщений: 152
По умолчанию

Человек_Борща, спасибо за Button1.click (как я мог упустить!). В моём случае это самый подходящий вариант, потому что надо выполнить не просто переменную, а последовательность действий раннее уже описанных.
alexvav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование процедуры в другой процедуре (хм .. или метода?)...?? newprog12 Общие вопросы Delphi 4 11.01.2010 00:45
Вызов процедуры. Leo20 Общие вопросы Delphi 11 23.11.2009 16:30
Вызов процедуры igbizon Общие вопросы Delphi 5 02.09.2008 10:44
Вызывание процедуры в другой процедуре Dura4ok Общие вопросы Delphi 7 22.01.2008 19:45
Вызов процедуры Илья Кибель Помощь студентам 7 17.09.2007 19:43