Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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;
begin
if 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.034 c
14-1100518395
Rule
2004-11-15 14:33
2004.12.05
Rational Rose, Model Maker, Bold


1-1101120518
#Master#
2004-11-22 13:48
2004.12.05
Чтение из текстового файла


4-1098427511
Виктор
2004-10-22 10:45
2004.12.05
Thread


1-1100707153
kps
2004-11-17 18:59
2004.12.05
Не могу найти компоненты


3-1099909336
Геннадий
2004-11-08 13:22
2004.12.05
ORACLE: можно ли добавить (insert) сразу несколько строк?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский