Процедуры и функции

slavon-x86

Well-Known Member
18.12.2005
215
0
#1
Delphi.
Код:
Procedure aaa;
Begin
End;

Procedure bbb;
Begin
End;
Из процедуры bbb процедура aaa запускается,
a из aaa процедура bbb не запускается.
Как зделать чтобы можно было из любой процедуры запускать другую ?
 
Z

zubr

Гость
#2
В интерфейсной секции модуля объяви прототипы этих процедур и будет тебе счастье.
Код:
unit Unit1;

interface

uses
SysUtils;

Procedure aaa;
Procedure bbb;

implementation

Procedure aaa;
Begin
End;

Procedure bbb;
Begin
End;

end.
 

slavon-x86

Well-Known Member
18.12.2005
215
0
#3
А вот ещё вопрос:

У меня есть процедура.
Код:
Procedure aaa;
Begin
Form1.Memo1.Lines.add('dfgd');
End;
Как можно зделать, чтобы не дописывать перед каждым компонентом "Form1".
Только НЕ через "With Form1 do".
 
D

DZX

Гость
#4
Обьяви процедуру внутри класса формы в private или public как тебе нужнее и не пиши.
 

slavon-x86

Well-Known Member
18.12.2005
215
0
#5
Код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
 { Private declarations }
public
 { Public declarations }
 procedure aaa;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure aaa;
begin
Memo1.Lines.add('xxxxxxxxxx');
end;

end.
Не работает
 
Z

zubr

Гость
#6
Правильно вот так:
Код:
procedure TForm1.aaa;
begin
Memo1.Lines.add('xxxxxxxxxx');
end;
Так как процедура aaa - член класса.
З.Ы. Советую почитать литературу по объектно ориентированному программированию.
 
S

Smit

Гость
#8
1.В модуле с процедурой aaa находишь раздел uses.
2.Прописываешь туда имя модуля, где описан Memo1.
3.Юзаешь Memo1. Если Memo1 объявлен внутри класса TForm1 то придётся обращаться к Memo1 через него: Form1.Memo1.Lines.Add('text');

Вообще любые переменные и процедуры (функции), если они объявлены в некотором модуле Unit1, в разделах public или published некоторого класса, будут доступны любым другим модулям, в разделе uses которых указано имя модуля Unit1. Имя модуля прописывается в Delphi автоматически, в разделе Unit, и совпадает с именем соответствующего pas-файла.
 
D

DZX

Гость
#9
procedure TForm1.aaa;

Вот так надо объявлять членов класса и все заработает.