![]() |
Dynamischen Wert ermitteln
Hallo zusammen
Ich habe 8 Edit Felder. Name: edt_SCS1IPAdresse und edt_SCS2IPAdresse usw. Die Zahl 1-8 ist im Namen enthalten. Wie kann ich nun den Wert dieser Felder in eine Variable (Adresse) setzen mit diesem Code:
Delphi-Quellcode:
Ich erhalte bei der letzten Zeile immer folgenden Fehler:
if cb_RDCServer.Text <> '' then // hier steht dann z.B: 8 darin
begin for i := 0 to ComponentCount - 1 do begin if (Components[i] is TEdit) and (Components[i].Name = 'edt_SCS' + cb_RDCServer.Text + 'IPAdresse' ) then begin with (Components[i] as TEdit) do begin adresse := (Components[i] as Tedit).Text; end; end; end; Listenindex überschreitet das Maximum (1691). Ich nehme an, dass ich bei meinem Code einen Überlegungsfehler befindet. Danke für Eure Hilfe. :-) Gruss Joki. |
AW: Dynamischen Wert ermitteln
Ich verstehe Deinen Code nicht ganz, zumal adresse ja immer wieder überschrieben wird. Wäre
![]() |
AW: Dynamischen Wert ermitteln
Ich sehe an dem Code nicht warum es zu diesem Fehler kommen könnte.
|
AW: Dynamischen Wert ermitteln
Danke für Deine schnelle Antwort.
Adresse soll genau 1 mal den entsprechenden Wert des gewählten edit-Feldes bekommen. Ich gehe davon aus, dass die obige Abprüfung ja nur gerade einmal passt, und somit sollte meine Variable Adresse den richtigen Wert bekommen. Mit diesem Componets[i] Codes kenne ich mich nicht so gut aus... Danke! |
AW: Dynamischen Wert ermitteln
Ich würde noch ein Break reinmachen, wenn du einen Treffer hattest, dann sparst dir den Rest der Schleife.
|
AW: Dynamischen Wert ermitteln
Durch Dein With versuchst Du faktisch folgenden Zugriff
Delphi-Quellcode:
greifst also auf Components von (Components[i] as TEdit) zu ....
(Components[i] as TEdit).(Components[i] as Tedit).Text
|
AW: Dynamischen Wert ermitteln
Delphi-Quellcode:
const
EDITNAME = 'edt_SCS%sIPAdresse'; var AComponent: TComponent; ... if cb_RDCServer.Text <> '' then // hier steht dann z.B: 8 darin begin AComponent := FindComponent(Format(EDITNAME, [cb_RDCServer.Text])); if Assigned(AComponent) then if AComponent is TEdit then adresse := TEdit(AComponent).Text; end; |
AW: Dynamischen Wert ermitteln
Richtig Bummi, dieses with ist doch immer wieder gemein, ich weiß warum ich das nie benutze.
@DeddyH : Ein FindComponent schleift auch über ComponentCount, das ist grad egal. |
AW: Dynamischen Wert ermitteln
Zitat:
Delphi-Quellcode:
:thumb:
with
|
AW: Dynamischen Wert ermitteln
mmm dann soll also der ganze "with ... do" Code weg?
Und direkt adresse := (Components[i] as Tedit).Text; geschrieben werden? Wenn ja erscheint der selbe Fehler... :-( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 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