Entweder du bindest die entsprechende Unit in eine DLL mit ein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Library progs;
Uses SysUtils, Classes, Unit1;
{$R *.res}
Procedure irgendwas; Begin laufen(Parameter); End;
Begin End. |
Oder wenn diese Prozedur im Programm und nicht in der DLL ist, übergibst du der DLL das Handle dieser Prozedur:
(ACHTUNG: das ist jetzt nur ein Bespiel - es muß noch etwas angepasst werden)
Im Programm:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Procedure InitDLL(Z: Pointer); external 'progs.dll';
Procedure laufen(Parameterdefinition); Begin ... End;
Procedure irgendwas; Begin InitDLL(@laufen); End; |
In der DLL:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Library progs;
Var laufen: Procedure(Parameterdefinition);
Procedure InitDLL(Z: Pointer); Begin @DLLFunktion := Z; End;
Procedure irgendwasanderes; Begin laufen(parameter); End;
Begin End. |
Ob man die aufgerufene Prozedur (laufen) auch dazu bringen kann irgendetwas im Programm zu machen glaube ich zwar nicht ganz, jeden falls ist es etwas schwerer anzustellen.