Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: OnExit erigniss wird nicht ausgelöst beim deaktiven Fens

  Alt 6. Jan 2006, 11:03
Hi,

ich habe mal ein Beispiel für eine Lösung mit einer extra Unit.
Einfach ins Projekt aufnehmen und ausprobieren.
Muss sicher für eigene Ansprüche noch angepasst werden.

Delphi-Quellcode:
unit EditColorHandler;

interface
Uses Forms, Classes, Controls, Graphics, StdCtrls;


Const
  _ActiveColor = $009BF5FD;
  _DefaultColor = clWhite;

type
  TEditColorHandler = class(TObject)
  private
    FActiveControl: TWinControl;
    FActive: Boolean;
    procedure SetActive(const Value: Boolean);
  public
    procedure doActiveControlChange(Sender: TObject);
    property Active: Boolean read FActive write SetActive;
  end;

Var
  AppEditColorHandler: TEditColorHandler;


implementation


procedure TEditColorHandler.doActiveControlChange(Sender: TObject);
begin

  if Assigned(FActiveControl) and FActiveControl.HandleAllocated and
    (FActiveControl is TEdit) then
    TEdit(FActiveControl).Color := _DefaultColor;

  FActiveControl := Screen.ActiveControl;

  if FActiveControl is TEdit then
    TEdit(FActiveControl).Color := _ActiveColor;

end;

procedure TEditColorHandler.SetActive(const Value: Boolean);
begin
  if FActive <> Value then
  begin
    FActive := Value;
    if FActive then
      Screen.OnActiveControlChange := doActiveControlChange
    else
      Screen.OnActiveControlChange := nil;
  end;
end;

initialization
  AppEditColorHandler := TEditColorHandler.Create;
  AppEditColorHandler.Active := True;

finalization
  AppEditColorHandler.Free;
end.
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat