Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Farbiges Eingabefeld (https://www.delphipraxis.net/34721-farbiges-eingabefeld.html)

LOMBI 27. Nov 2004 10:55


Farbiges Eingabefeld
 
Hallo,

während der Laufzeit soll das jeweilige Feld auf der Form bei der Eingabe oder Änderung von Daten mit der Eigenschaft Color gelb dargestellt werden.

Wer hilft mir bitte weiter?

Gruß
Lombi

Dax 27. Nov 2004 10:57

Re: Farbiges Eingabefeld
 
Etwa so sollte es gehen:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  (Sender as TEdit).Color := clYellow;
end;
Diese Prozedur musst du nur noch jedem Feld zuweisen und bist fertig ;)

Sharky 27. Nov 2004 10:58

Re: Farbiges Eingabefeld
 
Hai LOMBI,

Du kannst im OnChange Ereigniss die Farbe des TEdit ändern. Im OnExit setzt Du die Farbe dann wieder auf den "normalen" Wert.

LOMBI 27. Nov 2004 11:47

Re: Farbiges Eingabefeld
 
Danke für die prompte Antwort.

Es handelt sich aber um DBEdits.

Beim Eingeben oder Ändern von Daten in diese Felder (während das Programm
läuft) soll immer nur das Eingabefeld in Color gelb dargestellt werden, in dem sich der Cursor gerade befindet und nach Verlassen des Feldes und mit dem Speichern des Datensatzes seine ursprüngliche Color-Farbe zurück- erhalten.

Gruß
Lombi

Sharky 27. Nov 2004 12:13

Re: Farbiges Eingabefeld
 
Hai LOMBI,

schaue Dir mal diesen Code an. Das sollte dir helfen dein Problem zu lösen ;-)
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  ndx : Integer;
begin
  for ndx := 0 To Pred (ControlCount) do
  begin
    if ((Controls[ndx]) IS TDBEdit) then // Alle TEdits berücksichtigen
    begin
      (Controls[ndx] As TDBEdit).OnEnter := EditEnter; // OnEnter-Methode zuweisen
      (Controls[ndx] As TDBEdit).OnExit := EditExit; // OnExit-Methode zuweisen.
      (Controls[ndx] As TDBEdit).OnChange := EditChange; // OnChange-Methode zuweisen.
    end;
  end;
end;

procedure TForm1.EditEnter(Sender: TObject); // OnEnter
begin
  (Sender As TDBEdit).Color := clAqua; // Sender auswerten
end;

procedure TForm1.EditExit(Sender: TObject); // OnExit;
begin
  (Sender As TDBEdit).Color := clWhite;
end;

procedure TForm1.EditChange(Sender: TObject); // OnChange
begin
  (Sender As TDBEdit).Color := clYellow;
end;

procedure TForm1.EditColorReset; // Alle DBEDit auf weiss ausser dem aktiven
var
  ndx : Integer;
begin
  for ndx := 0 To Pred (ControlCount) do
  begin
    if ((Controls[ndx]) IS TDBEdit) then
    begin
      (Controls[ndx] As TDBEdit).Color := clWhite;
    end;
  end;
  if (ActiveControl IS TDBEdit) then
  begin
    (ActiveControl AS TDBEDit).Color := clAqua;
  end;
end;

procedure TForm1.Query1BeforeScroll(DataSet: TDataSet);
var
  ndx : Integer;
begin
  for ndx := 0 To Pred (ControlCount) do
  begin
    if ((Controls[ndx]) IS TDBEdit) then
    begin
      (Controls[ndx] As TDBEdit).OnChange := nil;
    end;
  end;
end;

procedure TForm1.Query1AfterScroll(DataSet: TDataSet);
var
  ndx : Integer;
begin
  for ndx := 0 To Pred (ControlCount) do
  begin
    if ((Controls[ndx]) IS TDBEdit) then
    begin
      (Controls[ndx] As TDBEdit).OnChange := EditChange;
    end;
  end;
end;

procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin
  EditColorReset;
end;

procedure TForm1.Query1AfterCancel(DataSet: TDataSet);
begin
  EditColorReset;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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