Hi Gadget,

Im not completly sure what you mean but if im guessing write then this may help..

Form 2:
[pascal]
type
DebugProc = procedure (Text: String);

var
Form2: TForm2;
MyDebugProc: TDebugProc;
[/pascal]

Form 1:
[pascal]
procedure WriteDebug(Text: String);
begin
//
end;
[/pascal]

And you just assign 'MyDebugProc' with 'WriteDebug':
[pascal]
Unit2.MyDebugProc := WriteDebug;
[/pascal]

Before you call MyDebugProc i recommend you check to see if it assigned with:
[pascal]
If Assigned(MyDebugProc) Then MyDebugProc(Text);
[/pascal]

I cant remember how it works, but if the above gives an error try changing:
[pascal]
type
DebugProc = procedure (Text: String);

[/pascal]
To:
[pascal]
type
DebugProc = procedure (Text: String) Of Object;
[/pascal]