Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизФормы и ф-ции Найти похожие ветки
← →
Bobby Digital © (2004-11-21 19:30) [0]... допустим есть две формы, так вот как из второй формы вызватьфункию, которая описанна в первой форме?
← →
begin...end © (2004-11-21 19:31) [1]Вызвать как обычную функцию, вот только в список uses модуля второй формы должен быть добавлен модуль первой.
← →
ламер © (2004-11-21 19:34) [2]> которая описанна в первой форме
зачем вы так с ней?
← →
Bobby Digital © (2004-11-21 19:36) [3]происал во второй форме
implementation
uses Unit1;
и все равоно ошибка[Error] Unit2.pas(33): Undeclared identifier: "Save"
а вот как вызвана функцияprocedure TForm6.N1Click(Sender: TObject);
begin
Save();
end;
← →
GuAV © (2004-11-21 19:42) [4]Bobby Digital © (21.11.04 19:36) [3]
осталось привести как описана и всё наверное станет ясно.
пока 2 вариата:
1. это не функция, а метод
2. нет описания в interface
← →
Bobby Digital © (2004-11-21 19:43) [5]
> ламер © (21.11.04 19:34) [2]
> > которая описанна в первой форме
> зачем вы так с ней?
эта функция нужна во обеих формах
← →
Bobby Digital © (2004-11-21 19:44) [6]Вот так описана функция ...
function Save ():TSaveDialog;
begin
if Form1.SaveDialog1.Execute then
Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName+".in4");
end;
← →
GuAV © (2004-11-21 19:53) [7]Bobby Digital © (21.11.04 19:44) [6]
Тогда наверное
GuAV © (21.11.04 19:42) [4]
2. нет описания в interface
скопируй
function Save ():TSaveDialog;
выше слова implementation
а функция
function Save ():TSaveDialog;
beginif Form1.SaveDialog1.Execute then
Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName+".in4");
end;
достойна помещения в орешник.
← →
Bobby Digital © (2004-11-21 19:56) [8]Че такое орешник?
← →
KilkennyCat © (2004-11-21 19:56) [9]вероятно, она и в первой форме не работает :)
← →
GuAV © (2004-11-21 19:58) [10]KilkennyCat © (21.11.04 19:56) [9]
вероятно, она и в первой форме не работает :)
Работает. Если конечно результатом не пользоваться.
Bobby Digital © (21.11.04 19:56) [8]
Че такое орешник?
http://www.delphimaster.ru/nuts/
← →
Bobby Digital © (2004-11-21 19:59) [11].. тю работает в первой форме .. ради прикола сам посмотри
← →
Bobby Digital © (2004-11-21 20:00) [12]а какой тип выбрать для данной функции ??? ... хе я по приколу скопировал TSaveDialog; ... и заработало )))))
← →
KilkennyCat © (2004-11-21 20:02) [13]не...не буду смотреть - я не так прикалываюсь.
← →
GuAV © (2004-11-21 20:07) [14]Bobby Digital © (21.11.04 20:00) [12]
а какой тип выбрать для данной функции ???
А как ты собираешься пользоваться её результатом ?
← →
begin...end © (2004-11-21 20:15) [15]
> [12] Bobby Digital © (21.11.04 20:00)
Так если тип результата не важен, то лучше уж вообще без типа и без результата, используй процедуру вместо функции.
← →
Bobby Digital © (2004-11-21 20:17) [16]... ну представь если тебе надо сохранить файл, не только по нажатию на кнопку , а еще несколько раз например по какому-нибудь событию ... просто не хотелось кажый раз писать ...SaveDialog1.Execute... и тд.
← →
Bobby Digital © (2004-11-21 20:21) [17]
> begin...end ©
Да сделал ... а как все же вызвать эту процедуру из другой формы
← →
begin...end © (2004-11-21 20:41) [18]
> [17] Bobby Digital © (21.11.04 20:21)
Уже ж сказали; см., напр., [7]. Или оформляй как метод, только тогда во второй форме вызывай её так: FormName.Save, где FormName - имя первой формы.
← →
novice_man © (2004-11-21 20:47) [19]Уважаемый Bobby Digital
у вас есть какие-либо книги (реал, электронные) по программированию, в частности по ДЕЛФИ?
← →
begin...end © (2004-11-21 20:53) [20]
> [19] novice_man © (21.11.04 20:47)
Ты такие провокационные вопросы не задавай, после них почему-то обычно посылают. :)
← →
SergP © (2004-11-21 20:59) [21]А если твоя функция объявлена как метод объекта класса первой формы (например TForm1)
то соответственно
Form1.myfunction(....);
← →
novice_man © (2004-11-21 20:59) [22]begin...end © (21.11.04 20:53) [20]
> [19] novice_man © (21.11.04 20:47)
Ты такие провокационные вопросы не задавай, после них почему-то обычно посылают. :)
Вот так всегда ...... ;)
← →
SergP © (2004-11-21 21:02) [23]А лучше всего функции и процедуры которые должны использоваться в разных юнитах вынеси в отдельный юнит...
← →
novice_man © (2004-11-21 21:05) [24]Пример:
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.
Что то вроде этого?
← →
Bobby Digital © (2004-11-21 21:09) [25]спасибо всем за внимание и советы
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.039 c