![]() |
Code verkürzen (Clear bei mehreren Edits)
halllo,
Erstma Sorry für den Sche.. Titel, aber wusste nicht wie ich das sonst beschreiben sollte. Aber jetzt zum eigentlichen Problem (dabei ist es ja gar kein Problem ) Ich hab mir so eben die Frage gestellt, ob man diesen Code nicht einfacher bzw. kürzer fassen kann (ich finde es sieht irgendwie unprofessionell aus :roll: ). Ich denke dabei an soetwas wie eine Schleife, aber logischer weiße kann man nicht einfach
Delphi-Quellcode:
machen.
Edit + variable + .Clear;
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
begin Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; Edit6.Clear; Edit7.Clear; Edit8.Clear; Edit9.Clear; Edit10.Clear; Edit11.Clear; Edit12.Clear; Edit13.Clear; Edit14.Clear; end; |
Re: Code verkürzen (Clear bei mehreren Edits)
Delphi-Quellcode:
Sollte funktionieren, wenn du alle Edit Felder löschen möchtest in deiner TForm.
for i := 0 to ComponentCount - 1 do
if Components[i] is TEdit then TEdit(Components[i]).Clear; Oder geht es wirklich nur um die genannten? |
Re: Code verkürzen (Clear bei mehreren Edits)
Zuerst : ComponentCount <F1>
Prinzip ist so :
Delphi-Quellcode:
Uff, fast schon zu spät. :shock: Trotzdem genau gucken : meine Zeilen sind etwas anders wegen dem "as".
if (MeineKomponente is TEdit) then
(MeineKomponente as TEdit).Clear; |
Re: Code verkürzen (Clear bei mehreren Edits)
Zitat:
Delphi-Quellcode:
Aber alle Edits in eine TObjectList stecken und die durchlaufen wäre imho deutlich eleganter.
TForm.FindChildControl
TForm.FindComponent |
Re: Code verkürzen (Clear bei mehreren Edits)
Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Wieso, is ermittelt doch den Typ.
|
Re: Code verkürzen (Clear bei mehreren Edits)
War als Antwort für Cyf gedacht (hat sich mit deiner Antwort überschnitten)
|
Re: Code verkürzen (Clear bei mehreren Edits)
Achso, sry, mein Fehler :oops:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Zitat:
Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Mal ganz im Ernst .... die Suche existiert nicht umsonst :!:
z.B.: ![]() ![]() Und das ist gerade Mal einen Tag alt. |
Re: Code verkürzen (Clear bei mehreren Edits)
Erstmal danke. Genau das was ich wissen wollte.
Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Hier scheint Verwirrung zu herrschen. :mrgreen: Trotzdem noch zu dem is/as. Man kann ja sogar den Namen der Komponente für gezielte Aktionen verwenden. Angenommen, man will irgendeinen Text wegen irgendeiner Aktion, z.B. ButtonClick nur im "Edit9" haben :
Delphi-Quellcode:
Wäre zwar identisch mit
if c is TEdit then
if (copy ((c as TEdit).Name,5,1) = '9') then (c as TEdit).Text := 'TEST';
Delphi-Quellcode:
, ABER :
Edit9.Text := 'TEST';
Wenn man die Namen der Komponenten geschickt wählt, dann lassen sich schöne Konstrukte bauen, die man dann mit Schleife über ComponentCount und dem entsprechenden Prefix etc. gezielt ansprechen kann. Beispiel : Adresse und noch diverse andere Editfelder. Nenne ich die Adress-Felder jetzt konsequent z.B. edAdrAnrede, edAdrName etc. dann brauche ich nur auf 'edAdr' zu prüfen (siehe oben) und mache auf einen Schlag die Adresse leer, ohne die anderen Felder zu beeinflussen. |
Re: Code verkürzen (Clear bei mehreren Edits)
"as" prüft genauso wie "is" ... nur wirft "as" im Fehlerfall eine Exception und gibt als Result den Typ des Vergleichs,
wärend "is" nur prüft und als Result einen Boolean mit dem Ergebnis des Vergleichs liefert. und typ(var) konvertiert ohne eine Prüfung... da jetzt schon mit "is" geprüft wurde, kann man also jegliche weitere Prüfung mit "as" eigentlich weglassen.
Delphi-Quellcode:
if c is TEdit then
if (copy (TEdit(c).Name, 5, 1) = '9') then TEdit(c).Text := 'TEST'; Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Tja, die Tags könnte man auch verwenden für sowas. Aber dann sind sie auch nicht mehr frei verfügbar. Und wer weiß ? Wird das mit String-Operationen zu schwer lesbar, dann macht man besser eigene Properties. Bei mir gibts z.B. im OI ein published "aktiv". Das setze ich notfalls mal schnell auf false und die Funktion ist gesperrt. :mrgreen:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
Zitat:
|
Re: Code verkürzen (Clear bei mehreren Edits)
du hast einen komplizierten weg vorgeschlagen und als man dann einen einfacheren genannt hat, eine Grund gegen diesen gefunden.
|
Re: Code verkürzen (Clear bei mehreren Edits)
nja, das .Tag ist ja zur freien Nutzung für den Programmierer vorgesehn und wofür man es nun verwendet ist dabei egal ... also kann man es auch ganz gut zur Identifikation nutzen.
ich hab hier irgendwo 'nen alten Installer-Setup rumliegen, dessen Benutzeroberfläche komplett über .Tag identifiziert wird (einige viele Edits, Buttons, ListBoxen ...) dort sind im .Tag dann die Objekt-ID, Gruppen-ID und einige Statusflags integriert, worüber z.B. alle Edits mit nur ein/zwei Ereignisprozeduren behandelt werden können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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