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

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

Формы и ф-ции


Страницы:   1 2

Bobby Digital ©   (2004-11-21 19:30:00) 

... допустим есть две формы, так вот как из второй формы вызватьфункию, которая описанна в первой форме?


Bobby Digital   (2004-11-21 21:09:00) [1]

спасибо всем за внимание и советы


novice_man   (2004-11-21 21:05:00) [2]

Пример:

unit Unit1;

interface

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

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

var
 Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.MyProcedure(Sender);
end;

*****************************************************************

unit Unit2;

interface

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

type
 TForm2 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
   procedure MyProcedure(sender: tobject);
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

{ TForm2 }

procedure TForm2.MyProcedure(sender: tobject);
begin
// body procedure
end;

end.

Что то вроде этого?


SergP   (2004-11-21 21:02:00) [3]

А лучше всего функции и процедуры которые должны использоваться в разных юнитах вынеси в отдельный юнит...


novice_man   (2004-11-21 20:59:00) [4]

begin...end ©   (21.11.04 20:53) [20]

> [19] novice_man ©   (21.11.04 20:47)

Ты такие провокационные вопросы не задавай, после них почему-то обычно посылают. :)


Вот так всегда ...... ;)


SergP   (2004-11-21 20:59:00) [5]

А если твоя функция объявлена как метод объекта класса первой формы (например TForm1)

то соответственно
Form1.myfunction(....);


begin...end   (2004-11-21 20:53:00) [6]


> [19] novice_man ©   (21.11.04 20:47)

Ты такие провокационные вопросы не задавай, после них почему-то обычно посылают. :)


novice_man   (2004-11-21 20:47:00) [7]

Уважаемый Bobby Digital
у вас есть какие-либо книги (реал, электронные) по программированию, в частности по ДЕЛФИ?


begin...end   (2004-11-21 20:41:00) [8]


> [17] Bobby Digital ©   (21.11.04 20:21)

Уже ж сказали; см., напр., [7]. Или оформляй как метод, только тогда во второй форме вызывай её так: FormName.Save, где FormName - имя первой формы.


Bobby Digital   (2004-11-21 20:21:00) [9]


> begin...end ©  

Да сделал ... а как все же вызвать эту процедуру из другой формы


Bobby Digital   (2004-11-21 20:17:00) [10]

... ну представь если тебе надо сохранить файл, не только по нажатию на кнопку ,  а еще несколько раз например по какому-нибудь событию ... просто не хотелось кажый раз писать ...SaveDialog1.Execute... и тд.


begin...end   (2004-11-21 20:15:00) [11]


> [12] Bobby Digital ©   (21.11.04 20:00)

Так если тип результата не важен, то лучше уж вообще без типа и без результата, используй процедуру вместо функции.


GuAV   (2004-11-21 20:07:00) [12]

Bobby Digital ©   (21.11.04 20:00) [12]
а какой тип выбрать для данной функции  ???

А как ты собираешься пользоваться её результатом ?


KilkennyCat   (2004-11-21 20:02:00) [13]

не...не буду смотреть - я не так прикалываюсь.


Bobby Digital   (2004-11-21 20:00:00) [14]

а какой тип выбрать для данной функции  ??? ... хе я по приколу скопировал TSaveDialog; ... и заработало )))))


Bobby Digital   (2004-11-21 19:59:00) [15]

.. тю работает в первой форме .. ради прикола сам посмотри


GuAV   (2004-11-21 19:58:00) [16]

KilkennyCat ©   (21.11.04 19:56) [9]
вероятно, она и в первой форме не работает :)


Работает. Если конечно результатом не пользоваться.

Bobby Digital ©   (21.11.04 19:56) [8]
Че такое орешник?

http://www.delphimaster.ru/nuts/


KilkennyCat   (2004-11-21 19:56:00) [17]

вероятно, она и в первой форме не работает :)


Bobby Digital   (2004-11-21 19:56:00) [18]

Че такое орешник?


GuAV   (2004-11-21 19:53:00) [19]

Bobby Digital ©   (21.11.04 19:44) [6]

Тогда наверное
GuAV ©   (21.11.04 19:42) [4]
2. нет описания в interface


скопируй
function Save ():TSaveDialog;
выше слова implementation

а функция
function Save (): TSaveDialog;
begin
if Form1.SaveDialog1.Execute then
Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName+'.in4');
end;

достойна помещения в орешник.


Bobby Digital   (2004-11-21 19:44:00) [20]

Вот так описана функция ...

function Save ():TSaveDialog;
begin
if Form1.SaveDialog1.Execute then
Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName+'.in4');
end;


Страницы:   1 2

Наверх

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