Announcement

Collapse
No announcement yet.

Farbe des aktiven Control´s ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Farbe des aktiven Control´s ändern

    Wie kann ich die Farbe (Color-Eigenschaft) des aktiven Contol's ändern.
    Ich würde gern bei OnEnter und OnExit die Farben ändern. Nur wenn
    ich versuche hier auf "ActiveContro.Color ..." zu gehen bekomme
    ich eine Fehlermeldung die Eigenschaft gibt es nicht.

    Noch besser wäre es, wenn man eine grundsätzlich Einstellung vornehmen
    könnte, das Aktive Eingabefeld soll anders aussehen farblich z.B. .
    Wer kann mir helfen?

  • #2
    Hallo Klaus,

    ActiveControl ist vom Typ TWinControl und hat somit keine Color Eigenschaft.

    Wenn Du Dir sicher bist, daß das angesprochene Control die Eigenschaft besitzt
    kanst du es so machen (Beispiel für TEdit):

    TEdit ( ActiveControl ).Color := clRed;

    oder andere Schreibweise:

    ( ActiveControl as TEdit ).Color := clRed;

    willst du es allgemeiner halten und bist nicht sicher, daß das Aktive Control die
    Eigenschaft Color besitz muß Du es über die RTTI (Runtime Type Information) machen:

    1. TypInfo in die Uses-Klausel aufnehmen

    und dann:

    procedure TForm1.Edit2Change(Sender: TObject);
    var
    ColorInfo: PPropInfo;
    begin
    ColorInfo := GetPropInfo ( ActiveControl.ClassInfo, 'Color' );

    if ( ColorInfo <> NIL ) then
    SetOrdProp ( ActiveControl, ColorInfo, clRed );
    end;

    Gruß Grego

    Comment

    Working...
    X