![]() |
Delphi-Version: 2007
Code vereinfachen
Hi DP'ler,
ich möchte folgenden Code vereinfachen:
Delphi-Quellcode:
Ich würde gerne die 1 in edt_sb_1.Text durch die Laufvariable i ersetzen.
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; Grüsse Rainer |
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). |
AW: Code vereinfachen
Zitat:
![]() |
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.
|
AW: Code vereinfachen
Braucht man wenige Edits aber Zugriffe an vielen verschiedenen Stellen ginge auch eine Funktion:
Delphi-Quellcode:
Kommt halt drauf an, wie flexibel das ganze sein soll...
function GetEdit(I: Integer): TEdit;
begin case I of 1: Result := Edit1; ... end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz