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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 09:48   #1
bookkc
Форумчанин
 
Регистрация: 16.05.2009
Сообщений: 199
По умолчанию 2 Формы Delphi

Есть одна форма, на ней КУЧА процедур и функций, я создал другую форму, как сделать так что бы нопка на форме №2 вызывала процедуру с первой формы?
bookkc вне форума Ответить с цитированием
Старый 10.10.2010, 09:51   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну, в Unit2 сделай так:
Код:
uses unit1;
А потом вызывай так:
Код:
Form2.Button1Click(Sender:TObject);
Begin
        Form1.Имяпроцедуры;
End;
_-Re@l-_ вне форума Ответить с цитированием
Старый 10.10.2010, 09:52   #3
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Цитата:
Сообщение от bookkc Посмотреть сообщение
Есть одна форма, на ней КУЧА процедур и функций, я создал другую форму, как сделать так что бы нопка на форме №2 вызывала процедуру с первой формы?
Ну, например:

Код:
Form2.Button1Click(Sender:TObject);
begin
   Form1.{Имя процедуры};
end;
Код:
uses unit1;
Можно и проще сделать...

Последний раз редактировалось vasek123; 10.10.2010 в 09:55.
vasek123 вне форума Ответить с цитированием
Старый 10.10.2010, 10:04   #4
bookkc
Форумчанин
 
Регистрация: 16.05.2009
Сообщений: 199
По умолчанию

Спасибо, а как сделать копию формы со всеми кнопками и т д и т п.

Не получается

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses unit1;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Button1Click;
end;

end.

Последний раз редактировалось Stilet; 10.10.2010 в 12:57.
bookkc вне форума Ответить с цитированием
Старый 10.10.2010, 10:37   #5
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  Form1.fr;
end;

end.
Не пойму, и в чем проблема? Проверьте свой код на ошибки... Возможно на первом модуле до фига ошибок.

p.s. У меня все работает.

Последний раз редактировалось vasek123; 10.10.2010 в 10:41.
vasek123 вне форума Ответить с цитированием
Старый 10.10.2010, 10:47   #6
bookkc
Форумчанин
 
Регистрация: 16.05.2009
Сообщений: 199
По умолчанию

На первой форме я вызываю вот эту процедуру, выбивает ошибку


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  ThreadId: Cardinal;
begin
  StrPCopy(proxy,ed_ProxyServer.Text); // copy the Servertext to the Proxy array
  if (cthread <> 0) then
    MessageBeep(0)
  else
    cthread := BeginThread(nil, 0, @OpenURL, PAnsiChar(urls[TButton(Sender).Tag]), 0, ThreadId);
end;
И как сделать что бы на форме 2 кнопка 1, Events был OnСlick с формы 1 Button1Click

Последний раз редактировалось bookkc; 10.10.2010 в 10:51.
bookkc вне форума Ответить с цитированием
Старый 10.10.2010, 11:05   #7
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Не понял юмора, у меня все работает:

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Form1.Button1.Click;
end;

end.
Еще раз настоятельно прошу, проверьте код!
vasek123 вне форума Ответить с цитированием
Старый 10.10.2010, 12:03   #8
aleks.halk
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 14
По умолчанию

можно проще
и не надо никакого кода вообще писать
подключи 1ю форму ко второй т.е. выдели Form2 нажми File -> Use Unit или просто Alt + F11 и в окне выбери Unit1(или как там у тебя подписан модуль 1й формы)
затем выдели кнопку на второй форме, для которой хочешь назначить действие, и в инспекторе объектов на вкладке Events на событии onClick выбери изи списка необходимую процедуру

Последний раз редактировалось aleks.halk; 10.10.2010 в 12:07.
aleks.halk вне форума Ответить с цитированием
Старый 10.10.2010, 13:03   #9
bookkc
Форумчанин
 
Регистрация: 16.05.2009
Сообщений: 199
По умолчанию

aleks.halk , Твой метод вообще не работает... сдела как ты написал
bookkc вне форума Ответить с цитированием
Старый 10.10.2010, 15:33   #10
aleks.halk
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 14
По умолчанию

Что конкретно не работает?
в инспекторе обектов на вкладке Events кнопки на 2й форме видны процедуры с 1й формы?
aleks.halk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формы в Delphi TaYgA Компоненты Delphi 9 24.10.2009 18:44
Формы в Delphi TaYgA Помощь студентам 6 18.10.2009 14:16
Обращение из формы в dll к элементу главной формы (delphi) a_n_n_a Помощь студентам 3 10.05.2009 04:00
Печать формы. Delphi 7 Racfor Общие вопросы Delphi 7 03.08.2008 19:52
Delphi, перемещение формы. north Помощь студентам 3 23.01.2008 22:34