Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Mehrere ScrollBars & Editboxes verknüpfen

  Alt 30. Apr 2007, 15:25
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;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat