AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zusammenfassen, Verbessern von vielen IF-Schleifen
Thema durchsuchen
Ansicht
Themen-Optionen

Zusammenfassen, Verbessern von vielen IF-Schleifen

Ein Thema von RWarnecke · begonnen am 13. Nov 2006 · letzter Beitrag vom 14. Nov 2006
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Zusammenfassen, Verbessern von vielen IF-Schleifen

  Alt 13. Nov 2006, 21:45
Hallo,

ich habe den folgenden Sourcecode :
Delphi-Quellcode:
  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;
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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zusammenfassen, Verbessern von vielen IF-Schleifen

  Alt 13. Nov 2006, 21:47
Du könntest sie in eine Funktion auslagern, welchr du dann mit dem Edit als Parameter aufrufst.
Markus Kinzler
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Zusammenfassen, Verbessern von vielen IF-Schleifen

  Alt 13. Nov 2006, 21:51
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...
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Zusammenfassen, Verbessern von vielen IF-Schleifen

  Alt 13. Nov 2006, 23:02
Zitat von Muetze1:
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.
Werde ich machen. Danke für den Tipp.

Zitat von Muetze1:
Und nochwas: IF Bedingungenen/Verzweigungen sind keine Schleifen...
Ja, Du hast Recht. Habe ich falsch geschrieben.


Zitat von mkinzler:
Du könntest sie in eine Funktion auslagern, welchr du dann mit dem Edit als Parameter aufrufst.
Du meinst das doch bestimmt so oder ?
Delphi-Quellcode:
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.
.
.
.
Ich hatte da eigentlich irgendwie an eine FOR-Schleife gedacht. Geht das überhaupt ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#5

Re: Zusammenfassen, Verbessern von vielen IF-Schleifen

  Alt 13. Nov 2006, 23:32
Zitat von RWarnecke:
Ich hatte da eigentlich irgendwie an eine FOR-Schleife gedacht. Geht das überhaupt ?
ja, denn:

Zitat von RWarnecke:
Die ganzen Komponenten sind auf unterschiedlichen TabSheets auf einem PageControl.
Du kannst nun die Components der Form durchgehen und gucken, ob es sich um ein TEdit handelt, wenn ja, übergibst Du es Deiner procedure.
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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Zusammenfassen, Verbessern von vielen IF-Schleifen

  Alt 14. Nov 2006, 07:10
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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:07 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