AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Leeren sämtlicher Editfelder mit einer Schleife???
Thema durchsuchen
Ansicht
Themen-Optionen

Leeren sämtlicher Editfelder mit einer Schleife???

Ein Thema von syber · begonnen am 28. Mär 2003 · letzter Beitrag vom 23. Apr 2003
Antwort Antwort
Seite 2 von 3     12 3      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11
  Alt 23. Apr 2003, 13:33
muß das Thema nochmals aufgreifen. Ich brauche jetzt in einem konkreten Fall das ComponentCount. Nur was ist da mit dem Gültigkeitsbereich ? Darüber schweigt die OH leider.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#12
  Alt 23. Apr 2003, 14:33
Gültigkeitsbereich ?? Meinst DU welche Componenten aufgezählt werden ?
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13
  Alt 23. Apr 2003, 18:45
So ungefähr. Gilt das pro Form, pro Projekt oder wie? OH ist etwas zweideutig und der Gültigkeitsbereich ist halt der Bereich, in dem auf eine Variable etc. zugegriffen werden kann. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#14
  Alt 23. Apr 2003, 19:49
Machs halt gleich so:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
end;
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15
  Alt 23. Apr 2003, 20:09
ja, so was mußte ja kommen. 8) Na gut, dann eben das, was ich vermeiden wollte : eine Form besteht aus 4 Tabsheets auf PageControl. Da drauf liegen insgesamt ca. 60-100 DBedit-Felder. Felder vom gleichen Typ müssen ausgerichtet werden (z.B. integer: rechtsbündig). Die Felder heißen auch nicht Edit1,Edit2 .... sondern haben einen richtigen Namen. Es geht auch nicht um das Clear, sondern um das CommponentCount. Wie Mr. Spock weiter oben geschrieben hat, kann man hierzu die Tags verwenden. Das war ein guter Hinweis. Nur was noch unklar ist : eventuell brauche ich die Tags nicht. Aber nur sofern sich ComponentCount auf die Form bezieht. Gilt das projektweit, so sieht es wieder anders aus.
Gruß
Hansa
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#16
  Alt 23. Apr 2003, 20:15
Zitat von Hansa:
ja, so was mußte ja kommen. 8) Na gut, dann eben das, was ich vermeiden wollte : eine Form besteht aus 4 Tabsheets auf PageControl. Da drauf liegen insgesamt ca. 60-100 DBedit-Felder. Felder vom gleichen Typ müssen ausgerichtet werden (z.B. integer: rechtsbündig). Die Felder heißen auch nicht Edit1,Edit2 .... sondern haben einen richtigen Namen. Es geht auch nicht um das Clear, sondern um das CommponentCount. Wie Mr. Spock weiter oben geschrieben hat, kann man hierzu die Tags verwenden. Das war ein guter Hinweis. Nur was noch unklar ist : eventuell brauche ich die Tags nicht. Aber nur sofern sich ComponentCount auf die Form bezieht. Gilt das projektweit, so sieht es wieder anders aus.
Oh, wusst ich nicht, sorry!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17
  Alt 23. Apr 2003, 20:19
Zitat von onlinehome:
Oh, wusst ich nicht, sorry!
Du brauchst Dich doch nicht für eine Antwort zu entschuldigen. Ist ja gut, wenn überhaupt eine Antwort kommt. Meine Frage paßt ja auch zumindest nicht zum Anfang des Threads. In den Zusammenhang aber schon.
Gruß
Hansa
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#18
  Alt 23. Apr 2003, 20:28
Zitat von Hansa:
Zitat von onlinehome:
Oh, wusst ich nicht, sorry!
Du brauchst Dich doch nicht für eine Antwort zu entschuldigen. Ist ja gut, wenn überhaupt eine Antwort kommt. Meine Frage paßt ja auch zumindest nicht zum Anfang des Threads. In den Zusammenhang aber schon.
OK
  Mit Zitat antworten Zitat
danielA

Registriert seit: 10. Jun 2002
Ort: Hamburg
72 Beiträge
 
Delphi XE7 Enterprise
 
#19
  Alt 23. Apr 2003, 20:37
Hallo erstmal,

habe eben mal kurz in der Unit Classes nachgeschaut und folgendes rausgefunden.

Componentcount, Components etc. umfaßt alle Komponenten, welche der Komponente gehören (AOwner). In deinem Fall währe das also das Form.
Hast du jedoch eigene Komponenten geschrieben, welche ein Editfeld als Unterkomponente besitzen, so wird dieses Editfeld nicht bei einem Durchlauf von ComponentCunt des Form mit aufgefaßt da im Constructor der eigenen Komponente etwa soetwas drinsteht.

Delphi-Quellcode:
class TMeineKompo = Class(TPanel)
private
  Edi : TEdit;

...

implementation

constructor TMeineKompo.Create(AOwner : TComponent);
begin
  inherited;
  Edi := TEdit.Create(self); // <--- AOwner ist also TMeineKompo
  Edi.Parent:=self // <--- gibt nur an, daß es auf TMeineKompo angezeigt werden soll

  ...
  
end;
Aber du kannst sicher sein, alle Komponenten, die du per Drag and Drop oben aus der Leiste auf das Form gezogen hast (auch wenn sie auf einem Panel oder Tabsheet liegen) werden gefunden, da AOwner immer das Form sein wird und nur der Parent auf das Panel bzw. Tabsheet etc. zeigt.

Noch ein Hinweis:

FComponent (private in TComponent) ist ein TListobjekt in dem alle Komponenten eingetragen werden, die diese Komponente besitzt.
Auf FComponent greifen ComponentCount, Components etc zu.
Du solltest dir auch mal den Quelltext von FindComponent anschauen. Es ist auch nur ein Schleife, die alle Namen mit dem String vergleicht. Wenn du also bei allen Felder eines Typs dieselbe Eigenschaft ändern willst, so ist es meines erachtens
nicht besonders Sinnvoll FindComponent zu verwenden.

Gruß danielA
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#20
  Alt 23. Apr 2003, 21:00
Zitat von danielA:
...In deinem Fall währe das also das Form...
Ist das sicher ? Muß es sowieso austesten, dann seh ichs ja. Eigene Komponenten haben ja damit nichts zu tun. Haste meinen "Monster-Thread" (frei nach Motzi) auch gelesen ? War wohl unübersehbar. Wobei aber noch ein ganz anderer wichtiger Aspekt auftaucht. Leite ich irgendeine Komponente von einer Delphi-Standard-Komponente ab, OHNE irgendwas zu ändern, kann ich gezielt diese Sachen mit ComponentCount, FindComponent usw. auf z.B. TMyEdit anwenden:
Code:
if ... IS TMyEdit
Für Sonderfälle wäre es deshalb eventuell besser, statt TAGs so etwas zu verwenden, also eine eigene Klasse, die dann gesondert behandelt wird. Was wiederum im Klartext eine Zeile ausmacht :

Code:
TMyEdit=class(TEdit);
Stimmt das so?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:44 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