Well, if the method is part of a class and you know it's name, you can get the address. You obviously need to know the function prototype so the compiler can validate the call, but it is relatively straight forward, and I wrote a tutorial about this thats available in the library here.

In terms of standard routines, it is also possible, this time using getProcAddress. Here's an example:-

[pascal]
unit formMain;

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

{$R *.dfm}

procedure method1;
begin
showMessage('Hello world 1');
end;

procedure method2;
begin
showMessage('Hello world 2');
end;

type
TMyMethod = procedure;

procedure TForm1.Button1Click(Sender: TObject);
var
mp : TMyMethod;
begin
@mp:=GetProcAddress(getModuleHandle(nil),'method1' );

mp;
end;

exports
method1,
method2;

end.
[/pascal]

The key thing with this is the exports section. If you don't include it, it will go bang.

Hope this helps.