Einzelnen Beitrag anzeigen

blackmice

Registriert seit: 24. Okt 2007
Ort: Niederkrüchten
28 Beiträge
 
Delphi 5 Standard
 
#1

Dynamisch Variablenname erzeugen

  Alt 5. Nov 2007, 10:18
Wahrscheinlich wurde auch diese Frage schon zu Tode diskutiert, aber ich habe keine Einträge gefunden (Wahrscheinlich suche ich bloß falsch)

Also ich habe 6 Trackbars, die beim Verschieben eigentlich alle das gleiche tun sollen, nur mit verschiedenen Variablen.
Gibt es eine Möglichkeit (Statt 6 verschiedene Routinen zu schreiben) eine Routine zu schreiben und anhand des Aufrufenden Trackbars bestimmte Variablen zu ändern?

Also hier das Beispiel

Code:
 
iHVHigh      : Integer = 0;
iHvLow       : Integer = 0;
iThrMinHigh  : Integer = 2;
iThrMinLow   : Integer = 0;
iThrMaxHigh  : Integer = 127;
iThrMaxLow   : Integer = 0;
iLedMinHigh  : Integer = 0;
iLedMinLow   : Integer = 0;
iLedMaxHigh  : Integer = 0;
iLedMaxLow   : Integer = 0;
Aktuelle sieht es so aus:

Code:
procedure TForm1.THRMinBarChange(Sender: TObject);
var cThrMin : String;
begin
  cThrMin := IntToHex(ThrMinBar.Position,4);
  iThrMinLow := StrToInt('$' + copy(cThrMin,3,2));
  iThrMinHigh := StrToInt('$' + copy(cThrMin,0,2));
  ThrMinEdt.Text := IntToStr(round(500*ThrMinBar.Position*2.5/4096));
  Form1.RS232Panel.Caption := BuildCaption;
  bRS232Changed := True;
end;

...

procedure TForm1.HVBarChange(Sender: TObject);
var cHV : String;

begin
  cHV := IntToHex(HVBar.Position,4);
  iHVLow := StrToInt('$' + copy(cHV,3,2));
  iHVHigh := StrToInt('$' + copy(cHV,0,2));
  HVEdt.Text := IntToStr(round(500*HVBar.Position*2.5/4096));
  Form1.RS232Panel.Caption := BuildCaption;
  bRS232Changed := True;
end;
Wie man sieht ändern sich nur die Variablennamen.
Wenn ich also mit folgendem Sourcecode den Namen rausbekomme

Code:
 
test := (sender as TTrackbar).Name;
name := Copy(test,0,Pos('Bar',test)-1);
kann ich dann mit name := 'HV'
irgendwie auf die Variablen
iHVLow
iHVHigh
zugreifen?

müsste dann ergo für name := 'THRMax'
irgendwie auf die Variablen
iTHRMaxLow
iTHRMaxHigh

Die Variablennamen setzen sich immer aus i + Name des Trackbar + Low oder + High zusammen

Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Bin noch nicht so lange dabei.

Danke
Blackmice
Blackmice
Debuggers don't remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat