Einzelnen Beitrag anzeigen

daddy

Registriert seit: 9. Sep 2005
Ort: Köln
126 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Delphi-Fehler im OnExit (Verlust der Tastatursteuerung)

  Alt 24. Apr 2007, 11:45
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!
  Mit Zitat antworten Zitat