AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi OnExit erigniss wird nicht ausgelöst beim deaktiven Fenster
Thema durchsuchen
Ansicht
Themen-Optionen

OnExit erigniss wird nicht ausgelöst beim deaktiven Fenster

Ein Thema von Karstadt · begonnen am 6. Jan 2006 · letzter Beitrag vom 6. Jan 2006
Antwort Antwort
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

OnExit erigniss wird nicht ausgelöst beim deaktiven Fenster

  Alt 6. Jan 2006, 10:21
Hallo.

TEdit.Color soll geändert werden, wenn das Focus das Feld verlässt. Kein Problem dachte ich mir dafür gibt es die Eigeschnaft. TEdit.OnExit(Sender);

Das passiert aber nicht, wenn das TForm den Fokus verliert.

z.B. Fenstergröße 100x100 wenn ich außerhalb dieses Fensterdrücke wir verliert das Fenster den Focus aber die Funkton TEdit.OnExit(Sender) wird nicht ausgelöst. Warum?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

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

  Alt 6. Jan 2006, 10:31
Weil das Edit auf der Form den Fokus behält. Aktivierst du das Fenster wieder, dann hat das Edit immernoch den Fokus. Das OnEnter/OnExit ist ja schliesslich kein Notify für ein Systemweiten Fokus (geschweige denn applikationsweiten Fokus).
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#3

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

  Alt 6. Jan 2006, 10:53
das habe ich mir schon gedacht. Wie kann ich das Problem lösen? Wenn das Fenster deaktiviert ist dann soll das E-Feld anders markiert werden.

TForm.onDeaktiv funktioniert nur dann wenn ich das Fenster schließe.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider
Online

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
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#5

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

  Alt 6. Jan 2006, 11:16
TTimer

IF not TForm.Active Then TEdit.Color := clWindow else
e_TEdit.Color := clYellow;


WANN funktioniert das Ereigniss ONDeATIV?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz