Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Standardfarben für die laufende Software ändern

  Alt 7. Sep 2008, 13:38
Hai BigAl,

Du könntest dir eine Procedure schreiben der als Parameter eine TForm übergeben wird. In der Procedure läufst Du nun über alle Controlls. Wenn Du nun auf ein TEdit triffst kannst Du anhand bestimmter Bedingungen (z.B ReadOnly) eine Frabe setzten.

Diese Procedure rufst Du nun im OnCreate (oder OnActivate) jeder Form auf und übergibst als Parameter den Namen der Form.

Delphi-Quellcode:
procedure SetEditColors(const aForm: TForm);
const
  readOnlyColor = clRed;
  editColor = clBlue;
var
  i: Integer;
  curControl: TControl;
begin
  for i := 0 to aForm.ControlCount - 1 do // Durch alle Controls laufen
  begin
    curControl := aForm.Controls[i]; // Das "aktuelle" Control
    if (curControl is TEdit) then // ist ein Edit
    begin
      with (curControl as TEdit) do // aktuelles Control auf TEdit casten
      begin
        if (ReadOnly) then // Wenn ReadOnlay dann
        begin
          Color := readOnlyColor;
        end
        else // ansonsten das.
        begin
          Color := editColor;
        end;
      end;
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetEditColors(self); // Form als Parameter
end;
Wenn Du die Procedure SetEditColors() in eine eigene Unit auslagerst kannst Du sie im OnCreate jeder Form aufrufen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat