Hi,
Muetze meint folgendes:
1.
Delphi-Quellcode:
type
TMainForm = class(TForm)
bDllLaden: TButton;
bClose: TButton;
procedure bCloseClick(Sender: TObject);
procedure bDllLadenClick(Sender: TObject);
private
// die Variable muss global gespeichert werden damit FreeLibrary ein Ziel hat
class var hLib:cardinal;
const
wm_FreeMyLibrary = wm_User + 100; /// hier nicht
public
so:
Delphi-Quellcode:
unit My_Types;
interface
const
wm_FreeMyLibrary = wm_User + 100;
........
implementation
end;
So ist deine Konstante global definiert und gilt in allen Units deines Projektes in denen du unter uses My_Types angibst.
2.
Delphi-Quellcode:
// nun wird zusätzlich das handle übergeben, was später benötigt wird
THEN Mcreatedll(self.Handle);
Wenn du hier die globale Variable benutzt (die delphi immer automatisch mit anlegt), dann kann es passieren, dass diese nicht definiert ist. Das ist vor allem dann der Fall, wenn du an anderer Stelle die Form kreierst und da eine andere Variable verwendet wird. Mache ich immer bei Formularen, die ich zur Laufzeit erstelle. Dann lösche ich im Projekt sogar die globale Variablendeklaration um sie nicht versehentlich zu verwenden.
Man sollte es sich eh angewöhnen immer self und nicht eine Objektvariable in der Klasse für den Zugriff auf eigene Eigenschaften und Methoden zu verwenden.
Jo, das war mein Teil dazu.
Gruß oki