AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Focus von Felder besser hervorheben (global)

Ein Thema von Sven Janssen · begonnen am 15. Jul 2004 · letzter Beitrag vom 6. Mai 2006
 
hronny

Registriert seit: 4. Mai 2006
Ort: Thüringen
97 Beiträge
 
Delphi 2007 Professional
 
#16

Re: Focus von Felder besser hervorheben (global)

  Alt 5. Mai 2006, 10:53
Ja natürlich die Farbe sieht bescheiden aus. Hab jetzt noch eine Variable für die Schriftfarbe hinzugefügt, eine Variable um die Highlightfunction wärend der Laufzeit an und auszuschalten, und natürlich bessere Farben genommen :
Delphi-Quellcode:
HighlightEnabled: Boolean = false;
HighlightingColor: TColor = clMaroon;
HighlightingFontColor: TColor = clHighlightText;
  
  //...

procedure TScreenHelper.ActiveControlChange(Sender: TObject);
begin
  if Highlighting and not Application.Terminated then
  begin
    if Assigned(ActiveControl) then
      with TControlCracker(ActiveControl) do begin
        // undo highlighting
        Color := NormalColor;
        font.Color := NormalFontColor;
      end;
    if Assigned(Screen.ActiveControl) then
    begin
      // do highlighting
      if (HighlightEnabled = true) then begin
        NormalColor := TControlCracker(Screen.ActiveControl).Color;
        NormalFontColor := TControlCracker(Screen.ActiveControl).Font.Color;
        ActiveControl := Screen.ActiveControl;
        TControlCracker(Screen.ActiveControl).Color := HighlightingColor;
        TControlCracker(Screen.ActiveControl).Font.Color := HighlightingFontColor;
      end;
    end;
  end;

  if Assigned(SavedActiveControlChange) then
    SavedActiveControlChange(Sender);
end;
Einen Vorschlag / Frage hätte ich noch dazu: Da ich das Highlight wärend der Laufzeit ändere, wäre es doch eigentlich sinnvoll, alle Felder auf ReadOnly zu setzen wenn (HighlightEnabled = false) ist, und dann alle aktivieren. Nur habe ich die funktion dafür noch nicht finden können bzw scheine ich den Syntax nicht zu kennen. Mit der Funktion aus den oberen Beiträgen hatte ich einen Erfolg heute Nacht mit:
Delphi-Quellcode:
if (screen.CustomForms[i].Components[j] is TDBEdit) then
begin
  (screen.CustomForms[i].Components[j] as TDBEdit).ReadOnly:=readonly; //true oder false
end;
Damit würde es ja gehen, aber dann brauche ich eine extra Schleife die es für jeden Typ dann machen muss. Wobei ich dann auch alle Typen separat einfügen muss.
grep -ri shit /usr/src/linux/*
  Mit Zitat antworten Zitat
 


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 18:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz