![]() |
Zusammenfassen, Verbessern von vielen IF-Schleifen
Hallo,
ich habe den folgenden Sourcecode :
Delphi-Quellcode:
Die ganzen Komponenten sind auf unterschiedlichen TabSheets auf einem PageControl. Kann ich diese Abfragen in irgendeiner Weise zusammenfassen ? Wenn ja, wie mache ich das am besten ?
if Length(Edt_Username.Text) = 0 then
begin Edt_Username.Color := clRed; Edt_Username.Font.Color := clWhite; end else begin Edt_Username.Color := clWindow; Edt_Username.Font.Color := clWindowText; end; if Length(Edt_UserID.Text) = 0 then begin Edt_UserID.Color := clRed; Edt_UserID.Font.Color := clWhite; end else begin Edt_UserID.Color := clWindow; Edt_UserID.Font.Color := clWindowText; end; if Length(Edt_Abteilung.Text) = 0 then begin Edt_Abteilung.Color := clRed; Edt_Abteilung.Font.Color := clWhite; end else begin Edt_Abteilung.Color := clWindow; Edt_Abteilung.Font.Color := clWindowText; end; if Length(Edt_Room.Text) = 0 then begin Edt_Room.Color := clRed; Edt_Room.Font.Color := clWhite; end else begin Edt_Room.Color := clWindow; Edt_Room.Font.Color := clWindowText; end; if Length(CB_Mandant.Text) = 0 then begin CB_Mandant.Color := clRed; CB_Mandant.Font.Color := clWhite; end else begin CB_Mandant.Color := clWindow; CB_Mandant.Font.Color := clWindowText; end; |
Re: Zusammenfassen, Verbessern von vielen IF-Schleifen
Du könntest sie in eine Funktion auslagern, welchr du dann mit dem Edit als Parameter aufrufst.
|
Re: Zusammenfassen, Verbessern von vielen IF-Schleifen
Ansonsten hatten wir schonmal festgestellt, dass ein Vergleich auf einen leeren String schneller sein sollte als die Länge des Strings zu ermitteln und den auf 0 zu vergleichen.
Und nochwas: IF Bedingungenen/Verzweigungen sind keine Schleifen... |
Re: Zusammenfassen, Verbessern von vielen IF-Schleifen
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Ich hatte da eigentlich irgendwie an eine FOR-Schleife gedacht. Geht das überhaupt ?
procedure CheckEdit(Pflicht : TEdit);
begin If Pfilcht.Text = '' then begin Pflicht.Color := clRed; Pflicht.Font.Color := clWhite; end else begin Pflicht.Color := clWindow; Pflicht.Font.Color := clWindowText; end; end; . . . CheckEdit(Edt_Username); CheckEdit(Edt_UserID); u.s.w. . . . |
Re: Zusammenfassen, Verbessern von vielen IF-Schleifen
Zitat:
Zitat:
Wenn nicht alle TEdits, die auf Deinem Form liegen, überprüft werden sollen, so kannst Du diese dann über den Komponentennamen, das Tag, den Parent oder auch den Parent des Parents (--> das PageControl) weiter einschränken. Hoffe, das hilft Dir als Denkanstoss weiter. Gruß onlinekater |
Re: Zusammenfassen, Verbessern von vielen IF-Schleifen
Hallo,
du kannst auch einen eigene Komponente (von TEdit abgeleitet) bauen, und packt den Code dort rein ins OnChange (?). Zur Schleife: Components enthält alle Komponenten des Forms (beginnend bei 0 !) ComponentCount die Anzahl if (Component is TEdit) wäre das if Den Schleifencode solltest du damit wohl selber hinbekommen. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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