Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.04.2011, 00:14
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию Общая процедура между формами

Есть две формы. Есть 2 буттона, 1ый на 1ой форме, 2ой на 2ой форме. Как мне сделать для них общий Onclick, т.е., к примеру в первый буттон написать Onclick:=Button1.click, во второй Onclick:=Form1.button1.click (так, конечно не работает, но смысл понятен). Заранее благодарю.
Ответить с цитированием
  #2  
Старый 29.04.2011, 09:20
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

В Form1:
Код:
uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption:='OK!!!!!!!!!!!!!!!!'
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show;
end;

В Form2:
Код:
uses Unit1;

{$R *.dfm}

procedure TForm2.FormShow(Sender: TObject);
begin
Button1.OnClick:=Form1.Button1.OnClick;
end;
Ответить с цитированием
  #3  
Старый 29.04.2011, 21:51
bussianko bussianko вне форума
Прохожий
 
Регистрация: 30.03.2011
Адрес: Bataysk
Сообщения: 7
Версия Delphi: Code Gear 2009
Репутация: 10
По умолчанию

Можно попробовать следующий код:
гдето в начале модуля перед объявлением формы описать такую процедуру:
procedure ButtonClick(Sender: TObject);
после этого в конструкторе формы такой вод код:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  Method: TMethod; 
begin
  Method.Cod:= @ButtonClick;
  Method.Data:= NIL;
  Form1.OnClick:= TNotifyEvent(Method);
  Form2.OnClick:= TNotifyEvent(Method);
end;
Ответить с цитированием
  #4  
Старый 29.04.2011, 22:35
bussianko bussianko вне форума
Прохожий
 
Регистрация: 30.03.2011
Адрес: Bataysk
Сообщения: 7
Версия Delphi: Code Gear 2009
Репутация: 10
По умолчанию

можно попробовать такой код. Сначало в начале модуля необходимо описать проседуру такого вида:

procedure ButonClick(Sender: TObject);

после этого в разделе реализаций:
Код:
procedure ButonClick(Sender: TObject);
{Эта процедура сначала проверяет создана ли Form2 и если нет тогда создаёт её и показывает сообщение и после этого проверяет показана ли Form2 и если нет то показывает иначе прячет}
var
  Mtd: TMethod;
begin
  if not Assigned(Form2) then
  begin
    Mtd.Code:= @ButonClick;
    Mtd.Data:= NIL;
    Form2:= TForm2.Create(Application);
    Form2.OnClick:= TNotifyEvent(Mtd);
  end;
  MessageBox(0, 'Hello World !!!', 'WARRNING', MB_OK);
  if not Form2.Showing then
    Form2.Show
  else
    Form2.Hide;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Method: TMethod;
begin
  Method.Code:= @ButonClick;
  Method.Data:= NIL;
  Form1.OnClick:= TNotifyEvent(Method);
end;
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 02.05.2011 в 19:47.
Ответить с цитированием
  #5  
Старый 03.05.2011, 18:40
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Спасибо, попробую.
Ответить с цитированием
  #6  
Старый 03.05.2011, 19:02
SawA SawA вне форума
Новичок
 
Регистрация: 09.03.2011
Сообщения: 57
Репутация: 10
По умолчанию

в 1 кнопке пропиши
Form2.Button2Click(Self);
и выполнится все то что прописано во второй кнопке
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter