Ich habe mir den Link von uligerhardt mal angesehen und festgestellt, dass es damit funktioniert. Habe das ganze noch ein wenig vereinfacht und jetzt am Ende folgende Lösung:
Delphi-Quellcode:
Own_ExitProc = WM_User + 42;
// beliebiger noch verfügbarer Wert
type
TForm1 =
class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
CheckBox1: TCheckBox;
procedure Edit1Exit(Sender: TObject);
private
procedure OwnExitProc(
var Msg: TMessage);
message Own_ExitProc;
end;
procedure TForm1.OwnExitProc(
var Msg: TMessage);
begin
if csLButtonDown
in ActiveControl.ControlState
then
PostMessage(ActiveControl.Handle, WM_LBUTTONUP, 0, 0);
if Checkbox1.Checked
then Messagedlg('
Testmeldung', mtInformation, [mbok], 0);
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
PostMessage(
Handle, Own_ExitProc, 0, 0);
end;
Wenn man dann noch das "PostMessage(
Handle, Own_ExitProc, 0, 0);" direkt in CONTROLS.PAS ins "DoExit" einbindet, kann man sich zumindest sparen, für alle Felder ein "OnExit" mit diesem Aufruf zu hinterlegen und muss nur noch eine "OwnExitProc" für jedes Formular hinterlegen.
Vielen Dank für die Hinweise!