![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Формы и ф-ции
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;