Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aufruf von mehreren fast gleichnamigen Methoden (Verkürzen?) (https://www.delphipraxis.net/128306-aufruf-von-mehreren-fast-gleichnamigen-methoden-verkuerzen.html)

sarte 27. Jan 2009 17:26


Aufruf von mehreren fast gleichnamigen Methoden (Verkürzen?)
 
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

mkinzler 27. Jan 2009 17:29

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz
 
Standard-Antwort: FindComponent()

blink182 27. Jan 2009 17:32

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz
 
genau
Delphi-Quellcode:
var i:integer

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

sarte 27. Jan 2009 17:36

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

Hawkeye219 27. Jan 2009 17:48

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz
 
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

DeddyH 27. Jan 2009 18:07

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz
 
Das ist zumindest besser, als in einer Schleife FindComponent aufzurufen (da wird nämlich intern wiederum eine Schleife durchlaufen).

alzaimar 27. Jan 2009 18:16

Re: Aufruf von mehreren fast gleichnamigen Methoden (Verkürz
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 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