Hmm. Kompiliert und startet, leider schmiert es beim Klicken in der
GUI ab.
Es liegt wohl an der nested function EnumProc in GUIHelpers.pas
Code:
procedure EnableChildWindows(ParentWindow: THandle; Enable: Boolean);
function EnumProc(wnd: HWND; lparam: LPARAM): BOOL; stdcall;
begin
result := True;
EnableWindow(wnd, IntegerToBoolean[lparam]);
end;
var
Param: Integer;
begin
Param := BooleanToInteger[Enable];
EnumChildWindows(ParentWindow, @EnumProc, Param);
end;
Nimmt man die nested Function raus
Code:
function EnumProc(wnd: HWND; lparam: LPARAM): BOOL; stdcall;
begin
result := True;
EnableWindow(wnd, IntegerToBoolean[lparam]);
end;
procedure EnableChildWindows(ParentWindow: THandle; Enable: Boolean);
var
Param: Integer;
begin
Param := BooleanToInteger[Enable];
EnumChildWindows(ParentWindow, @EnumProc, Param);
end;
läuft alles.
Die Doku sagt dazu
Zitat:
Verschachtelte Prozeduren und Funktionen (Routinen, die in anderen Routinen deklariert sind), können nicht als prozedurale Werte verwendet werden. Dasselbe gilt für vordefinierte Prozeduren und Funktionen (Standardroutinen).