![]() |
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 |
Re: Farbiges Eingabefeld
Etwa so sollte es gehen:
Delphi-Quellcode:
Diese Prozedur musst du nur noch jedem Feld zuweisen und bist fertig ;)
procedure TForm1.Edit1Change(Sender: TObject);
begin (Sender as TEdit).Color := clYellow; end; |
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. |
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 |
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 21:05 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