AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

For Schleife mit unvollständiger Reihe

Ein Thema von Stanlay Hanks · begonnen am 26. Mär 2003 · letzter Beitrag vom 26. Mär 2003
Antwort Antwort
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#1

For Schleife mit unvollständiger Reihe

  Alt 26. Mär 2003, 18:01
Hallo zusammen! Ich hätte da mal ne Frage:
Ich kann doch, damit ich nicht 20 durchnummerierten Edit Feldern einzeln einen Text zuweisen muss, eine For Schleife verwenden (heißt doch for- Schleife, oder?). Wenn ich das jetzt zusammen mit FindComponent mache sieht das bei mir so aus.

Code:
For AnzahlN:=1 to AnzahlN do
(FindComponent('Button'+IntToStr(ButtonNummer)) as TButton).free;
Die ButtonNummer Variable wird immer um 1 vergrößert.

So, meine Frage. Kann ich das auch machen, wenn die Reihe von Button Namen unterbrochen ist? Also, wenn es z.B. Button1,2,3,4,6,7,8,9 und 10 gibt aber keinen Button 5. Gibt es da vielleicht irgendeine Methode die überprüft, ob ein Objekt existiert?

Danke schon mal. Man liest sich.
Stanlay
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 26. Mär 2003, 18:26
Hallo Stanley,

soweit hast Du recht und hier der Code wie man z.B. eine bestimmte Zahl ausschliessen kann.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iFor: Integer;
begin
  for iFor := 0 to 9 do
  begin
    if iFor = 5 then
    begin
      ShowMessage('Tue hier was wenn die Zahl = 5 ist');
    end
    else
    begin
      ShowMessage('Tue hier was bei allen anderen Zahlen');
    end;
  end;
end;
Grüsse, Daniel
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3
  Alt 26. Mär 2003, 18:31
Zitat:
For AnzahlN:=1 to AnzahlN do
Das dürfte wohl ein Tippfehler sein. Also werde ich es mal so stehen lassen.
Du solltest die Nummerrierung vielleicht auf 0..Anzahl-1 ändern, damit du nicht durcheinander kommst, da alle von Borland bereitgestellten Funktionen auf diese Art benutzen.


Der Typecast nach TButton ist nicht nötig, da jede Komponente auch die Methode .Free besitzt, die den passenden Destructor aufruft.


Zitat:
Gibt es da vielleicht irgendeine Methode die überprüft, ob ein Objekt existiert?
Ja. FindComponent liefert nil, wenn die Komponente nicht vorhanden ist. Und die Methode .Free überprüft vor dem Destruktor-Aufruf, ob das Objekt vorhanden ist, also ungleich nil ist.
(Der as Operator produziert bei "nil as TButton" eine EInvalidCast Exception)

Delphi-Quellcode:
for ButtonNummer := 1 to AnzahlN do
  FindComponent('Button' + IntToStr(ButtonNummer)).Free;
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#4
  Alt 26. Mär 2003, 19:21
Cool. Ich glaub' jetzt hab ichs verstanden. Danke.
  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 18:57 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