Wenn du die Scrollbar bewegst:
(FindComponent('eValue' + IntToStr((Sender as TScrollBar).Tag)) as TEdit).Text := (Sender as TScrollBar).Position
Und wenn du dann das Edit bewegst:
(FindComponent('sbValue' + IntToStr((Sender as TEdit).Tag)) as TScrollBar).Position := (Sender as TEdit).Text
Erklärung:
"
FindComponent" findet die Komponente mit den übergebenen Namen auf der Form.
Also musst du in die Klammern den Namensstring davon schreiben. Bei mir heißen sie demnach "
eValueX" wobei
X die EditNummer ist. Die Scrollbars heißen bei mir "
sbValueX"...
"
Sender" gibt dir die Komponente an, welche diese Prozedur ausgelöst hat. Da es sich um den Typ "
TObject" handelt, musst du ihn in ein TEdit oder in die TScrollbar casten (s.u.).
"
.Tag" ist eine Eigenschaft in der du ein Integer speicherst. In deinen Besonderen Fall haben sie die Nummer der Scrollbar.
Also muss die Scrollbar, welche mit dem "
eValue1" verknüpft wird, den/die Tag "
1" haben.
Zum Casten:
Ein Cast funzt so:
<Variable> as <Datentyp> oder
<Datentyp>(<Variable>). Im ersten Fall sollte man darum eine Klammer machen um die Eigenschaften abzurufen (
(<Variable> as <Datentyp>).<Eigenschaft>)
Um sicher zu gehen, dass ein Cast funktioniert, kann man das mit "
is" testen "
<Variable> is <Datentyp>".
Ich hoffe mal du verstehst dieses Konstrukt.
Um es dir einfacher zu machen, splitte ich mal die 1. Zeile auf:
Delphi-Quellcode:
var
e : TEdit; // Das Edit, wo wir den Wert reinschreiben
sb : TScrollBar; // Die ScrollBar, welche sich bewegt
tag : string; // Der/Doe/Das Tag, gleich als bequemen string
begin
sb := (Sender as TScrollBar); // Wir schreiben unsere Scrollbar in die Variable... Dabei müssen wir casten!
tag := IntToStr(sb.Tag); // Unser Tag wird ein string
e := FindComponent('eValue' + // Wir suchen nun nach der Komponente mit dem namem "eValue ...
tag) // ... und dem/der... Tag ...
as TEdit; // ... und casten das als Edit
e.Text := IntToStr(sb.Position) // Zuletzt schreiben wir die Position der Scrollbar in das Edit
end;