Einzelnen Beitrag anzeigen

hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
309 Beiträge
 
Delphi 11 Alexandria
 
#1193

AW: XP Usermanagers 6.1 Open Source

  Alt 4. Feb 2020, 13:40
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).
Angehängte Dateien
Dateityp: zip Usermanager.zip (185,6 KB, 4x aufgerufen)
Chris
  Mit Zitat antworten Zitat