AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Aufruf von mehreren fast gleichnamigen Methoden (Verkürzen?)
Thema durchsuchen
Ansicht
Themen-Optionen

Aufruf von mehreren fast gleichnamigen Methoden (Verkürzen?)

Ein Thema von sarte · begonnen am 27. Jan 2009 · letzter Beitrag vom 27. Jan 2009
Antwort Antwort
sarte

Registriert seit: 23. Mai 2008
Ort: Australien
66 Beiträge
 
Delphi 7 Enterprise
 
#1

Aufruf von mehreren fast gleichnamigen Methoden (Verkürzen?)

  Alt 27. Jan 2009, 17:26
Hallo Leute,
kann man das irgendwie verkürzen?
Delphi-Quellcode:
  Button4.Visible := true;
  Button5.Visible := true;
  Button6.Visible := true;
  Button7.Visible := true;
  Button8.Visible := true;
Mit einer For-Schleife geht es ja leider nicht -.-

Danke,
Sarte
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz

  Alt 27. Jan 2009, 17:29
Standard-Antwort: FindComponent()
Markus Kinzler
  Mit Zitat antworten Zitat
blink182

Registriert seit: 19. Jun 2007
126 Beiträge
 
Delphi 5 Standard
 
#3

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz

  Alt 27. Jan 2009, 17:32
genau
Delphi-Quellcode:
var i:integer

for i:=4 to 8 do
TButton(FindComponent('Button'+inttostr(i))).Visible:=true;
  Mit Zitat antworten Zitat
sarte

Registriert seit: 23. Mai 2008
Ort: Australien
66 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz

  Alt 27. Jan 2009, 17:36
vielen Dank
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz

  Alt 27. Jan 2009, 17:48
Hallo,

so geht es auch:

Delphi-Quellcode:
procedure ShowControls (const aControls: array of TControl;
                        const aVisible: Boolean = True);
var
  i : Integer;
begin
  for i := 0 to High(aControls) do
    aControls[i].Visible := aVisible;
end;

// Anwendung:

ShowControls ([Button4, Button5, Edit1, Edit3, Panel42]);
Handelt es sich um eine relativ kleine Anzahl von Controls, stellt sich natürlich die Frage, ob der Originalcode nicht lesbarer ist. Vielleicht lassen sich ja auch alle Elemente auf einem Panel platzieren. Dann genügt schon das Ein-/Ausblenden dieses Panels.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz

  Alt 27. Jan 2009, 18:07
Das ist zumindest besser, als in einer Schleife FindComponent aufzurufen (da wird nämlich intern wiederum eine Schleife durchlaufen).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz

  Alt 27. Jan 2009, 18:16
Ungeachtet der Tatsache, das die Bezeichnung Button1, Button2 etc. für Schaltflächen nicht gerade aussagekräftig ist, wird die Lösung mittels FindControl genau dann zu unerwarteten Ergebnissen führen, wenn man auf die an sich sinnige Idee kommt, den Knöppels sinnvolle Namen zu geben.

Dagegen ist die Lösung mit der Prozedur besser, da hier wenigstens der Compiler meckert, wenn die Buttons getauft werden.

Mir persönlich gefällt allerdings die Lösung mit 4 Zeilen besser, da es einfach übersichtlicher ist (sofern die Buttons schöne Namen haben). Ist aber Geschmackssache.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 16:09 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