Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Code vereinfachen (https://www.delphipraxis.net/154365-code-vereinfachen.html)

R2009 8. Sep 2010 12:58

Delphi-Version: 2007

Code vereinfachen
 
Hi DP'ler,
ich möchte folgenden Code vereinfachen:

Delphi-Quellcode:
  for i:=1 to 6 do
     begin
       a.clear;
       main_form.central.db.get_data('binbase','versacom_control_r'+inttostr(i),a);
       case i of
       1:edt_sb_1.Text:=inttostr(invhexw(a[0]));
       2:edt_sb_2.Text:=inttostr(invhexw(a[0]));
       3:edt_sb_3.Text:=inttostr(invhexw(a[0]));
       4:edt_sb_4.Text:=inttostr(invhexw(a[0]));
       5:edt_sb_5.Text:=inttostr(invhexw(a[0]));
       6:edt_sb_6.Text:=inttostr(invhexw(a[0]));
       end;
     end;
Ich würde gerne die 1 in edt_sb_1.Text durch die Laufvariable i ersetzen.
Grüsse
Rainer

stahli 8. Sep 2010 13:04

AW: Code vereinfachen
 
Es gibt 2 Möglichkeiten:

Du kannst alle Controls des Formulars (bzw. des Besitzers Deiner Edits) suchen und auf den Namen abgleichen

oder

Du kannst alle Deine Edits in eine Liste (oder Array) speichern und dann über diese Liste iterieren.

Eine Änderung würde ich aber nur vornehmen, wenn Du sehr viele solchen Zugriffe brauchst (bei 6 Edits würde ich es so lassen).

himitsu 8. Sep 2010 13:06

AW: Code vereinfachen
 
Zitat:

Zitat von stahli (Beitrag 1048192)
Es gibt 2 3 Möglichkeiten:

Du kannst alle Controls des Formulars (bzw. des Besitzers Deiner Edits) suchen und auf den Namen abgleichen

oder

...

Oder man kann suchen lassen.
Delphi-Referenz durchsuchenFindComponent

DeddyH 8. Sep 2010 14:06

AW: Code vereinfachen
 
FindComponent in Schleifen ist aber nicht besonders performant. Gut, es geht nur um eine Handvoll Komponenten, trotzdem finde ich die Array-Lösung IMO um Längen besser.

stahli 8. Sep 2010 14:14

AW: Code vereinfachen
 
Braucht man wenige Edits aber Zugriffe an vielen verschiedenen Stellen ginge auch eine Funktion:

Delphi-Quellcode:
function GetEdit(I: Integer): TEdit;
begin
  case I of
    1: Result := Edit1;
...
  end;
end;
Kommt halt drauf an, wie flexibel das ganze sein soll...


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